test/transformer/spec_expr-transformer.rb in pione-0.1.4 vs test/transformer/spec_expr-transformer.rb in pione-0.2.0
- old
+ new
@@ -1,53 +1,46 @@
require_relative '../test-util'
+$a = PioneString.new("a")
+$b = PioneString.new("b")
+$c = PioneString.new("c")
+$abc = PioneString.new("abc")
+$var_x = Variable.new("X")
+$var_y = Variable.new("Y")
+$var_z = Variable.new("Z")
+
describe 'Pione::Transformer::ExprTransformer' do
+
transformer_spec("binary operator", :expr) do
tc "1 + 2" do
- BinaryOperator.new(
+ Message.new(
"+",
IntegerSequence.new([1.to_pione]),
IntegerSequence.new([2.to_pione])
)
end
tc '"a" + "b"' do
- BinaryOperator.new(
- "+",
- StringSequence.new(["a".to_pione]),
- StringSequence.new(["b".to_pione])
- )
+ Message.new("+", StringSequence.new([$a]), StringSequence.new([$b]))
end
tc "false || true" do
- BinaryOperator.new(
+ Message.new(
"||",
BooleanSequence.new([PioneBoolean.false]),
BooleanSequence.new([PioneBoolean.true])
)
end
- tc "$Var * 3" do
- BinaryOperator.new(
- "*",
- Variable.new("Var"),
- IntegerSequence.new([3.to_pione])
- )
+ tc "$X * 3" do
+ Message.new("*", $var_x, IntegerSequence.new([3.to_pione]))
end
- tc "($Var1 == \"a\") && ($Var2 == \"b\")" do
- left = BinaryOperator.new(
- "==",
- Variable.new("Var1"),
- StringSequence.new(["a".to_pione])
- )
- right = BinaryOperator.new(
- "==",
- Variable.new("Var2"),
- StringSequence.new([PioneString.new("b")])
- )
- BinaryOperator.new("&&", left, right)
+ tc "($X == \"a\") && ($Y == \"b\")" do
+ left = Message.new("==", $var_x, StringSequence.new([$a]))
+ right = Message.new("==", $var_y, StringSequence.new([$b]))
+ Message.new("&&", left, right)
end
end
transformer_spec("data_expr", :expr) do
tc "'test.a'" do
@@ -69,29 +62,29 @@
end
tc "\"abc\".index(1,1)" do
Message.new(
"index",
- StringSequence.new(["abc".to_pione]),
+ StringSequence.new([$abc]),
IntegerSequence.new([1.to_pione]),
IntegerSequence.new([1.to_pione])
)
end
tc "(1 + 2).prev" do
Message.new(
"prev",
- BinaryOperator.new(
+ Message.new(
"+",
IntegerSequence.new([1.to_pione]),
IntegerSequence.new([2.to_pione])
)
)
end
tc "abc.sync" do
- rule = RuleExpr.new(Package.new("main"), "abc")
+ rule = RuleExpr.new(PackageExpr.new("main"), "abc")
Message.new("sync", rule)
end
tc "'*.txt'.all" do
Message.new("all", DataExpr.new("*.txt").to_seq)
@@ -109,27 +102,25 @@
transformer_spec("parameters", :expr) do
tc "{}" do
Parameters.new({})
end
- tc "{var1: 1}" do
- Parameters.new(
- {Variable.new("var1") => IntegerSequence.new([PioneInteger.new(1)])}
- )
+ tc "{X: 1}" do
+ Parameters.new({$var_x => IntegerSequence.new([PioneInteger.new(1)])})
end
- tc "{var1: 1, var2: 2}" do
+ tc "{X: 1, Y: 2}" do
Parameters.new(
- { Variable.new("var1") => IntegerSequence.new([PioneInteger.new(1)]),
- Variable.new("var2") => IntegerSequence.new([PioneInteger.new(2)]) }
+ { $var_x => IntegerSequence.new([PioneInteger.new(1)]),
+ $var_y => IntegerSequence.new([PioneInteger.new(2)]) }
)
end
- tc "{var1: \"a\", var2: \"b\", var3: \"c\"}" do
+ tc "{X: \"a\", Y: \"b\", Z: \"c\"}" do
Parameters.new(
- { Variable.new("var1") => StringSequence.new([PioneString.new("a")]),
- Variable.new("var2") => StringSequence.new([PioneString.new("b")]),
- Variable.new("var3") => StringSequence.new([PioneString.new("c")]) }
+ { $var_x => StringSequence.new([$a]),
+ $var_y => StringSequence.new([$b]),
+ $var_z => StringSequence.new([$c]) }
)
end
end
end