diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Tests/cautionEqualsDouble.png b/Doc/Sd1/Ref/ObjectsAndClasses/Tests/cautionEqualsDouble.png new file mode 100644 index 0000000000000000000000000000000000000000..676b540fbe8b8b2340eecd56a7eb7c6df8076af5 Binary files /dev/null and b/Doc/Sd1/Ref/ObjectsAndClasses/Tests/cautionEqualsDouble.png differ diff --git a/Doc/Sd1/objectsClasses.xml b/Doc/Sd1/objectsClasses.xml index ab796f519a3cdfef3fcd0fb28dfa20a0f1d232d8..fabb3dff674ba761d7bc2b98e41e9da1ab9ca740 100644 --- a/Doc/Sd1/objectsClasses.xml +++ b/Doc/Sd1/objectsClasses.xml @@ -9005,8 +9005,6 @@ static public int getFirstNegative(int a, int b) { <imagedata fileref="Ref/ObjectsAndClasses/Tests/SpecTestResult3.png"/> </imageobject> </mediaobject> - - <para>Yeah! Conquer next level ...</para> </figure> <figure xml:id="sd1_fig_availableResultMethods"> @@ -9051,6 +9049,71 @@ static public int getFirstNegative(int a, int b) { </itemizedlist> </figure> + <figure xml:id="sd1_fig_junitCli"> + <title><xref linkend="glo_Maven"/> command line usage</title> + + <screen>goik@goiki V1> mvn test +[INFO] Scanning for projects... +... ------------------------------------------------- + T E S T S +------------------------------------------------------- +Running de.hdm_stuttgart.mi.sd1.store.TestPrimes +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, ... + +Results : + +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 +[INFO] ------------------------------------------------ +[INFO] BUILD SUCCESS</screen> + </figure> + + <figure xml:id="sd1_fig_equalsDoubleCaveat"> + <title>Caution comparing <code>float</code> / + <code>double</code></title> + + <mediaobject> + <imageobject> + <imagedata fileref="Ref/ObjectsAndClasses/Tests/cautionEqualsDouble.png"/> + </imageobject> + </mediaobject> + </figure> + + <figure xml:id="sd1_fig_equalsDoubleCaveatResult"> + <title>Weird arithmetics?</title> + + <screen>java.lang.AssertionError: Use assertEquals(expected, actual, delta) + to compare floating-point numbers + +at org.junit.Assert.assertEquals(Assert.java:656) +at qq.doubleCompareTest.test1_3(<emphasis role="red">doubleCompareTest.java:15</emphasis>) +...</screen> + </figure> + + <figure xml:id="sd1_fig_equalsDoubleCaveatUnderlyingProblem"> + <title>Limited representation precision</title> + + <programlisting language="java">System.out.println("3.6 - 3 * 1.2 == " + (3.6 - 3 * 1.2));</programlisting> + + <para>Result:</para> + + <screen>3.6 - 3 * 1.2 == 4.440892098500626E-16</screen> + </figure> + + <figure xml:id="sd1_fig_equalsDoubleSolve"> + <title>Solving the issue</title> + + <programlisting language="java">public class doubleCompareTest { + static final double delta = 1E-15; + /** + * Comparing 3.6 and 3.6 within delta's limit + */ + @Test + public void test1_3() { + Assert.assertEquals(3.6, 3 * 1.2 , delta); + } +}</programlisting> + </figure> + <qandaset defaultlabel="qanda" xml:id="sd1QandaSumInteger"> <title>Summing up integers to a given limit</title>