porolog 0.0.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,6 +32,7 @@ def reset
32
32
  Rule.reset
33
33
  Goal.reset
34
34
  Instantiation.reset
35
+ Porolog::ANONYMOUS[0] = '_a'
35
36
  end
36
37
 
37
38
  def assert_Scope(scope, name, predicates)
@@ -152,3 +153,11 @@ def new_goal(predicate_name, *arguments_list)
152
153
  arguments = predicate.arguments(*arguments_list)
153
154
  arguments.goal
154
155
  end
156
+
157
+ def assert_solutions(arguments, expected_solutions, goals: nil)
158
+ solutions = arguments.solve
159
+
160
+ assert_equal expected_solutions, solutions
161
+ assert_equal goals, Goal.goal_count if goals
162
+ solutions
163
+ end
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: porolog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Esteban
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-06 00:00:00.000000000 Z
11
+ date: 2020-08-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Implements a Prolog inference engine using Plain Old Ruby Objects (work
14
- in progress)
13
+ description: Implements a Prolog inference engine using Plain Old Ruby Objects
15
14
  email:
16
15
  - luis.esteban.consulting@gmail.com
17
16
  executables: []
@@ -42,6 +41,7 @@ files:
42
41
  - lib/porolog/goal.rb
43
42
  - lib/porolog/instantiation.rb
44
43
  - lib/porolog/predicate.rb
44
+ - lib/porolog/predicate/builtin.rb
45
45
  - lib/porolog/rule.rb
46
46
  - lib/porolog/scope.rb
47
47
  - lib/porolog/tail.rb
@@ -52,12 +52,14 @@ files:
52
52
  - test/porolog/goal_test.rb
53
53
  - test/porolog/instantiation_test.rb
54
54
  - test/porolog/porolog_test.rb
55
+ - test/porolog/predicate/builtin_test.rb
55
56
  - test/porolog/predicate_test.rb
56
57
  - test/porolog/rule_test.rb
57
58
  - test/porolog/scope_test.rb
58
59
  - test/porolog/tail_test.rb
59
60
  - test/porolog/value_test.rb
60
61
  - test/porolog/variable_test.rb
62
+ - test/samples_test.rb
61
63
  - test/test_helper.rb
62
64
  homepage: https://github.com/wizardofosmium/porolog
63
65
  licenses:
@@ -81,10 +83,11 @@ requirements: []
81
83
  rubygems_version: 3.0.3
82
84
  signing_key:
83
85
  specification_version: 4
84
- summary: Prolog using Plain Old Ruby Objects (work in progress)
86
+ summary: Prolog using Plain Old Ruby Objects
85
87
  test_files:
86
88
  - test/test_helper.rb
87
89
  - test/porolog/instantiation_test.rb
90
+ - test/porolog/predicate/builtin_test.rb
88
91
  - test/porolog/variable_test.rb
89
92
  - test/porolog/tail_test.rb
90
93
  - test/porolog/porolog_test.rb
@@ -95,3 +98,4 @@ test_files:
95
98
  - test/porolog/predicate_test.rb
96
99
  - test/porolog/arguments_test.rb
97
100
  - test/porolog/scope_test.rb
101
+ - test/samples_test.rb