spec/hash_spec.rb in nydp-0.1.15 vs spec/hash_spec.rb in nydp-0.2.0
- old
+ new
@@ -13,11 +13,11 @@
end
def _nydp_safe_methods ; %i{ a b } ; end
end
- let(:vm) { Nydp::VM.new }
+ let(:vm) { Nydp::VM.new(ns) }
describe "#to_ruby" do
it "converts ruby symbol key to nydp symbol key" do
hash = Nydp::Hash.new
hash[sym "boo"] = 42
@@ -60,11 +60,11 @@
end
describe "nydp hashes" do
describe "new hash" do
it "returns a new Nydp hash" do
- Nydp::Builtin::Hash.new.invoke vm, Nydp.NIL
+ Nydp::Builtin::Hash.instance.invoke vm, Nydp::NIL
h = vm.args.pop
expect(h).to be_a Nydp::Hash
end
end
@@ -72,11 +72,11 @@
it "sets a value on a hash" do
h = Nydp::Hash.new
k = sym "keysym"
v = 42
args = Nydp::Pair.from_list([h, k, v])
- Nydp::Builtin::HashSet.new.invoke vm, args
+ Nydp::Builtin::HashSet.instance.invoke vm, args
expect(h.keys). to eq [k]
expect(h[k]). to eq v
expect(vm.args.pop).to eq v
end
@@ -88,11 +88,11 @@
k = sym "keysym"
v = 42
h[k] = v
args = Nydp::Pair.from_list([h, k])
- Nydp::Builtin::HashGet.new(ns).invoke vm, args
+ Nydp::Builtin::HashGet.instance.invoke vm, args
expect(vm.args.pop).to eq v
end
end
describe "key?" do
@@ -100,60 +100,60 @@
h = Nydp::Hash.new
k = sym "jerry"
v = 42
h[k] = v
- Nydp::Builtin::HashKeyPresent.new(ns).invoke vm, pair_list([h, k])
+ Nydp::Builtin::HashKeyPresent.instance.invoke vm, pair_list([h, k])
- expect(vm.args.pop).to eq Nydp.T
+ expect(vm.args.pop).to eq Nydp::T
end
it "returns nil when key is absent" do
h = Nydp::Hash.new
k = sym "benjamin"
- Nydp::Builtin::HashKeyPresent.new(ns).invoke vm, pair_list([h, k])
+ Nydp::Builtin::HashKeyPresent.instance.invoke vm, pair_list([h, k])
- expect(vm.args.pop).to eq Nydp.NIL
+ expect(vm.args.pop).to eq Nydp::NIL
end
end
describe "hash keys" do
it "returns a list of keys" do
h = Nydp::Hash.new
h[sym "k0"] = 42
h[sym "k1"] = 84
args = Nydp::Pair.from_list([h])
- Nydp::Builtin::HashKeys.new(ns).invoke vm, args
+ Nydp::Builtin::HashKeys.instance.invoke vm, args
expect(vm.args.pop).to eq pair_list [sym("k0"), sym("k1")]
end
end
end
describe "get/set nil" do
- let(:ahash) { Nydp.NIL }
+ let(:ahash) { Nydp::NIL }
describe "hash set" do
it "does nothing, returns its value" do
k = Nydp::Symbol.mk "keysym", ns
v = Nydp::StringAtom.new "foobar"
args = pair_list [ahash, k, v]
- Nydp::Builtin::HashSet.new.invoke vm, args
+ Nydp::Builtin::HashSet.instance.invoke vm, args
- expect(ahash). to eq Nydp.NIL
+ expect(ahash). to eq Nydp::NIL
expect(vm.args.pop).to eq v
end
end
describe "hash get" do
it "converts ruby value to nydp value" do
k = Nydp::Symbol.mk "keysym", ns
args = [ ahash, k ]
- Nydp::Builtin::HashGet.new(ns).invoke vm, pair_list(args)
+ Nydp::Builtin::HashGet.instance.invoke vm, pair_list(args)
- expect(vm.args.pop).to eq Nydp.NIL
+ expect(vm.args.pop).to eq Nydp::NIL
end
end
end
end