spec/symbol_spec.rb in nydp-0.5.1 vs spec/symbol_spec.rb in nydp-0.6.0
- old
+ new
@@ -1,108 +1,83 @@
require 'spec_helper'
describe Nydp::Symbol do
- let(:bar) { Nydp::Symbol.mk :BAR, ns }
- let(:foo) { Nydp::Symbol.mk :FOO, ns }
- let(:vm) { Nydp::VM.new(ns) }
+ let(:bar) { :BAR }
+ let(:foo) { :FOO }
describe "#inspect" do
it "wraps itself in pipe chars if empty" do
- sym = Nydp::Symbol.mk "", ns
- expect(sym.inspect).to eq "||"
+ sym = :""
+ expect(sym._nydp_inspect).to eq "||"
end
it "wraps itself in pipe chars if nil" do
- sym = Nydp::Symbol.mk nil, ns
- expect(sym.inspect).to eq "||"
+ sym = nil.to_s.to_sym
+ expect(sym._nydp_inspect).to eq "||"
end
it "wraps itself in pipe chars if it has spaces" do
- sym = Nydp::Symbol.mk "hello world", ns
- expect(sym.inspect).to eq "|hello world|"
+ sym = :"hello world"
+ expect(sym._nydp_inspect).to eq "|hello world|"
end
it "wraps itself in pipe chars if it has pipe chars" do
- sym = Nydp::Symbol.mk "hello|world", ns
- expect(sym.inspect).to eq '|hello\|world|'
+ sym = :"hello|world"
+ expect(sym._nydp_inspect).to eq '|hello\|world|'
end
it "wraps itself in pipe chars if it contains quote chars" do
- sym = Nydp::Symbol.mk "hello 'world'", ns
- expect(sym.inspect).to eq "|hello 'world'|"
+ sym = :"hello 'world'"
+ expect(sym._nydp_inspect).to eq "|hello 'world'|"
end
it "wraps itself in pipe chars if it contains doublequote chars" do
- sym = Nydp::Symbol.mk 'hello "world"', ns
- expect(sym.inspect).to eq '|hello "world"|'
+ sym = :'hello "world"'
+ expect(sym._nydp_inspect).to eq '|hello "world"|'
end
it "wraps itself in pipe chars if it has other punctuation" do
- sym = Nydp::Symbol.mk 'hello,(world)', ns
- expect(sym.inspect).to eq '|hello,(world)|'
+ sym = :'hello,(world)'
+ expect(sym._nydp_inspect).to eq '|hello,(world)|'
end
end
- it "returns a ruby symbol in #to_ruby" do
- sym = Nydp::Symbol.mk :foo, ns
- expect(sym.to_ruby).to eq :foo
- end
-
- it "should not recognise an unknown symbol" do
- sym = Nydp::Symbol.find :foo, ns
- expect(sym).to eq nil
- end
-
- it "should create a new symbol" do
- sym = Nydp::Symbol.mk :foo, ns
- expect(sym.name).to eq :foo
- end
-
- it "should not create a new symbol when the symbol already exists" do
- sym1 = Nydp::Symbol.mk :baz, ns
- sym2 = Nydp::Symbol.mk :baz, ns
-
- expect(sym1).to eq sym2
- expect(sym1).to equal sym2
- end
-
it "should consider symbols == when they share the same name" do
ns1 = { }
ns2 = { }
- sym1 = Nydp::Symbol.mk :baz, ns1
- sym2 = Nydp::Symbol.mk :baz, ns2
+ sym1 = :baz
+ sym2 = :baz
expect(sym1.hash).to eq sym2.hash
expect(sym1 == sym2).to eq true
expect(sym1.eql? sym2).to eq true
- expect(sym1.equal? sym2).to eq false
+ expect(sym1.equal? sym2).to eq true
end
it "works with builtin greater-than when true" do
f = Nydp::Builtin::GreaterThan.instance
- f.invoke vm, pair_list([foo, bar])
+ a = f.call foo, bar
- expect(vm.args.pop).to eq bar
+ expect(a).to eq bar
end
it "works with builtin greater-than when false" do
f = Nydp::Builtin::GreaterThan.instance
- f.invoke vm, pair_list([bar, foo])
+ a = f.call bar, foo
- expect(vm.args.pop).to eq Nydp::NIL
+ expect(a).to eq Nydp::NIL
end
it "works with builtin less-than when true" do
f = Nydp::Builtin::LessThan.instance
- f.invoke vm, pair_list([bar, foo])
+ a = f.call bar, foo
- expect(vm.args.pop).to eq foo
+ expect(a).to eq foo
end
it "works with builtin less-than when false" do
f = Nydp::Builtin::LessThan.instance
- f.invoke vm, pair_list([foo, bar])
+ a = f.call foo, bar
- expect(vm.args.pop).to eq Nydp::NIL
+ expect(a).to eq Nydp::NIL
end
-
end