spec/symbol_spec.rb in nydp-0.4.1 vs spec/symbol_spec.rb in nydp-0.4.2
- old
+ new
@@ -3,9 +3,40 @@
describe Nydp::Symbol do
let(:bar) { Nydp::Symbol.mk :BAR, ns }
let(:foo) { Nydp::Symbol.mk :FOO, ns }
let(:vm) { Nydp::VM.new(ns) }
+ describe "#inspect" do
+ it "wraps itself in pipe chars if empty" do
+ sym = Nydp::Symbol.mk "", ns
+ expect(sym.inspect).to eq "||"
+ end
+ it "wraps itself in pipe chars if nil" do
+ sym = Nydp::Symbol.mk nil, ns
+ expect(sym.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|"
+ 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|'
+ 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'|"
+ 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"|'
+ 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)|'
+ 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