@Test public void testExternalizingRelation() throws IOException, ClassNotFoundException { ObjectOutputStream oos = null; ObjectInputStream ois = null; ByteArrayOutputStream baos = null; int maxTests = GeneralTesting.createRandomUpperLimit(1000); for (int j = 0; j <= maxTests; j++) { OsmRelationImpl relation = OsmTesting.generateOsmRelationWithTagsAndMembers(); baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); externalizer.writeExternalRelation(relation, oos); oos.flush(); ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())); IOsmRelation deserializedRelation = externalizer.readExternalRelation(ois); assertTrue(OsmComparator.areRelationsEqual(relation, deserializedRelation)); oos.close(); ois.close(); baos.close(); } }
@Test public void testExternalizingWay() throws IOException, ClassNotFoundException { ObjectOutputStream oos = null; ObjectInputStream ois = null; ByteArrayOutputStream baos = null; int maxTests = GeneralTesting.createRandomUpperLimit(1000); for (int j = 0; j <= maxTests; j++) { OsmWayImpl node = OsmTesting.generateOsmWayWithTagsAndNds(); baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); externalizer.writeExternalWay(node, oos); oos.flush(); ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())); IOsmWay deserializedNode = externalizer.readExternalWay(ois); assertTrue(OsmComparator.areWaysEqual(node, deserializedNode)); oos.close(); ois.close(); baos.close(); } }
@Test public void testExternalizingElement() throws IOException, ClassNotFoundException { int maxTests = 100000; List<IOsmElement> elements = new ArrayList<IOsmElement>(); List<IOsmElement> deserializedElements = new ArrayList<IOsmElement>(); StopWatch sw = new StopWatch(); for (int j = 0; j <= maxTests; j++) { elements.add(OsmTesting.generateOsmNodeWithTags()); } sw.stop(); logger.info("Generation of {} osm nodes took {}", maxTests, sw); sw.start(); long sizes = 0L; for (int j = 0; j <= maxTests; j++) { IOsmElement node = elements.get(j); byte[] element = externalizer.writeExternalElement(node); sizes += element.length; deserializedElements.add(externalizer.readExternalElement(element)); } sw.stop(); logger.info("Average node size in bytes: {}", sizes / maxTests); logger.info("Serialization/deserialization of {} osm nodes took {}", maxTests, sw); sw = sw.start(); for (int j = 0; j <= maxTests; j++) { IOsmNode node = (IOsmNode) elements.get(j); IOsmNode deserializedNode = (IOsmNode) deserializedElements.get(j); assertTrue(OsmComparator.areNodesDeepEqual(node, deserializedNode)); } sw.stop(); logger.info("Comparison of {} osm nodes took {}", maxTests, sw); elements.clear(); deserializedElements.clear(); sw.start(); for (int j = 0; j <= maxTests; j++) { elements.add(OsmTesting.generateOsmWayWithTagsAndNds()); } sw.stop(); logger.info("Generation of {} osm ways took {}", maxTests, sw); sw.start(); sizes = 0L; for (int j = 0; j <= maxTests; j++) { IOsmElement way = elements.get(j); byte[] element = externalizer.writeExternalElement(way); sizes += element.length; deserializedElements.add(externalizer.readExternalElement(element)); } sw.stop(); logger.info("Average way size in bytes: {}", sizes / maxTests); logger.info("Serialization/deserialization of {} osm ways took {}", maxTests, sw); sw = sw.start(); for (int j = 0; j <= maxTests; j++) { IOsmWay way = (IOsmWay) elements.get(j); IOsmWay deserializedWay = (IOsmWay) deserializedElements.get(j); assertTrue(OsmComparator.areWaysDeepEqual(way, deserializedWay)); } sw.stop(); logger.info("Comparison of {} osm ways took {}", maxTests, sw); elements.clear(); deserializedElements.clear(); sw.start(); for (int j = 0; j <= maxTests; j++) { elements.add(OsmTesting.generateOsmRelationWithTagsAndMembers()); } sw.stop(); logger.info("Generation of {} osm rels took {}", maxTests, sw); sw.start(); sizes = 0L; for (int j = 0; j <= maxTests; j++) { IOsmElement rel = elements.get(j); byte[] element = externalizer.writeExternalElement(rel); sizes += element.length; deserializedElements.add(externalizer.readExternalElement(element)); } sw.stop(); logger.info("Average rel size in bytes: {}", sizes / maxTests); logger.info("Serialization/deserialization of {} osm rels took {}", maxTests, sw); sw = sw.start(); for (int j = 0; j <= maxTests; j++) { IOsmRelation relation = (IOsmRelation) elements.get(j); IOsmRelation deserializedRelation = (IOsmRelation) deserializedElements.get(j); assertTrue(OsmComparator.areRelationsDeepEqual(relation, deserializedRelation)); } sw.stop(); logger.info("Comparison of {} osm rels took {}", maxTests, sw); }