static void testRead(String x, Binding... bindings) { Tokenizer t = TokenizerFactory.makeTokenizerString(x); BindingInputStream inStream = new BindingInputStream(t); if (bindings.length == 0) { for (; inStream.hasNext(); ) inStream.next(); return; } int i; for (i = 0; inStream.hasNext(); i++) { Binding b = inStream.next(); assertTrue( "Bindings do not match: expected=" + bindings[i] + " got=" + b, equalBindings(bindings[i], b)); } assertEquals("Wrong length: expect= " + bindings.length + " got=" + i, bindings.length, i); }
static void testWriteRead(PrefixMap prefixMap, Binding... bindings) { ByteArrayOutputStream out = new ByteArrayOutputStream(); BindingOutputStream output = new BindingOutputStream(out, prefixMap); for (Binding b : bindings) output.write(b); output.flush(); // When the going gets tough, the tough put in trace statements: // System.out.println("T: \n"+out.toString()) ; ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); BindingInputStream input = new BindingInputStream(in); List<Binding> results = new ArrayList<Binding>(); for (; input.hasNext(); ) { results.add(input.next()); } assertEquals(bindings.length, results.size()); for (int i = 0; i < bindings.length; i++) { Binding b1 = bindings[i]; Binding b2 = results.get(i); assertTrue("Bindings do not match: expected=" + b1 + " got=" + b2, equalBindings(b1, b2)); } }