jcunit's blog

JCUnitの開発日誌(ログ)です。"その時点での"JCUnit作者の理解や考え、開発状況を日本語で書きます。

(第ニ回)JCUnitで2次方程式を解くプログラムをテストする。


39
{ 1, 3, 4, 6, 7, 8, 9,  
 10,11,12,13,14,15,17,18,19,
 24,25,26,27,28,
 30,31,32,33,34,35,36,37,38,
 40,41,42,43,45,46,48,49,51}

JCUnit



  @Test
  public void solveEquation() {
    QuadraticEquation.Solutions s = new QuadraticEquation(a, b,
        c).solve();
    double v1 = a * s.x1 * s.x1 + b * s.x1 + c, v2 = a * s.x2 * s.x2 + b * s.x2 + c;

    assertThat(String.format("%d*x1^2+%d*x1+%d=%f {x1=%f}", a, b, c, v1, s.x1), v1, is(0.0));
    assertThat(String.format("%d*x2^2+%d*x2+%d=%f {x2=%f}", a, b, c, v2, s.x2), v2, is(0.0));
  }

1
java.lang.AssertionError: 1*x1^2+0*x1+100=NaN {x1=NaN}
Expected: is <0.0>
     but: was <NaN>

NaN1 4

3
java.lang.AssertionError: 1*x1^2+100*x1+-100=0.000000 {x1=0.990195}
Expected: is <0.0>
     but: was <1.4210854715202004E-14>

01.42 * 10^-1410010002

6
java.lang.AssertionError: 1*x1^2+-2147483648*x1+1=1.000000 {x1=2147483648.000000}
Expected: is <0.0>
     but: was <1.0>


bInteger.MIN_VALUE1.03:

9NaN
java.lang.AssertionError: 0*x1^2+-1*x1+-100=NaN {x1=Infinity}
Expected: is <0.0>
     but: was <NaN>

1a000NaN(4:a==0)




22

SIer SIer稿







4


1:

2:

3:

4:a==0


JIRA

QuadraticEquation

QuadraticEquation version 1


:a,b,c

:a x^2 + b x + c = 0x1x2



JCUnit使


1 

2 0.01

3: a,b,c100

4:a==0 a0

(1)






QuadraticEquation version 2


:a,b,c


a0(4:a==0)

a,b,c100(3:)

a,b,cb * b - 4 * c * a >= 0(1)



:a x^2 + b x + c = 0x1x2


x1x220.01(2)