summaryrefslogtreecommitdiff
path: root/core/src/benchmark/scala/com/rockymadden/stringmetric/tokenize/NGramTokenizerBenchmark.scala
blob: d66bf88942e1d1b6fbb753f220025f6f763a4c13 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.rockymadden.stringmetric.tokenize

import com.google.caliper.Param
import com.rockymadden.stringmetric.{CaliperBenchmark, CaliperRunner}
import scala.util.Random

final class NGramTokenizerBenchmark extends CaliperBenchmark {
	@Param(Array("0", "1", "2", "4", "8", "16"))
	var length: Int = _

	@Param(Array("2", "3"))
	var n: Int = _

	var string: String = _
	var charArray: Array[Char] = _

	override protected def setUp() {
		string = Random.alphanumeric.take(length).mkString
		charArray = string.toCharArray
	}

	def timeComputeWithCharArray(reps: Int) = run(reps) {
		NGramTokenizer(n).tokenize(charArray)
	}

	def timeComputeWithString(reps: Int) = run(reps) {
		NGramTokenizer(n).tokenize(string)
	}
}