Skip to content
This repository was archived by the owner on Jun 10, 2026. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.mycompany.app</groupId>
<artifactId>ST-5</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
</plugin>
</plugins>
</build>

</project>
40 changes: 40 additions & 0 deletions src/main/java/com/mycompany/app/Sqrt.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.mycompany.app;

public class Sqrt
{
double delta = 0.00000001;
double arg;

public Sqrt(double arg)
{
this.arg = arg;
}

public double average(double x, double y)
{
return (x + y) / 2.0;
}

public boolean good(double guess, double x)
{
return Math.abs(guess * guess - x) < delta;
}

public double improve(double guess, double x)
{
return average(guess, x / guess);
}

public double iter(double guess, double x)
{
if (good(guess, x))
return guess;
else
return iter(improve(guess, x), x);
}

public double calc()
{
return iter(1.0, arg);
}
}
91 changes: 91 additions & 0 deletions src/test/java/com/mycompany/app/AppTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package com.mycompany.app;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

public class AppTest
{
@Test
void testAverage1()
{
Sqrt s = new Sqrt(4);
assertEquals(3.0, s.average(2, 4), 0.0001);
}

@Test
void testAverage2()
{
Sqrt s = new Sqrt(9);
assertEquals(5.0, s.average(4, 6), 0.0001);
}

@Test
void testGoodTrue()
{
Sqrt s = new Sqrt(4);
assertTrue(s.good(2.0, 4.0));
}

@Test
void testGoodFalse()
{
Sqrt s = new Sqrt(4);
assertFalse(s.good(1.0, 4.0));
}

@Test
void testImprove1()
{
Sqrt s = new Sqrt(4);
assertEquals(2.5, s.improve(1.0, 4.0), 0.0001);
}

@Test
void testImprove2()
{
Sqrt s = new Sqrt(9);
assertEquals(5.0, s.improve(1.0, 9.0), 0.0001);
}

@Test
void testIter4()
{
Sqrt s = new Sqrt(4);
assertEquals(2.0, s.iter(1.0, 4.0), 0.0001);
}

@Test
void testIter9()
{
Sqrt s = new Sqrt(9);
assertEquals(3.0, s.iter(1.0, 9.0), 0.0001);
}

@Test
void testCalc2()
{
Sqrt s = new Sqrt(2);
assertEquals(Math.sqrt(2), s.calc(), 0.0001);
}

@Test
void testCalc4()
{
Sqrt s = new Sqrt(4);
assertEquals(2.0, s.calc(), 0.0001);
}

@Test
void testCalc16()
{
Sqrt s = new Sqrt(16);
assertEquals(4.0, s.calc(), 0.0001);
}

@Test
void testCalc25()
{
Sqrt s = new Sqrt(25);
assertEquals(5.0, s.calc(), 0.0001);
}
}
Loading