@Override public NodeValue eval(NodeValue x, NodeValue y) { int r = NodeValue.compare(x, y) ; return NodeValue.booleanReturn( r == Expr.CMP_LESS ) ; }
@Override public NodeValue eval(NodeValue x, NodeValue y) { int r = NodeValue.compare(x, y) ; return NodeValue.booleanReturn( r == Expr.CMP_LESS || r == Expr.CMP_EQUAL ) ; }
@Override public NodeValue eval(NodeValue x, NodeValue y) { int r = NodeValue.compare(x, y) ; return NodeValue.booleanReturn( r == Expr.CMP_GREATER ) ; }
@Test public void testCompare2() { NodeValue nv5 = NodeValue.makeInteger(5) ; NodeValue nv7 = NodeValue.makeNodeInteger(7) ; assertEquals("Does not compare "+nv5+" & "+nv7, NodeValue.CMP_LESS, NodeValue.compare(nv5, nv7) ) ; NodeValue nv5b = NodeValue.makeNodeInteger(5) ; assertEquals("Does not compare "+nv5+" & "+nv5b, NodeValue.CMP_EQUAL, NodeValue.compare(nv5, nv5b) ) ; }
private static void testCompare(String s1, String s2, int correct) { NodeValue nv1 = parse(s1) ; NodeValue nv2 = parse(s2) ; int x = NodeValue.compare(nv1, nv2) ; assertEquals("("+s1+", "+s2+") -> "+name(x)+" ["+name(correct)+"]", correct, x) ; int y = x ; if ( x == Expr.CMP_LESS || x == Expr.CMP_GREATER ) y = -x ; assertEquals("Not symmetric: ("+s1+", "+s2+")", NodeValue.compare(nv2, nv1), y) ; }
@Test public void testCompare16() { // One in a timezone, one not. Within +/- 14 hours. Can't compare. NodeValue nv1 = NodeValue.makeDateTime("2007-08-31T16:20:03") ; NodeValue nv2 = NodeValue.makeDateTime("2007-08-31T16:20:03Z") ; try { NodeValue.compare(nv1, nv2) ; assertFalse("Compared the uncomparable: "+nv1+" & "+nv2, true) ; } catch (ExprNotComparableException ex) {} }
@Test public void testCompare10() { NodeValue nv1 = NodeValue.makeDateTime("2005-10-14T13:09:43Z") ; NodeValue nv2 = NodeValue.makeNodeDateTime("2005-10-14T14:09:43Z") ; assertEquals("Does not compare "+nv1+" & "+nv2, NodeValue.CMP_LESS, NodeValue.compare(nv1, nv2) ) ; }
@Test public void testCompare18() { // One in a timezone, one not. More than +/- 14 hours. Can compare. NodeValue nv1 = NodeValue.makeDateTime("2007-08-31T16:20:03") ; NodeValue nv2 = NodeValue.makeDateTime("2007-08-31T01:20:03Z") ; assertEquals(Expr.CMP_GREATER, NodeValue.compare(nv1, nv2)) ; }
@Test public void testCompare3() { NodeValue nv5 = NodeValue.makeInteger(5) ; NodeValue nv7 = NodeValue.makeDouble(7) ; assertEquals("Does not compare "+nv5+" & "+nv7, NodeValue.CMP_LESS, NodeValue.compare(nv5, nv7) ) ; }
@Test public void testCompare4() { NodeValue nv5 = NodeValue.makeInteger(5) ; NodeValue nv7 = NodeValue.makeFloat(7) ; assertEquals("Does not compare "+nv5+" & "+nv7, NodeValue.CMP_LESS, NodeValue.compare(nv5, nv7) ) ; }
@Test public void testCompare5() { NodeValue nv5 = NodeValue.makeInteger(5) ; NodeValue nv7 = NodeValue.makeDecimal(7) ; assertEquals("Does not compare "+nv5+" & "+nv7, NodeValue.CMP_LESS, NodeValue.compare(nv5, nv7) ) ; }
@Test public void testCompare15() { NodeValue nv1 = NodeValue.makeDate("2005-10-14Z") ; NodeValue nv2 = NodeValue.makeNodeDateTime("2005-10-14T14:09:43Z") ; try { NodeValue.compare(nv1, nv2) ; assertFalse("Compared the uncomparable: "+nv1+" & "+nv2, true) ; } catch (ExprNotComparableException ex) {} }
@Test public void testCompare17() { // One in a timezone, one not. Within +/- 14 hours. Can't compare. NodeValue nv1 = NodeValue.makeDate("2007-08-31") ; NodeValue nv2 = NodeValue.makeDate("2007-08-31Z") ; try { NodeValue.compare(nv1, nv2) ; assertFalse("Compared the uncomparable: "+nv1+" & "+nv2, true) ; } catch (ExprNotComparableException ex) {} }
@Test public void testCompare23() { NodeValue nv1 = NodeValue.makeNode(NodeFactory.createBlankNode()) ; NodeValue nv2 = NodeValue.makeString("5") ; try { NodeValue.compare(nv1, nv2) ; fail("Should not compare (but did) "+nv1+" & "+nv2) ; } catch (ExprEvalException ex) { /* expected */} }
@Test public void test_xsd_string4() { NodeValue nv1 = NodeValue.makeNode(NodeFactory.createLiteral("abc")) ; NodeValue nv2 = NodeValue.makeNode(NodeFactory.createLiteral("xyz", XSDDatatype.XSDstring)) ; int x = NodeValue.compare(nv1, nv2) ; assertTrue(Expr.CMP_LESS == x ) ; }
@Test public void testCompare22() { NodeValue nv1 = NodeValue.makeNodeString("aaa") ; NodeValue nv2 = NodeValue.makeString("aaabbb") ; int x = NodeValue.compare(nv1, nv2) ; assertEquals("Not CMP_LESS", x, Expr.CMP_LESS) ; assertTrue("It's CMP_GREATER", x != Expr.CMP_GREATER) ; assertTrue("It's CMP_EQUAL", x != Expr.CMP_EQUAL) ; }
@Test public void test_xsd_string1() { NodeValue nv1 = NodeValue.makeNode(NodeFactory.createLiteral("abc")) ; NodeValue nv2 = NodeValue.makeNode(NodeFactory.createLiteral("abc", XSDDatatype.XSDstring)) ; int x = NodeValue.compare(nv1, nv2) ; assertTrue(Expr.CMP_EQUAL == x ) ; }
@Test public void test_xsd_string2() { NodeValue nv1 = NodeValue.makeNode(NodeFactory.createLiteral("xyz")) ; NodeValue nv2 = NodeValue.makeNode(NodeFactory.createLiteral("abc", XSDDatatype.XSDstring)) ; int x = NodeValue.compare(nv1, nv2) ; assertTrue(Expr.CMP_GREATER == x ) ; }
@Test public void test_xsd_string5() { NodeValue nv1 = NodeValue.makeNode(NodeFactory.createLiteral("abc", XSDDatatype.XSDstring)) ; NodeValue nv2 = NodeValue.makeNode(NodeFactory.createLiteral("xyz")) ; int x = NodeValue.compare(nv1, nv2) ; assertTrue(Expr.CMP_LESS == x ) ; } @Test public void test_lang1()
@Test public void testSameUnknown_2() { NodeValue nv1 = NodeValue.makeNode(NodeFactory.createBlankNode()) ; NodeValue nv2 = NodeValue.makeNode(NodeFactory.createURI("test:abc")) ; assertFalse(NodeValue.sameAs(nv1, nv2)) ; assertTrue(NodeValue.notSameAs(nv1, nv2)) ; try { NodeValue.compare(nv1, nv2) ; fail("Should not compare (but did) "+nv1+" & "+nv2) ; } catch (ExprEvalException ex) { /* expected */} }