equal
deleted
inserted
replaced
322 // Sulzmann's tests |
322 // Sulzmann's tests |
323 //================== |
323 //================== |
324 |
324 |
325 val sulzmann = ("a" | "b" | "ab").% |
325 val sulzmann = ("a" | "b" | "ab").% |
326 |
326 |
|
327 |
|
328 println(s"Sulzmann Test: ${alexing(sulzmann, "ab" * 1)}") |
|
329 |
327 println(alexing(sulzmann, "a" * 10)) |
330 println(alexing(sulzmann, "a" * 10)) |
328 println(alexing_simp(sulzmann, "a" * 10)) |
331 println(alexing_simp(sulzmann, "a" * 10)) |
329 |
332 |
330 for (i <- 1 to 4001 by 500) { |
333 for (i <- 1 to 4001 by 500) { |
331 println(i + ": " + "%.5f".format(time_needed(1, alexing_simp(sulzmann, "a" * i)))) |
334 println(i + ": " + "%.5f".format(time_needed(1, alexing_simp(sulzmann, "a" * i)))) |
390 |
393 |
391 //tests lexing and lexingB |
394 //tests lexing and lexingB |
392 def tests_inj(ss: Set[String])(r: Rexp) = { |
395 def tests_inj(ss: Set[String])(r: Rexp) = { |
393 clear() |
396 clear() |
394 println(s"Testing ${r}") |
397 println(s"Testing ${r}") |
395 for (s <- ss.par) yield { |
398 for (s <- ss) yield { |
396 val res1 = Try(Some(alexing(r, s))).getOrElse(None) |
399 val res1 = Try(Some(alexing(r, s))).getOrElse(None) |
397 val res2 = Try(Some(alexing_simp(r, s))).getOrElse(None) |
400 val res2 = Try(Some(alexing_simp(r, s))).getOrElse(None) |
398 if (res1 != res2) println(s"Disagree on ${r} and ${s}") |
401 if (res1 != res2) println(s"Disagree on ${r} and ${s}") |
399 if (res1 != res2) println(s" ${res1} != ${res2}") |
402 if (res1 != res2) println(s" ${res1} != ${res2}") |
400 if (res1 != res2) Some((r, s)) else None |
403 if (res1 != res2) Some((r, s)) else None |
410 |
413 |
411 |
414 |
412 def tests_alexer(ss: Set[String])(r: Rexp) = { |
415 def tests_alexer(ss: Set[String])(r: Rexp) = { |
413 clear() |
416 clear() |
414 println(s"Testing ${r}") |
417 println(s"Testing ${r}") |
415 for (s <- ss.par) yield { |
418 for (s <- ss) yield { |
416 val d = der('b', r) |
419 val d = der('b', r) |
417 val ad = ader('b', internalise(r)) |
420 val ad = ader('b', internalise(r)) |
418 val res1 = Try(Some(encode(inj(r, 'a', alexing(d, s))))).getOrElse(None) |
421 val res1 = Try(Some(encode(inj(r, 'a', alexing(d, s))))).getOrElse(None) |
419 val res2 = Try(Some(pre_alexing(ad, s))).getOrElse(None) |
422 val res2 = Try(Some(pre_alexing(ad, s))).getOrElse(None) |
420 if (res1 != res2) println(s"Disagree on ${r} and 'a'::${s}") |
423 if (res1 != res2) println(s"Disagree on ${r} and 'a'::${s}") |