public void test_datatypeLiteral_xsd_double() { final URI datatype = XMLSchema.DOUBLE; // Note: leading zeros are ignored in the xsd:int value space. final String lit1 = "-4.0"; final String lit2 = "005"; final String lit3 = "5."; final String lit4 = "5.0"; final String lit5 = "6"; final byte[] k1 = fixture.datatypeLiteral2key(datatype, lit1); final byte[] k2 = fixture.datatypeLiteral2key(datatype, lit2); final byte[] k3 = fixture.datatypeLiteral2key(datatype, lit3); final byte[] k4 = fixture.datatypeLiteral2key(datatype, lit4); final byte[] k5 = fixture.datatypeLiteral2key(datatype, lit5); if (log.isInfoEnabled()) { log.info("k1(double:" + lit1 + ") = " + BytesUtil.toString(k1)); log.info("k2(double:" + lit2 + ") = " + BytesUtil.toString(k2)); log.info("k3(double:" + lit3 + ") = " + BytesUtil.toString(k3)); log.info("k4(double:" + lit3 + ") = " + BytesUtil.toString(k4)); log.info("k5(double:" + lit5 + ") = " + BytesUtil.toString(k5)); } assertTrue(BytesUtil.compareBytes(k1, k2) < 0); assertTrue(BytesUtil.compareBytes(k4, k5) < 0); /* * Note: if we do not normalize data type values then these are * inequalities. */ assertTrue(BytesUtil.compareBytes(k2, k3) != 0); // 005 != 5. assertTrue(BytesUtil.compareBytes(k3, k4) != 0); // 5. != 5.0 }
public void test_datatypeLiteral_xsd_boolean() { final URI datatype = XMLSchema.BOOLEAN; final String lit1 = "true"; final String lit2 = "false"; final String lit3 = "1"; final String lit4 = "0"; final byte[] k1 = fixture.datatypeLiteral2key(datatype, lit1); final byte[] k2 = fixture.datatypeLiteral2key(datatype, lit2); final byte[] k3 = fixture.datatypeLiteral2key(datatype, lit3); final byte[] k4 = fixture.datatypeLiteral2key(datatype, lit4); if (log.isInfoEnabled()) { log.info("k1(boolean:" + lit1 + ") = " + BytesUtil.toString(k1)); log.info("k2(boolean:" + lit2 + ") = " + BytesUtil.toString(k2)); log.info("k3(boolean:" + lit3 + ") = " + BytesUtil.toString(k3)); log.info("k4(boolean:" + lit4 + ") = " + BytesUtil.toString(k4)); } assertTrue(BytesUtil.compareBytes(k1, k2) != 0); assertTrue(BytesUtil.compareBytes(k1, k2) > 0); /* * Note: if we do not normalize data type values then these are * inequalities. */ assertTrue(BytesUtil.compareBytes(k1, k3) != 0); // true != 1 assertTrue(BytesUtil.compareBytes(k2, k4) != 0); // false != 0 }
/** Verify that some value spaces are disjoint. */ public void test_datatypeLiteral_xsd_float_not_double() { final String lit1 = "04.21"; final byte[] k1 = fixture.datatypeLiteral2key(XMLSchema.FLOAT, lit1); final byte[] k2 = fixture.datatypeLiteral2key(XMLSchema.DOUBLE, lit1); if (log.isInfoEnabled()) { log.info("k1(float:" + lit1 + ") = " + BytesUtil.toString(k1)); log.info("k2(double:" + lit1 + ") = " + BytesUtil.toString(k2)); } assertTrue(BytesUtil.compareBytes(k1, k2) != 0); }
/** Verify that the value spaces for long, int, short and byte are disjoint. */ public void test_disjoint_value_space() { assertFalse( BytesUtil.bytesEqual( // fixture.datatypeLiteral2key(XMLSchema.LONG, "-1"), // fixture.datatypeLiteral2key(XMLSchema.INT, "-1") // )); assertFalse( BytesUtil.bytesEqual( // fixture.datatypeLiteral2key(XMLSchema.LONG, "-1"), // fixture.datatypeLiteral2key(XMLSchema.SHORT, "-1") // )); assertFalse( BytesUtil.bytesEqual( // fixture.datatypeLiteral2key(XMLSchema.LONG, "-1"), // fixture.datatypeLiteral2key(XMLSchema.BYTE, "-1") // )); assertFalse( BytesUtil.bytesEqual( // fixture.datatypeLiteral2key(XMLSchema.INT, "-1"), // fixture.datatypeLiteral2key(XMLSchema.SHORT, "-1") // )); assertFalse( BytesUtil.bytesEqual( // fixture.datatypeLiteral2key(XMLSchema.INT, "-1"), // fixture.datatypeLiteral2key(XMLSchema.BYTE, "-1") // )); assertFalse( BytesUtil.bytesEqual( // fixture.datatypeLiteral2key(XMLSchema.SHORT, "-1"), // fixture.datatypeLiteral2key(XMLSchema.BYTE, "-1") // )); }
/** Verify an unknown datatype URI is coded. */ public void test_datatype_unknown() { fixture.datatypeLiteral2key(new URIImpl("http://www.bigdata.com/foo"), "foo"); }