-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathtype_test.rb
executable file
·101 lines (83 loc) · 2.33 KB
/
type_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env ruby
$use_tree=false
require_relative '../parser_test_helper'
class TypeTest < ParserBaseTest
include ParserTestHelper
def test_typed_variable
parse "Int i=7"
assert_equals variableTypes("i"),Integer #should equal Fixnum
# assert_equal variables["i"].type==Int
end
def test_typed_variable2
parse "int i=7"
assert_equals variableTypes("i"),"Integer"
# assert_equal variables["i"].type==Int
end
def test_auto_typed_variable
parse "i=7"
assert_equals variableTypes("i"),"Fixnum"
# assert_equals variableTypes("i"),"int"
# assert_equal variables["i"].type==Int
end
def test_type1
init "class of 1,2,3"
@parser.evaluate_property
assert_equals result, Array
init "class of [1,2,3]"
@parser.expressions
assert_equals result, Array
skip
parse "class of 1,2,3"
assert_equals result, Array
end
def test_type2
parse "x=1,2,3;class of x"
assert_equals result, Array
end
def test_type22
parse "x=1;class of x"
assert_equals result, Fixnum
end
def test_type
parse "x=1,2,3;"
# $verbose=true
assert "type of x is Array"
end
def test_type3
parse "x be 1,2,3;y= class of x"
assert variables['y']==Array
assert_equals variables['x'].type, Array
# assert_equals variables['x'].class, Array Variable
# assert_equals variables['x'].kind, Array
# assert_equals variables['y'], Array
assert_equals variableValues['x'].class, Array
assert_equals variableValues['x'].kind, Array
assert_equals variableValues['y'], Array
assert("y is a Array")
assert("y is an Array")
assert("y is Array")
assert("Array == class of x")
assert("class of x is Array")
assert("kind of x is Array")
assert("type of x is Array")
end
def test_type4
variables['x']=[1, 2, 3]
assert("class of x is Array")
assert("kind of x is Array")
assert("type of x is Array")
end
def test_type_cast
# verbose
assert_result_is "2.3",2.3
parse "int z=2.3 as int"
assert_equals result,2
# parse "x='5';int z=x as int"
end
def test_no_type_cast
assert_equals parse("2.3 as int").class,Fixnum# Integer
assert_equals parse("2.3").class,Float
# assert_equals @parser.do_evaluate("2.3").class,Float
# assert do_evaluate("2.3 as int").class==Integer
end
end