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