From 1cd48ac2ffab135229dc7c584412fb04f228c5a8 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Thu, 7 Jul 2016 15:50:32 +0200 Subject: [PATCH] Updated benchmark jar --- ...s-0.7.0.jar => junit-benchmarks-0.7.2.jar} | Bin 72619 -> 78827 bytes test/zutil/benchmark/LoopBenchmark.java | 42 +++++++++++++ .../zutil/benchmark/StringSplitBenchmark.java | 59 ++++++++++++++++++ .../parser/json/JSONSerializerBenchmark.java | 4 +- .../zutil/parser/json/JSONSerializerTest.java | 2 - 5 files changed, 103 insertions(+), 4 deletions(-) rename lib/{junit-benchmarks-0.7.0.jar => junit-benchmarks-0.7.2.jar} (50%) mode change 100644 => 100755 create mode 100755 test/zutil/benchmark/LoopBenchmark.java create mode 100755 test/zutil/benchmark/StringSplitBenchmark.java diff --git a/lib/junit-benchmarks-0.7.0.jar b/lib/junit-benchmarks-0.7.2.jar old mode 100644 new mode 100755 similarity index 50% rename from lib/junit-benchmarks-0.7.0.jar rename to lib/junit-benchmarks-0.7.2.jar index bea0bf56dd7332917baf9e508257683e7b28fa43..93aee137fae31cc9e920aa6c7f44a69ef25e017c GIT binary patch delta 32507 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 delta 26927 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

Y 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 splitList = new ArrayList<>(); + int from = 0, to = 0; + while (to >= 0) { + to = str.indexOf(delimiter, from + 1); + if (to < 0) + splitList.add(str.substring(from)); + else + splitList.add(str.substring(from, to)); + from = to; + } + assertSplit(splitList.toArray(new String[splitList.size()])); + } + } + + public void assertSplit(String[] str){ + assertEquals(13,str.length); + } +} diff --git a/test/zutil/parser/json/JSONSerializerBenchmark.java b/test/zutil/parser/json/JSONSerializerBenchmark.java index 42810c7..61845f4 100755 --- a/test/zutil/parser/json/JSONSerializerBenchmark.java +++ b/test/zutil/parser/json/JSONSerializerBenchmark.java @@ -57,7 +57,7 @@ public class JSONSerializerBenchmark { TestClass targetObj = (TestClass) in.readObject(); in.close(); - assertEquals( sourceObj, targetObj ); + TestClass.assertEquals( sourceObj, targetObj ); } } @@ -68,7 +68,7 @@ public class JSONSerializerBenchmark { TestClass targetObj = JSONSerializerTest.sendReceiveObject(sourceObj); - assertEquals( sourceObj, targetObj ); + TestClass.assertEquals( sourceObj, targetObj ); } } diff --git a/test/zutil/parser/json/JSONSerializerTest.java b/test/zutil/parser/json/JSONSerializerTest.java index 88a75f4..408fe8b 100755 --- a/test/zutil/parser/json/JSONSerializerTest.java +++ b/test/zutil/parser/json/JSONSerializerTest.java @@ -186,8 +186,6 @@ public class JSONSerializerTest{ out.close(); String data = bout.toString(); - System.out.println(data); - return data; }