Improved test coverage.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1447260 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
74806d2e06
commit
2962744c71
|
@ -519,6 +519,46 @@ public class DerivativeStructureTest {
|
|||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHypotNeglectible() {
|
||||
|
||||
DerivativeStructure dsSmall = new DerivativeStructure(2, 5, 0, +3.0e-10);
|
||||
DerivativeStructure dsLarge = new DerivativeStructure(2, 5, 1, -4.0e25);
|
||||
|
||||
Assert.assertEquals(dsLarge.abs().getValue(),
|
||||
DerivativeStructure.hypot(dsSmall, dsLarge).getValue(),
|
||||
1.0e-10);
|
||||
Assert.assertEquals(0,
|
||||
DerivativeStructure.hypot(dsSmall, dsLarge).getPartialDerivative(1, 0),
|
||||
1.0e-10);
|
||||
Assert.assertEquals(-1,
|
||||
DerivativeStructure.hypot(dsSmall, dsLarge).getPartialDerivative(0, 1),
|
||||
1.0e-10);
|
||||
|
||||
Assert.assertEquals(dsLarge.abs().getValue(),
|
||||
DerivativeStructure.hypot(dsLarge, dsSmall).getValue(),
|
||||
1.0e-10);
|
||||
Assert.assertEquals(0,
|
||||
DerivativeStructure.hypot(dsLarge, dsSmall).getPartialDerivative(1, 0),
|
||||
1.0e-10);
|
||||
Assert.assertEquals(-1,
|
||||
DerivativeStructure.hypot(dsLarge, dsSmall).getPartialDerivative(0, 1),
|
||||
1.0e-10);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHypotSpecial() {
|
||||
Assert.assertTrue(Double.isNaN(DerivativeStructure.hypot(new DerivativeStructure(2, 5, 0, Double.NaN),
|
||||
new DerivativeStructure(2, 5, 0, +3.0e250)).getValue()));
|
||||
Assert.assertTrue(Double.isNaN(DerivativeStructure.hypot(new DerivativeStructure(2, 5, 0, +3.0e250),
|
||||
new DerivativeStructure(2, 5, 0, Double.NaN)).getValue()));
|
||||
Assert.assertTrue(Double.isInfinite(DerivativeStructure.hypot(new DerivativeStructure(2, 5, 0, Double.POSITIVE_INFINITY),
|
||||
new DerivativeStructure(2, 5, 0, +3.0e250)).getValue()));
|
||||
Assert.assertTrue(Double.isInfinite(DerivativeStructure.hypot(new DerivativeStructure(2, 5, 0, +3.0e250),
|
||||
new DerivativeStructure(2, 5, 0, Double.POSITIVE_INFINITY)).getValue()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPrimitiveRemainder() {
|
||||
double epsilon = 1.0e-15;
|
||||
|
@ -1060,6 +1100,7 @@ public class DerivativeStructureTest {
|
|||
|
||||
@Test
|
||||
public void testCopySign() {
|
||||
|
||||
DerivativeStructure minusOne = new DerivativeStructure(1, 1, 0, -1.0);
|
||||
Assert.assertEquals(+1.0, minusOne.copySign(+1.0).getPartialDerivative(0), 1.0e-15);
|
||||
Assert.assertEquals(-1.0, minusOne.copySign(+1.0).getPartialDerivative(1), 1.0e-15);
|
||||
|
@ -1071,6 +1112,19 @@ public class DerivativeStructureTest {
|
|||
Assert.assertEquals(+1.0, minusOne.copySign(-0.0).getPartialDerivative(1), 1.0e-15);
|
||||
Assert.assertEquals(+1.0, minusOne.copySign(Double.NaN).getPartialDerivative(0), 1.0e-15);
|
||||
Assert.assertEquals(-1.0, minusOne.copySign(Double.NaN).getPartialDerivative(1), 1.0e-15);
|
||||
|
||||
DerivativeStructure plusOne = new DerivativeStructure(1, 1, 0, +1.0);
|
||||
Assert.assertEquals(+1.0, plusOne.copySign(+1.0).getPartialDerivative(0), 1.0e-15);
|
||||
Assert.assertEquals(+1.0, plusOne.copySign(+1.0).getPartialDerivative(1), 1.0e-15);
|
||||
Assert.assertEquals(-1.0, plusOne.copySign(-1.0).getPartialDerivative(0), 1.0e-15);
|
||||
Assert.assertEquals(-1.0, plusOne.copySign(-1.0).getPartialDerivative(1), 1.0e-15);
|
||||
Assert.assertEquals(+1.0, plusOne.copySign(+0.0).getPartialDerivative(0), 1.0e-15);
|
||||
Assert.assertEquals(+1.0, plusOne.copySign(+0.0).getPartialDerivative(1), 1.0e-15);
|
||||
Assert.assertEquals(-1.0, plusOne.copySign(-0.0).getPartialDerivative(0), 1.0e-15);
|
||||
Assert.assertEquals(-1.0, plusOne.copySign(-0.0).getPartialDerivative(1), 1.0e-15);
|
||||
Assert.assertEquals(+1.0, plusOne.copySign(Double.NaN).getPartialDerivative(0), 1.0e-15);
|
||||
Assert.assertEquals(+1.0, plusOne.copySign(Double.NaN).getPartialDerivative(1), 1.0e-15);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue