1 # frozen_string_literal: true
2
3 require "test_helper"
4
5
6 module Umu
7
8 module Test
9
10 module Library
11
12 module Class
13
14 module Product
15
16 class NamedTupleTest < Minitest::Test
17 def setup
18 @interp = Api.setup_interpreter
19 end
20
21
22 def test_imess_show
23 value = Api.eval_expr @interp, '(name:@Apple area:"Aomori").show'
24 assert_instance_of VCA::String, value
25 assert_equal '(name:@Apple area:"Aomori")', value.val
26 end
27
28
29 def test_imess_to_s
30 value = Api.eval_expr @interp, '(name:@Apple area:"Aomori").to-s'
31 assert_instance_of VCA::String, value
32 assert_equal '(name:Apple area:Aomori)', value.val
33 end
34
35
36 def test_imess_equal
37 value = Api.eval_expr @interp, <<-EOS
38 (name:@Apple price:300).== (name:@Apple price:300)
39 EOS
40 assert_instance_of VCA::Bool, value
41 assert_equal true, value.val
42
43 value = Api.eval_expr @interp, <<-EOS
44 (name:@Apple price:300).== 4
45 EOS
46 assert_instance_of VCA::Bool, value
47 assert_equal false, value.val
48
49 value = Api.eval_expr @interp, <<-EOS
50 (name:@Apple price:300).== (name:@Banana price:300)
51 EOS
52 assert_instance_of VCA::Bool, value
53 assert_equal false, value.val
54
55 value = Api.eval_expr @interp, <<-EOS
56 (name:@Apple price:300).== (name:@Apple price:500)
57 EOS
58 assert_instance_of VCA::Bool, value
59 assert_equal false, value.val
60 end
61
62
63 def test_imess_less_than
64 value = Api.eval_expr @interp, <<-EOS
65 (name:@Apple price:300).< (name:@Banana price:300)
66 EOS
67 assert_instance_of VCA::Bool, value
68 assert_equal true, value.val
69
70 value = Api.eval_expr @interp, <<-EOS
71 (name:@Apple price:300).< (name:@Apple price:500)
72 EOS
73 assert_instance_of VCA::Bool, value
74 assert_equal true, value.val
75
76 assert_raises(X::TypeError) do
77 Api.eval_expr @interp, <<-EOS
78 (name:@Apple price:300).< 4
79 EOS
80 end
81
82 value = Api.eval_expr @interp, <<-EOS
83 (name:@Apple price:300).< (name:@Apple price:300)
84 EOS
85 assert_instance_of VCA::Bool, value
86 assert_equal false, value.val
87 end
88 end
89
90 end # Umu::Test::Library::Class::Product
91
92 end # Umu::Test::Library::Class
93
94 end # Umu::Test::Library
95
96 end # Umu::Test
97
98 end # Umu