use of com.amazon.ion.IonValue in project ion-java by amzn.
the class SimpleCatalogTest method testBenchmark.
@SuppressWarnings("unchecked")
@Test
public void testBenchmark() {
Map m = new HashMap();
String s = "hello";
m.put("This is a test String.", true);
m.put(s, true);
m.put("true", true);
m.put("false", false);
m.put("Something", null);
m.put("12242.124598129", 12242.124598129);
m.put("long", (long) 9326);
m.put("12", 12);
m.put("Almost Done.", true);
m.put("Date", new Date(-10000));
HashMap<String, String> hmap = new HashMap();
for (int i = 0; i < 10; i++) {
hmap.put("Key " + i, "value " + i);
}
TreeMap<String, String> tmap = new TreeMap();
for (int i = 0; i < 10; i++) {
tmap.put("Key " + i, "value " + i);
}
m.put("hmap", hmap);
m.put("tmap", tmap);
IonSystem sys = system();
IonStruct i_tmap, i_hmap, i_map;
Set<Entry<String, String>> set;
i_tmap = sys.newEmptyStruct();
set = tmap.entrySet();
for (Entry<String, String> e : set) {
IonString is = sys.newString(e.getValue());
i_tmap.add(e.getKey(), is);
}
i_hmap = sys.newEmptyStruct();
set = hmap.entrySet();
for (Entry<String, String> e : set) {
IonString is = sys.newString(e.getValue());
i_hmap.add(e.getKey(), is);
}
i_map = sys.newEmptyStruct();
set = tmap.entrySet();
for (Entry<String, String> e : set) {
Object val = e.getValue();
IonValue ival;
if (val instanceof String) {
ival = sys.newString((String) val);
} else if (e.getKey().equals("tmap")) {
ival = i_tmap;
} else if (e.getKey().equals("hmap")) {
ival = i_hmap;
} else {
throw new RuntimeException("ACK! there's something in this map I don't understand!");
}
i_map.add(e.getKey(), ival);
}
IonDatagram dg = sys.newDatagram(i_map);
byte[] bytes = dg.getBytes();
IonValue v2 = sys.singleValue(bytes);
assertNotNull(v2);
}
use of com.amazon.ion.IonValue in project ion-java by amzn.
the class EquivalenceTest method testFieldEquals1.
// TODO amzn/ion-java/issues/58 : Remove the ignore annotation from this test after
// making the required changes to Equivalence.Field.hashCode.
@Ignore
@Test
public void testFieldEquals1() {
IonValue v1 = oneValue("1");
IonValue v2 = oneValue("2");
IonValue v3 = oneValue("3");
IonStruct struct = system().newEmptyStruct();
String fieldName = "a";
struct.add(fieldName, v1);
struct.add(fieldName, v2);
struct.add(fieldName, v3);
assertEquals(3, struct.size());
Equivalence.Configuration configuration = new Equivalence.Configuration(new Equivalence.Builder().withStrict(true));
Equivalence.Field f1 = new Equivalence.Field(v1, configuration);
Equivalence.Field f2 = new Equivalence.Field(v2, configuration);
Equivalence.Field f3 = new Equivalence.Field(v3, configuration);
assertFalse(f1.equals(f2));
assertFalse(f1.equals(f3));
assertFalse(f2.equals(f3));
// Simple test that hashCode() is not badly implemented, so that fields with same
// field names but are not equals() do not result in same hash codes.
assertTrue(f1.hashCode() != f2.hashCode());
assertTrue(f1.hashCode() != f3.hashCode());
}
use of com.amazon.ion.IonValue in project ion-java by amzn.
the class ReaderDomCopyTest method iterateIon.
void iterateIon(File myTestFile) throws IOException {
IonDatagram dg = system().getLoader().load(myTestFile);
IonReader reader = system().newReader(dg);
for (int i = 0; reader.next() != null; i++) {
IonValue actual = system().newValue(reader);
assertIonEquals(dg.get(i), actual);
}
}
use of com.amazon.ion.IonValue in project ion-java by amzn.
the class MiscStreamingTest method testBinaryAnnotation.
@Test
public void testBinaryAnnotation() throws Exception {
String s = "item_view::{item_id:\"B00096H8Q4\",marketplace_id:2," + "product:{item_name:[" + "{value:'''Method 24CT Leather Wipes''',lang:EN_CA}," + "{value:'''Method 24CT Chiffons de Cuir''',lang:FR_CA}]," + "list_price:{value:18.23,unit:EUR},}" + ",index_suppressed:true," + "offline_store_only:true,version:2,}";
IonSystem sys = system();
IonDatagram dg = sys.getLoader().load(s);
IonValue v = dg.get(0);
IonType t = v.getType();
assertSame("should be a struct", t, IonType.STRUCT);
// first make sure the ion tree got it right
assertTrue(v.hasTypeAnnotation("item_view"));
String[] ann = v.getTypeAnnotations();
assertTrue(ann.length == 1 && ann[0].equals("item_view"));
// now take the string and get a text iterator and
// make sure it got the annotation right
IonReader it = system().newReader(s);
t = it.next();
assertSame("should be a struct", t, IonType.STRUCT);
ann = it.getTypeAnnotations();
assertTrue(ann.length == 1 && ann[0].equals("item_view"));
// finally get the byte array from the tree, make a
// binary iterator and check its annotation handling
byte[] buf = dg.getBytes();
it = system().newReader(buf);
t = it.next();
assertSame("should be a struct", t, IonType.STRUCT);
ann = it.getTypeAnnotations();
assertTrue(ann.length == 1 && ann[0].equals("item_view"));
}
use of com.amazon.ion.IonValue in project jackson-dataformats-binary by FasterXML.
the class EnumAsIonSymbolSerializationTest method testUsingName.
@Test
public void testUsingName() throws Exception {
final IonValue EXP = ION_SYSTEM.singleValue("SOME_VALUE");
Assert.assertEquals(EXP, newMapper(false, false).writeValueAsIonValue(SomeEnum.SOME_VALUE));
Assert.assertEquals(EXP, newMapper(true, false).writeValueAsIonValue(SomeEnum.SOME_VALUE));
}
Aggregations