Skip to content

Instantly share code, notes, and snippets.

@wbars
Last active September 15, 2016 00:49
Show Gist options
  • Save wbars/885222c06ec4a88aa6f9f8e0d646a83d to your computer and use it in GitHub Desktop.
Save wbars/885222c06ec4a88aa6f9f8e0d646a83d to your computer and use it in GitHub Desktop.
object test {
def main(args: Array[String]): Unit = {
val simplePattern = tokenize("abc")
assert(test("abc", simplePattern))
assert(test("xabc", simplePattern))
assert(test("xabcd", simplePattern))
assert(test("abcd", simplePattern))
assert(!test("bc", simplePattern))
assert(!test("ab", simplePattern))
val orPattern = tokenize("a|b")
assert(test("a", orPattern))
assert(test("b", orPattern))
assert(test("xas", orPattern))
assert(test("xbs", orPattern))
assert(test("ab", orPattern))
assert(!test("d", orPattern))
val kleenyPattern = tokenize("a*b")
assert(test("b", kleenyPattern))
assert(test("ab", kleenyPattern))
assert(test("aab", kleenyPattern))
assert(test("aaab", kleenyPattern))
assert(!test("a", kleenyPattern))
assert(!test("aa", kleenyPattern))
assert(!test("xz", kleenyPattern))
val compositePattern1 = tokenize("a*(c|d)")
assert(test("c", compositePattern1))
assert(test("d", compositePattern1))
assert(test("ac", compositePattern1))
assert(test("aac", compositePattern1))
assert(test("aad", compositePattern1))
assert(!test("a", compositePattern1))
assert(!test("aa", compositePattern1))
assert(!test("ab", compositePattern1))
assert(!test("aab", compositePattern1))
val compositePattern2 = tokenize("(ab)(cd)*((xz)|(hf))")
assert(test("abcdxz", compositePattern2))
assert(test("abcdcdxz", compositePattern2))
assert(test("abxz", compositePattern2))
assert(test("abhf", compositePattern2))
assert(!test("abcd", compositePattern2))
assert(!test("abc", compositePattern2))
assert(!test("abkxz", compositePattern2))
assert(!test("", compositePattern2))
assert(!test("a", compositePattern2))
assert(!test("r", compositePattern2))
assert(!test("xz", compositePattern2))
assert(!test("hf", compositePattern2))
assert(!test("cdxz", compositePattern2))
assert(!test("xz", compositePattern2))
val kleenyOrPattern = tokenize("x(a|b)*")
assert(test("xababab", kleenyOrPattern))
assert(test("x", kleenyOrPattern))
assert(!test("ss", kleenyOrPattern))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment