Updated tests. Measure performace
authorDennis Schafroth <dennis@indexdata.com>
Wed, 22 Feb 2012 12:59:18 +0000 (13:59 +0100)
committerDennis Schafroth <dennis@indexdata.com>
Wed, 22 Feb 2012 12:59:18 +0000 (13:59 +0100)
src/org/marc4j/test/WriterTest.java

index 7707fc2..af5e1a0 100644 (file)
@@ -5,6 +5,8 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;\r
 import java.io.FileOutputStream;\r
 import java.io.InputStream;\r
+import java.io.InputStreamReader;\r
+import java.io.PrintStream;\r
 import java.io.StringReader;\r
 \r
 import javax.xml.transform.stream.StreamResult;\r
@@ -38,6 +40,7 @@ public class WriterTest extends TestCase {
         }\r
         input.close();\r
         writer.close();\r
+        System.out.println("");\r
     }\r
 \r
     public void testMarcXmlWriter() throws Exception {\r
@@ -51,6 +54,7 @@ public class WriterTest extends TestCase {
         }\r
         input.close();\r
         writer.close();\r
+        System.out.println("");\r
     }\r
 \r
     public void testTurboMarcXmlWriter() throws Exception {\r
@@ -64,59 +68,75 @@ public class WriterTest extends TestCase {
       }\r
       input.close();\r
       writer.close();\r
+      System.out.println("");\r
     }\r
 \r
     public void testTurboMarcXmlWriterAutoGraphics() throws Exception {\r
-      InputStream input = getClass().getResourceAsStream(\r
-              "resources/auto-graphics.mrc");\r
+      InputStream input = getClass().getResourceAsStream("resources/auto-graphics.mrc");\r
       MarcWriter writer = new TurboMarcXmlWriter(new FileOutputStream( new File("auto-graphics.txml")), true);\r
       MarcStreamReader reader = new MarcStreamReader(input);\r
-      int index = 0;\r
-      while (reader.hasNext()) {\r
-          Record record = reader.next();\r
-          writer.write(record);\r
-          index++;\r
-      }\r
-      System.out.println("Number of records: " + index);\r
+      doReadWrite(writer, reader);\r
       input.close();\r
-      writer.close();\r
     }\r
 \r
     public void testMarcXmlWriterAutoGraphics() throws Exception {\r
-      InputStream input = getClass().getResourceAsStream(\r
-              "resources/auto-graphics.mrc");\r
+      InputStream input = getClass().getResourceAsStream("resources/auto-graphics.mrc");\r
       MarcWriter writer = new MarcXmlWriter(new FileOutputStream( new File("auto-graphics.txml")), true);\r
       MarcStreamReader reader = new MarcStreamReader(input);\r
+      doReadWrite(writer, reader);\r
+      input.close();\r
+    }\r
+\r
+    private void doReadWrite(MarcWriter writer, MarcStreamReader reader) {\r
       int index = 0;\r
+      long start = System.currentTimeMillis();\r
       while (reader.hasNext()) {\r
           Record record = reader.next();\r
           writer.write(record);\r
           index++;\r
       }\r
-      System.out.println("Number of records: " + index);\r
-      input.close();\r
+      long time = System.currentTimeMillis() - start;\r
       writer.close();\r
+      if (time > 0)\r
+       System.out.println("\nNumber of records: " + index + ". Records per second: " + (1000L * index / time));\r
+      else \r
+       System.out.println("\nNumber of records: " + index + ". Records per second: (zero millisecs)" );\r
     }\r
 \r
     \r
-    public void testTurboMarcXmlWriter2pz() throws Exception {\r
-      InputStream input = getClass().getResourceAsStream(\r
-              "resources/summerland.mrc");\r
+    public void testMarcXmlWriter2pz() throws Exception {\r
+      InputStream input = getClass().getResourceAsStream("resources/summerland.mrc");\r
       StreamResult result = new StreamResult(System.out);\r
-      MarcWriter writer = new MarcXmlWriter(result, new StreamSource(new StringReader(tmarc2pz)));\r
+      MarcWriter writer = new MarcXmlWriter(result, new StreamSource(new StringReader(marc2pz)));\r
+      MarcStreamReader reader = new MarcStreamReader(input);\r
+      doReadWrite(writer, reader);\r
+      input.close();\r
+    }\r
+\r
+    \r
+    public void testMarcXmlWriterAutoGraphics2pz() throws Exception {\r
+      InputStream input = getClass().getResourceAsStream("resources/auto-graphics.mrc");\r
+      PrintStream devNull = new java.io.PrintStream ( new java.io.OutputStream ( ) { public void write ( int b ) { } });\r
+      StreamResult result = new StreamResult(new FileOutputStream("autographics.xml"));\r
+      MarcWriter writer = new MarcXmlWriter(result, new StreamSource(new InputStreamReader(getClass().getResourceAsStream("resources/marc21.xsl"))));\r
       \r
       MarcStreamReader reader = new MarcStreamReader(input);\r
-      while (reader.hasNext()) {\r
-          Record record = reader.next();\r
-          writer.write(record);\r
-      }\r
+      doReadWrite(writer, reader);\r
+      input.close();\r
+    }\r
+\r
+    public void testTurboMarcXmlWriterAutoGraphics2pz() throws Exception {\r
+      InputStream input = getClass().getResourceAsStream("resources/auto-graphics.mrc");\r
+      PrintStream devNull = new java.io.PrintStream ( new java.io.OutputStream ( ) { public void write ( int b ) { } });\r
+      StreamResult result = new StreamResult(new FileOutputStream("autographics.txml"));\r
+      MarcWriter writer = new TurboMarcXmlWriter(result, new StreamSource(new InputStreamReader(getClass().getResourceAsStream("resources/tmarc.xsl"))));      \r
+      MarcStreamReader reader = new MarcStreamReader(input);\r
+      doReadWrite(writer, reader);\r
       input.close();\r
-      writer.close();\r
     }\r
 \r
     public void testWriteAndRead() throws Exception {\r
-        InputStream input = getClass().getResourceAsStream(\r
-                "resources/summerland.xml");\r
+        InputStream input = getClass().getResourceAsStream("resources/summerland.xml");\r
         ByteArrayOutputStream out = new ByteArrayOutputStream();\r
         MarcStreamWriter writer = new MarcStreamWriter(out);\r
         MarcXmlReader reader = new MarcXmlReader(input);\r
@@ -149,7 +169,7 @@ public class WriterTest extends TestCase {
     }\r
 \r
 \r
-    String tmarc2pz \r
+    String marc2pz \r
              = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + \r
                "<xsl:stylesheet\r\n" + \r
                "    version=\"1.0\"\r\n" + \r