summaryrefslogtreecommitdiff
path: root/core/source/benchmark/scala/org/hashtree/stringmetric/phonetic/MetaphoneAlgorithmBenchmark.scala
diff options
context:
space:
mode:
authorRocky Madden <git@rockymadden.com>2012-11-15 10:32:18 -0700
committerRocky Madden <git@rockymadden.com>2012-11-15 10:32:18 -0700
commit690846dd22982d7a4a9b998686d6d3768163475c (patch)
tree312c18c78f51431d88b4e5660dc6acc1e7aac07c /core/source/benchmark/scala/org/hashtree/stringmetric/phonetic/MetaphoneAlgorithmBenchmark.scala
parent73f92cba9918a8aea2d784cff94c5dbade5cbbbd (diff)
downloadstringmetric-690846dd22982d7a4a9b998686d6d3768163475c.tar.gz
stringmetric-690846dd22982d7a4a9b998686d6d3768163475c.tar.bz2
stringmetric-690846dd22982d7a4a9b998686d6d3768163475c.zip
Added Google Caliper microbenchmark suite for every metric and algorithm.
Diffstat (limited to 'core/source/benchmark/scala/org/hashtree/stringmetric/phonetic/MetaphoneAlgorithmBenchmark.scala')
-rwxr-xr-xcore/source/benchmark/scala/org/hashtree/stringmetric/phonetic/MetaphoneAlgorithmBenchmark.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/core/source/benchmark/scala/org/hashtree/stringmetric/phonetic/MetaphoneAlgorithmBenchmark.scala b/core/source/benchmark/scala/org/hashtree/stringmetric/phonetic/MetaphoneAlgorithmBenchmark.scala
new file mode 100755
index 0000000..27c93af
--- /dev/null
+++ b/core/source/benchmark/scala/org/hashtree/stringmetric/phonetic/MetaphoneAlgorithmBenchmark.scala
@@ -0,0 +1,28 @@
+package org.hashtree.stringmetric.phonetic
+
+import com.google.caliper.Param
+import org.hashtree.stringmetric.{ CaliperBenchmark, CaliperRunner }
+import scala.util.Random
+
+final class MetaphoneAlgorithmBenchmark extends CaliperBenchmark {
+ @Param(Array("0", "1", "2", "4", "8", "16"))
+ var length: Int = _
+
+ var string: String = _
+ var charArray: Array[Char] = _
+
+ override protected def setUp() {
+ string = Random.alphanumeric.filter(_ > '9').take(length).mkString
+ charArray = string.toCharArray
+ }
+
+ def timeComputeWithCharArray(reps: Int) = run(reps) {
+ MetaphoneAlgorithm.compute(charArray)
+ }
+
+ def timeComputeWithString(reps: Int) = run(reps) {
+ MetaphoneAlgorithm.compute(string)
+ }
+}
+
+object MetaphoneAlgorithmBenchmark extends CaliperRunner(classOf[MetaphoneAlgorithmBenchmark]) \ No newline at end of file