@Test public void testDivideByZero2() { NodeValue nv1 = NodeValue.makeInteger(1) ; NodeValue nv2 = NodeValue.makeDouble(0) ; NodeValue r = XSDFuncOp.numDivide(nv1, nv2) ; assertTrue("Not a double: "+r, r.isDouble()) ; assertTrue("Not a +INF: "+r, r.getDouble()==Double.POSITIVE_INFINITY) ; }
@Test public void testCeiling3() { NodeValue nv = NodeValue.makeDouble(2.6) ; NodeValue r = XSDFuncOp.ceiling(nv) ; assertTrue("Not a decimal: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 3, r.getDouble(), accuracyExact_D ) ; }
@Test public void testFloor4() { NodeValue nv = NodeValue.makeDouble(-3.6) ; NodeValue r = XSDFuncOp.floor(nv) ; assertTrue("Not a decimal: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", -4, r.getDouble(), accuracyExact_D ) ; }
@Test public void testNodeInt2() { NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDdouble); assertTrue("Not a number: " + v, v.isNumber()); assertTrue("Not a double: " + v, v.isDouble()); assertTrue("Not a node: " + v, v.hasNode()); }
@Test public void testDivideByZero4() { NodeValue nv1 = NodeValue.makeInteger(-1) ; NodeValue nv2 = NodeValue.makeDouble(-0) ; NodeValue r = XSDFuncOp.numDivide(nv1, nv2) ; assertTrue("Not a double: "+r, r.isDouble()) ; assertTrue("Not a -INF: "+r, r.getDouble()==Double.NEGATIVE_INFINITY) ; }
@Test public void testAbs8() { NodeValue nv = NodeValue.makeDouble(-2) ; NodeValue r = XSDFuncOp.abs(nv) ; assertTrue("Not an double: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 2d, r.getDouble(), accuracyExact_D) ; }
@Test public void testFloor3() { NodeValue nv = NodeValue.makeDouble(2.6) ; NodeValue r = XSDFuncOp.floor(nv) ; assertTrue("Not a decimal: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 2, r.getDouble(), accuracyExact_D ) ; }
@Test public void testDouble1() { NodeValue v = NodeValue.makeDouble(5); assertTrue("Not a number: " + v, v.isNumber()); assertTrue("Not a double: " + v, v.isDouble()); assertFalse("No node: " + v, v.hasNode()); }
@Test public void testAddIntegerDouble() { NodeValue nv1 = NodeValue.makeInteger(5) ; NodeValue nv2 = NodeValue.makeDouble(7) ; NodeValue r = XSDFuncOp.numAdd(nv1, nv2) ; assertTrue("Not a double: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 12, r.getDouble(), accuracyExact_D ) ; }
@Test public void testSubtractDoubleDecimal() { NodeValue nv1 = NodeValue.makeDouble(4.5) ; NodeValue nv2 = NodeValue.makeDecimal(3.5) ; NodeValue r = XSDFuncOp.numSubtract(nv1, nv2) ; assertTrue("Not a double: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 1d, r.getDouble(), accuracyExact_D ) ; }
@Test public void testAddDoubleInteger() { NodeValue nv1 = NodeValue.makeDouble(7) ; NodeValue nv2 = NodeValue.makeInteger(5) ; NodeValue r = XSDFuncOp.numAdd(nv1, nv2) ; assertTrue("Not a double: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 12, r.getDouble(), accuracyExact_D ) ; }
@Test public void testAddDoubleDecimal() { NodeValue nv1 = NodeValue.makeDouble(4.5) ; NodeValue nv2 = NodeValue.makeDecimal(3.5) ; NodeValue r = XSDFuncOp.numAdd(nv1, nv2) ; assertTrue("Not a double: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 8, r.getDouble(), accuracyExact_D ) ; }
@Test public void testMultiplyDoubleDecimal() { NodeValue nv1 = NodeValue.makeDouble(4.5) ; NodeValue nv2 = NodeValue.makeDecimal(3.5) ; NodeValue r = XSDFuncOp.numMultiply(nv1, nv2) ; assertTrue("Not a double: "+r, r.isDouble()) ; assertTrue("Not a NodeValueDouble: "+r, r instanceof NodeValueDouble) ; assertEquals("Wrong result", 4.5d*3.5d, r.getDouble(), accuracyExact_D ) ; }
@Test public void testFloat1() { NodeValue v = NodeValue.makeFloat(5); assertTrue("Not a number: " + v, v.isNumber()); assertTrue("Not a float: " + v, v.isFloat()); assertTrue("Float not a double: " + v, v.isDouble()); assertFalse("No node: " + v, v.hasNode()); }
@Test public void testNodeDouble3() { // Note input form is legal but not canonical as a bare FP NodeValue v = NodeValue.makeNode("057.0e0", XSDDatatype.XSDdouble); assertTrue("Not a number: " + v, v.isNumber()); assertTrue("Not a double: " + v, v.isDouble()); assertTrue("Not a node: " + v, v.hasNode()); String actualStr = v.asQuotedString(); assertEquals("Print form mismatch", "057.0e0", actualStr); }
@Test public void testSqrt2() { NodeValue four = NodeValue.makeDouble(4) ; NodeValue two = NodeValue.makeInteger(2) ; NodeValue result = XSDFuncOp.sqrt( four ) ; assertTrue(result.isDouble()) ; assertTrue( NodeValue.sameAs( two, result)) ; assertNotNull(result.asNode()) ; }
@Test public void testAddFloatFloat() { NodeValue nv1 = NodeValue.makeFloat(7.5f) ; NodeValue nv2 = NodeValue.makeFloat(2.5f) ; NodeValue r = XSDFuncOp.numAdd(nv1, nv2) ; assertTrue("Not a float: "+r, r.isDouble()) ; assertTrue("Not a NodeValueFloat: "+r, r instanceof NodeValueFloat) ; assertEquals("Wrong result", 10, r.getFloat(), accuracyExact_F ) ; assertEquals("Wrong result (as doubles)", 10, r.getDouble(), accuracyExact_D ) ; }
@Test public void testNodeFloat1() { // Theer is no SPARQL representation in short form of a float. NodeValue v = NodeValue.makeNode("57.0", XSDDatatype.XSDfloat); assertTrue("Not a number: " + v, v.isNumber()); assertTrue("Not a float: " + v, v.isFloat()); assertTrue("Not a double(float): " + v, v.isDouble()); assertTrue("Not a node: " + v, v.hasNode()); String actualStr = v.asQuotedString(); assertEquals("Print form mismatch", "\"57.0\"^^<" + XSDDatatype.XSDfloat.getURI() + ">", actualStr); }
@Test public void testSqrt1() { NodeValue four = NodeValue.makeInteger(4) ; NodeValue two = NodeValue.makeDouble(2) ; NodeValue result = XSDFuncOp.sqrt( four ) ; assertTrue(result.isDouble()) ; assertFalse(result.isDecimal()) ; assertTrue( NodeValue.sameAs( two, result)) ; assertTrue( two.asNode().sameValueAs(result.asNode()) ) ; }