mirror of
https://github.com/apache/commons-math.git
synced 2025-02-09 03:25:31 +00:00
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
|
@Test
|
||||||
public void testPrimitiveRemainder() {
|
public void testPrimitiveRemainder() {
|
||||||
double epsilon = 1.0e-15;
|
double epsilon = 1.0e-15;
|
||||||
@ -1060,6 +1100,7 @@ public class DerivativeStructureTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCopySign() {
|
public void testCopySign() {
|
||||||
|
|
||||||
DerivativeStructure minusOne = new DerivativeStructure(1, 1, 0, -1.0);
|
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(0), 1.0e-15);
|
||||||
Assert.assertEquals(-1.0, minusOne.copySign(+1.0).getPartialDerivative(1), 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(-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(0), 1.0e-15);
|
||||||
Assert.assertEquals(-1.0, minusOne.copySign(Double.NaN).getPartialDerivative(1), 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
|
@Test
|
||||||
|
Loading…
x
Reference in New Issue
Block a user