Skip to content

Commit 8d51a9a

Browse files
committed
Spec cleanup
1 parent 6ef96d1 commit 8d51a9a

File tree

4 files changed

+30
-16
lines changed

4 files changed

+30
-16
lines changed

spec/micro_kanren/core_spec.rb

+2-16
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
include MicroKanren::MiniKanrenWrappers
66
include MicroKanren::Lisp
77

8-
def uvar(v)
9-
MicroKanren::Var.new([v])
10-
end
8+
include MicroKanren::TestPrograms
9+
include MicroKanren::TestSupport
1110

1211
describe "#call_fresh" do
1312
it "second-set t1" do
@@ -32,13 +31,6 @@ def uvar(v)
3231
cdr(res).must_be_nil
3332
end
3433

35-
def a_and_b
36-
a = -> (a) { eq(a, 7) }
37-
b = -> (b) { disj(eq(b, 5), eq(b, 6)) }
38-
39-
conj(call_fresh(a), call_fresh(b))
40-
end
41-
4234
# https://github.com/jasonhemann/microKanren/blob/master/microKanren-test.scm#L13
4335
it "second-set t3" do
4436
res = car(a_and_b.call(empty_state))
@@ -50,12 +42,6 @@ def a_and_b
5042
lists_equal?(res, sexp).must_equal true
5143
end
5244

53-
def fives
54-
-> (x) {
55-
disj(eq(x, 5), -> (a_c) { -> { fives(x).call(a_c) } })
56-
}
57-
end
58-
5945
it "who cares" do
6046
res = take(1, call_fresh(-> (q) { fives.call(q) }).call(empty_state))
6147

spec/spec_helper.rb

+3
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33
require "mocha"
44

55
require "#{File.dirname(__FILE__)}/../lib/micro_kanren"
6+
7+
require "#{File.dirname(__FILE__)}/test_programs"
8+
require "#{File.dirname(__FILE__)}/test_support"

spec/test_programs.rb

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module MicroKanren
2+
module TestPrograms
3+
def a_and_b
4+
a = -> (a) { eq(a, 7) }
5+
b = -> (b) { disj(eq(b, 5), eq(b, 6)) }
6+
7+
conj(call_fresh(a), call_fresh(b))
8+
end
9+
10+
def fives
11+
-> (x) {
12+
disj(eq(x, 5), -> (a_c) { -> { fives(x).call(a_c) } })
13+
}
14+
end
15+
end
16+
end

spec/test_support.rb

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module MicroKanren
2+
module TestSupport
3+
4+
# Shorthand for declaring a new logic variable.
5+
def uvar(v)
6+
MicroKanren::Var.new([v])
7+
end
8+
end
9+
end

0 commit comments

Comments
 (0)