From 0a32797df14687670337ad4e7545663decfd8212 Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Tue, 29 Apr 2025 15:47:00 +0200 Subject: [PATCH] test: Rule met cut --- tests/prolog/builtins/ControlOperatorsTests.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/prolog/builtins/ControlOperatorsTests.kt b/tests/prolog/builtins/ControlOperatorsTests.kt index 15ad926..2ffc38c 100644 --- a/tests/prolog/builtins/ControlOperatorsTests.kt +++ b/tests/prolog/builtins/ControlOperatorsTests.kt @@ -17,6 +17,24 @@ class ControlOperatorsTests { Program.clear() } + @Test + fun `rule with cut as body`() { + Program.load( + listOf( + Rule(Atom("foo"), Cut()), + Fact(Atom("foo")) + ) + ) + + val goal = Atom("foo") + + val result = Program.query(goal).toList() + + assertEquals(1, result.size, "Expected 1 result") + assertTrue(result[0].isSuccess, "Expected success") + assertTrue(result[0].getOrNull()!!.isEmpty(), "Expected empty substitutions") + } + // See also: https://stackoverflow.com/a/23292126 @Test