From 5e30fa6264822c7211ba6b213c8968e5d364057c Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Mon, 24 Sep 2018 22:47:01 -0600 Subject: [PATCH] add more tests --- src/tests.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/tests.rs b/src/tests.rs index 4d0dd215..0afcd720 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -2024,4 +2024,24 @@ fn test_queries_on_string_lists() ["X = [a, b, c | _]", "Y = _"]]); assert_prolog_failure!(&mut wam, "?- partial_string(\"abc\", X), partial_string(\"bc\", Y), X = [a | Y]."); + + submit(&mut wam, "matcher([a|X], X) :- matcher2(X, _). + matcher([b|X], X) :- matcher2(X, _). + + matcher2([c|X], X). + matcher2([d|X], X)."); + + assert_prolog_success!(&mut wam, "?- partial_string(\"\", X), matcher(X, Y).", + [["X = [a, c | _]", "Y = [c | _]"], + ["X = [a, d | _]", "Y = [d | _]"], + ["X = [b, c | _]", "Y = [c | _]"], + ["X = [b, d | _]", "Y = [d | _]"]]); + assert_prolog_success!(&mut wam, "?- partial_string(\"a\", X), matcher(X, Y).", + [["X = [a, c | _]", "Y = [c | _]"], + ["X = [a, d | _]", "Y = [d | _]"]]); + assert_prolog_success!(&mut wam, "?- partial_string(\"b\", X), matcher(X, Y).", + [["X = [b, c | _]", "Y = [c | _]"], + ["X = [b, d | _]", "Y = [d | _]"]]); + assert_prolog_success!(&mut wam, "?- partial_string(\"bc\", X), matcher(X, Y).", + [["X = [b, c | _]", "Y = [c | _]"]]); } -- 2.54.0