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 Atom
15
16 class SymbolTest < 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, '@Apple.show'
24 assert_instance_of VCA::String, value
25 assert_equal '@Apple', value.val
26 end
27
28
29 def test_imess_to_s
30 value = Api.eval_expr @interp, '@Apple.to-s'
31 assert_instance_of VCA::String, value
32 assert_equal 'Apple', value.val
33 end
34
35
36 def test_imess_less_than
37 value = Api.eval_expr @interp, '@Apple.< @Banana'
38 assert_instance_of VCA::Bool, value
39 assert_equal true, value.val
40
41 value = Api.eval_expr @interp, '@Apple.< @Apple'
42 assert_instance_of VCA::Bool, value
43 assert_equal false, value.val
44 end
45
46
47 def test_parameter_of_relation_operator_should_be_a_symbol
48 assert_raises(X::TypeError) do
49 Api.eval_expr @interp, "@Apple.< ()"
50 end
51
52 assert_raises(X::TypeError) do
53 Api.eval_expr @interp, "@Apple.< 3"
54 end
55
56 assert_raises(X::TypeError) do
57 Api.eval_expr @interp, "@Apple.<= ()"
58 end
59
60 assert_raises(X::TypeError) do
61 Api.eval_expr @interp, "@Apple.<= 4"
62 end
63 end
64 end
65
66 end # Umu::Test::Library::Class::Atom
67
68 end # Umu::Test::Library::Class
69
70 end # Umu::Test::Library
71
72 end # Umu::Test
73
74 end # Umu