kyanite 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/0 start all Tests.bat +23 -0
  2. data/History.txt +4 -0
  3. data/License.txt +21 -0
  4. data/Manifest.txt +88 -0
  5. data/PostInstall.txt +4 -0
  6. data/README.txt +48 -0
  7. data/Rakefile.rb +79 -0
  8. data/init.rb +2 -0
  9. data/lib/kyanite.rb +39 -0
  10. data/lib/kyanite/array.rb +5 -0
  11. data/lib/kyanite/array/array.rb +172 -0
  12. data/lib/kyanite/array/array2.rb +140 -0
  13. data/lib/kyanite/array/matrix2.rb +120 -0
  14. data/lib/kyanite/array_of_enumerables.rb +2 -0
  15. data/lib/kyanite/array_of_numerics.rb +2 -0
  16. data/lib/kyanite/array_of_strings.rb +2 -0
  17. data/lib/kyanite/basics.rb +60 -0
  18. data/lib/kyanite/dictionary.rb +116 -0
  19. data/lib/kyanite/enumerable.rb +7 -0
  20. data/lib/kyanite/enumerable/enumerable_enumerables.rb +70 -0
  21. data/lib/kyanite/enumerable/enumerable_numerics.rb +171 -0
  22. data/lib/kyanite/enumerable/enumerable_strings.rb +58 -0
  23. data/lib/kyanite/enumerable/structure.rb +170 -0
  24. data/lib/kyanite/general.rb +8 -0
  25. data/lib/kyanite/general/callerutils.rb +128 -0
  26. data/lib/kyanite/general/classutils.rb +246 -0
  27. data/lib/kyanite/general/kernel.rb +105 -0
  28. data/lib/kyanite/general/nil.rb +64 -0
  29. data/lib/kyanite/general/object.rb +86 -0
  30. data/lib/kyanite/general/true_false.rb +65 -0
  31. data/lib/kyanite/general/undoable.rb +24 -0
  32. data/lib/kyanite/hash.rb +170 -0
  33. data/lib/kyanite/matrix2.rb +2 -0
  34. data/lib/kyanite/nil.rb +3 -0
  35. data/lib/kyanite/numeric.rb +4 -0
  36. data/lib/kyanite/numeric/float.rb +26 -0
  37. data/lib/kyanite/numeric/integer.rb +34 -0
  38. data/lib/kyanite/numeric/numeric.rb +45 -0
  39. data/lib/kyanite/operation.rb +5 -0
  40. data/lib/kyanite/operation/call_tracker.rb +69 -0
  41. data/lib/kyanite/operation/rake.rb +101 -0
  42. data/lib/kyanite/operation/regexp.rb +23 -0
  43. data/lib/kyanite/operation/unit_test.rb +53 -0
  44. data/lib/kyanite/optimizer.rb +119 -0
  45. data/lib/kyanite/rake.rb +2 -0
  46. data/lib/kyanite/range.rb +54 -0
  47. data/lib/kyanite/set.rb +219 -0
  48. data/lib/kyanite/smart_load_path.rb +2 -0
  49. data/lib/kyanite/string.rb +13 -0
  50. data/lib/kyanite/string/cast.rb +104 -0
  51. data/lib/kyanite/string/chars.rb +184 -0
  52. data/lib/kyanite/string/chars_const.rb +190 -0
  53. data/lib/kyanite/string/diff.rb +78 -0
  54. data/lib/kyanite/string/div.rb +19 -0
  55. data/lib/kyanite/string/include.rb +43 -0
  56. data/lib/kyanite/string/list.rb +84 -0
  57. data/lib/kyanite/string/mgsub.rb +35 -0
  58. data/lib/kyanite/string/nested.rb +253 -0
  59. data/lib/kyanite/string/random.rb +69 -0
  60. data/lib/kyanite/string/split.rb +136 -0
  61. data/lib/kyanite/symbol.rb +19 -0
  62. data/lib/kyanite/tree.rb +99 -0
  63. data/lib/kyanite/undoable.rb +2 -0
  64. data/lib/kyanite/unit_test.rb +2 -0
  65. data/test/_start_all.rb +17 -0
  66. data/test/array/test_array.rb +106 -0
  67. data/test/array/test_matrix2.rb +162 -0
  68. data/test/enumerable/test_enumerable_enumerables.rb +46 -0
  69. data/test/enumerable/test_enumerable_numerics.rb +93 -0
  70. data/test/enumerable/test_enumerable_strings.rb +22 -0
  71. data/test/enumerable/test_structure.rb +220 -0
  72. data/test/general/test_classutils.rb +45 -0
  73. data/test/general/test_nil.rb +44 -0
  74. data/test/general/test_object.rb +49 -0
  75. data/test/general/test_true_false.rb +28 -0
  76. data/test/numeric/test_numeric_integer.rb +28 -0
  77. data/test/string/test_cast.rb +108 -0
  78. data/test/string/test_chars.rb +255 -0
  79. data/test/string/test_diff.rb +95 -0
  80. data/test/string/test_list.rb +141 -0
  81. data/test/string/test_nested.rb +361 -0
  82. data/test/string/test_split.rb +187 -0
  83. data/test/test_dictionary.rb +128 -0
  84. data/test/test_hash.rb +59 -0
  85. data/test/test_optimizer.rb +150 -0
  86. data/test/test_range.rb +41 -0
  87. data/test/test_set.rb +210 -0
  88. data/test/test_tree.rb +94 -0
  89. metadata +217 -0
@@ -0,0 +1,93 @@
1
+
2
+ require 'kyanite/unit_test'
3
+ require 'kyanite/smart_load_path'; smart_load_path
4
+ require 'perception' if $0 == __FILE__
5
+
6
+ require 'kyanite/enumerable/enumerable_numerics'
7
+
8
+ class Array
9
+ include EnumerableNumerics
10
+ end
11
+
12
+
13
+ # Tests für EnumerableNumerics
14
+ #
15
+ class TestKyaniteEnumerableNumerics < UnitTest
16
+
17
+
18
+ def test_sum
19
+ assert_equal 2, [2].summation
20
+ assert_equal 4, [2,2].summation
21
+ assert_equal 6, [2,2,2].summation
22
+ assert_equal 8, [2,2,2,2].summation
23
+ assert_equal 8.5, [2,2,2,2,0.5].summation
24
+ end
25
+
26
+
27
+
28
+ def test_prd
29
+ assert_equal 2, [2].prd
30
+ assert_equal 6, [2,3].prd
31
+ assert_equal -12, [2,2,-3].prd
32
+ assert_equal 1, [0.5,0.5,2,2].prd
33
+ end
34
+
35
+
36
+ def test_avg
37
+ a = [1,2,3,4,5,6,7,8,9]
38
+ assert_equal 5.0, a.average
39
+
40
+ assert_equal 2, [2].avg
41
+ assert_equal 2.5, [2,3].avg
42
+ assert_equal 2.5, [3,2].avg
43
+ assert_equal 0.33333333333333, [2,2,-3].avg
44
+ assert_equal 1.25, [0.5,0.5,2,2].avg
45
+
46
+ assert_equal 75, [ 50, 100 ].mean_arithmetric
47
+ assert_equal 66.6666666666667, [ 50, 100 ].mean_harmonic
48
+ assert_equal 70.7106781186548, [ 50, 100 ].mean_geometric
49
+
50
+ assert_equal 66.6666666666667, [ 100, 0, 100 ].mean_arithmetric
51
+ assert_equal 66.6666667, [ 100, 0.0000001, 100 ].mean_arithmetric
52
+ assert_equal 0.0, [ 100, 0, 100 ].mean_harmonic
53
+ assert_equal 2.999999994e-007, [ 100, 0.0000001, 100 ].mean_harmonic
54
+ assert_equal 0, [ 100, 0, 100 ].mean_geometric
55
+ assert_equal 0.1, [ 100, 0.0000001, 100 ].mean_geometric
56
+ end
57
+
58
+
59
+ def test_mean_harmonic
60
+ assert_equal 66.6666666666667, [ 50, 100 ].mean_harmonic
61
+ assert_equal 0.0, [ 100, 0, 100 ].mean_harmonic
62
+ assert_equal 2.999999994e-007, [ 100, 0.0000001, 100 ].mean_harmonic
63
+ assert_equal 4, [ 1, -2 ].mean_harmonic # formal richtig, aber sinnlos
64
+ assert_equal -0.5, [ 1, -2 ].mean_harmonic(:allow_negative => true)
65
+ assert_equal -0.5, [ 1, 1, -2, -2 ].mean_harmonic(:allow_negative => true)
66
+ assert_equal -2, [ -2, -2 ].mean_harmonic(:allow_negative => true)
67
+ assert_equal 2, [ 2, 2 ].mean_harmonic(:allow_negative => true)
68
+ assert_equal 0, [ -2, 2 ].mean_harmonic(:allow_negative => true)
69
+ assert_equal 0, [ 2, -2 ].mean_harmonic(:allow_negative => true)
70
+ assert_equal 0.666666666666667, [ 2, 2, -2 ].mean_harmonic(:allow_negative => true)
71
+ end
72
+
73
+
74
+ def test_parallel
75
+ assert_equal 1, [1].parallel
76
+ assert_equal 0.5, [1,1].parallel
77
+ assert_equal 0.333333333333333, [1,1,1].parallel
78
+ assert_equal 0.25, [1,1,1,1].parallel
79
+
80
+ assert_equal 2, [2].parallel
81
+ assert_equal 1, [2,2].parallel
82
+ assert_equal 0.666666666666667, [2,2,2].parallel
83
+ assert_equal 0.5, [2,2,2,2].parallel
84
+ assert_equal 0.5, [2,2,1].parallel
85
+ end
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+ end # class
@@ -0,0 +1,22 @@
1
+
2
+ require 'kyanite/unit_test'
3
+ require 'kyanite/smart_load_path'; smart_load_path
4
+ require 'perception' if $0 == __FILE__
5
+
6
+ require 'kyanite/enumerable/enumerable_strings'
7
+
8
+ class Array
9
+ include EnumerableStrings
10
+ end
11
+
12
+
13
+ # Tests für EnumerableStrings
14
+ #
15
+ class TestKyaniteEnumerableStrings < UnitTest
16
+
17
+ def test_palindrom_rumpf
18
+ test = ['lut', 'lutr', 'lutmi', 'lutmil', 'lutmila', 'lutrika', 'lutrik', 'lutri', 'lutr', 'lut']
19
+ assert_equal ['lutmi', 'lutmil', 'lutmila', 'lutrika', 'lutrik', 'lutri'], test.palindrom_rumpf
20
+ end
21
+
22
+ end # class
@@ -0,0 +1,220 @@
1
+
2
+ require 'kyanite/unit_test'
3
+ require 'kyanite/smart_load_path'; smart_load_path
4
+ require 'perception' if $0 == __FILE__
5
+
6
+ require 'kyanite/enumerable/structure'
7
+ require 'kyanite/dictionary'
8
+ require 'kyanite/set'
9
+ require 'kyanite/hash'
10
+
11
+
12
+
13
+ # Tests für Enumerable
14
+ #
15
+ class TestKyaniteEnumerableStructure < UnitTest
16
+
17
+ def test_is_collection
18
+
19
+ # keine Collection
20
+ assert ! 123.is_collection?
21
+ assert ! (123.4).is_collection?
22
+ assert ! (123.4).is_collection?
23
+ assert ! (:hallo).is_collection?
24
+ assert ! ''.is_collection?
25
+ assert ! /123/.is_collection?
26
+ assert ! Time.now.is_collection?
27
+ assert ! nil.is_collection?
28
+ assert ! true.is_collection?
29
+ assert ! false.is_collection?
30
+ assert ! Array.is_collection?
31
+ assert ! (1..4).is_collection? # Range gilt NICHT als Collection
32
+
33
+ # Collections
34
+ assert [1,2,3].is_collection?
35
+ assert [1].is_collection?
36
+ assert [].is_collection?
37
+ assert ['1','2','3'].is_collection?
38
+ assert ({}).is_collection?
39
+ assert ({:a => '1', :b => '2'}).is_collection?
40
+ assert Dictionary[1,2,3,4].is_collection?
41
+
42
+ Struct.new("Customer", :name, :adress)
43
+ struct = Struct::Customer.new("Dave", "123 main")
44
+ assert struct.is_collection?
45
+
46
+ end # test_is_collection?
47
+
48
+
49
+
50
+
51
+
52
+ def test_distribution_size
53
+ test = []
54
+ test << [ :a, :b, :c ]
55
+ test << [ 1, 2, 3, 4 ]
56
+ test << [ 'i', 'ii' ]
57
+ expected = [[2, 1],
58
+ [3, 1],
59
+ [4, 1]]
60
+ assert_equal expected, test.distribution
61
+
62
+ test = []
63
+ test << [ :a, :b, :c ]
64
+ test << [ 1, 2, 3 ]
65
+ test << [ 'i', 'ii', nil ]
66
+ assert_equal [[3, 3]], test.distribution
67
+
68
+ test = [ :a, :bbbbbb, :c ]
69
+ assert_equal [[1, 2], [6, 1]], test.distribution
70
+ end
71
+
72
+
73
+
74
+ def test_distribution_class
75
+ test = []
76
+ test << [ :a, :b, :c ]
77
+ test << [ 1, 2, 3, 4 ]
78
+ test << [ 'i', 'ii' ]
79
+ assert_equal [[Array, 3]], test.distribution(:class)
80
+
81
+ test = [ :a, :b, :c ]
82
+ assert_equal [[Symbol, 3]], test.distribution(:class)
83
+
84
+ test = []
85
+ test << [ :a, :b, :c ]
86
+ test << Set.new([ 1, 2, 3 ])
87
+ test << [ 'i', 'ii', nil ]
88
+ assert_equal [[Array, 2], [Set, 1]], test.distribution(:class)
89
+ end
90
+
91
+
92
+
93
+ def test_contentclass_mono
94
+ test = [ :a, :b, :c ]
95
+ assert_equal Symbol, test.contentclass
96
+ assert_equal Symbol, test.contentclass( :precision => 1 )
97
+ assert_equal Symbol, test.contentclass( :precision => 2 )
98
+ assert_equal Symbol, test.contentclass( :precision => :all )
99
+
100
+ test = [ 1, 2, 3, 4 ]
101
+ assert_equal Fixnum, test.contentclass
102
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
103
+ assert_equal Fixnum, test.contentclass( :precision => 2 )
104
+ assert_equal Fixnum, test.contentclass( :precision => :all )
105
+
106
+
107
+ test = [ 'i', 'ii' ]
108
+ assert_equal String, test.contentclass
109
+ assert_equal String, test.contentclass( :precision => 1 )
110
+ assert_equal String, test.contentclass( :precision => 2 )
111
+ assert_equal String, test.contentclass( :precision => :all )
112
+ end
113
+
114
+
115
+ def test_contentclass_multi
116
+ test = [ 1, 2, 3, 4.0 ]
117
+ assert_equal Numeric, test.contentclass
118
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
119
+ assert_equal Numeric, test.contentclass( :precision => 2 )
120
+ assert_equal Numeric, test.contentclass( :precision => :all )
121
+
122
+ test = [ 1, 2, 3, 4.0, 5 ]
123
+ assert_equal Fixnum, test.contentclass
124
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
125
+ assert_equal Fixnum, test.contentclass( :precision => 2 )
126
+ assert_equal Numeric, test.contentclass( :precision => :all )
127
+
128
+ test = [ nil, 1, 2, 3, 4.0, 5 ]
129
+ assert_equal Fixnum, test.contentclass
130
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
131
+ assert_equal Fixnum, test.contentclass( :precision => 2 )
132
+ assert_equal Numeric, test.contentclass( :precision => :all )
133
+
134
+ test = [ 1, 2, 3, 4.0, 5, nil ]
135
+ assert_equal Fixnum, test.contentclass
136
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
137
+ assert_equal Fixnum, test.contentclass( :precision => 2 )
138
+ assert_equal Numeric, test.contentclass( :precision => :all )
139
+
140
+ test = [ nil, 1, 2, 3, 4.0, 5 ]
141
+ assert_equal Fixnum, test.contentclass
142
+ assert_equal NilClass, test.contentclass( :precision => 1, :ignore_nil => false )
143
+ assert_equal Object, test.contentclass( :precision => 2, :ignore_nil => false )
144
+ assert_equal Object, test.contentclass( :precision => :all, :ignore_nil => false )
145
+
146
+
147
+ test = [ nil ]
148
+ assert_equal nil, test.contentclass
149
+ assert_equal nil, test.contentclass( :precision => 1 )
150
+ assert_equal nil, test.contentclass( :precision => 2 )
151
+ assert_equal nil, test.contentclass( :precision => :all )
152
+
153
+ test = [ ]
154
+ assert_equal nil, test.contentclass
155
+ assert_equal nil, test.contentclass( :precision => 1 )
156
+ assert_equal nil, test.contentclass( :precision => 2 )
157
+ assert_equal nil, test.contentclass( :precision => :all )
158
+
159
+ test = [ nil ]
160
+ assert_equal NilClass, test.contentclass( :ignore_nil => false )
161
+ assert_equal NilClass, test.contentclass( :precision => 1, :ignore_nil => false )
162
+ assert_equal NilClass, test.contentclass( :precision => 2, :ignore_nil => false )
163
+ assert_equal NilClass, test.contentclass( :precision => :all, :ignore_nil => false )
164
+
165
+ end
166
+
167
+ def test_contentclass_set_and_hash
168
+ test = SortedSet.new([ 1, 2, 3, 4.0 ])
169
+ assert_equal Numeric, test.contentclass
170
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
171
+ assert_equal Numeric, test.contentclass( :precision => 2 )
172
+ assert_equal Numeric, test.contentclass( :precision => :all )
173
+
174
+ test = OrderedSet.new([ 1, 2, 3, 4.0 ])
175
+ assert_equal Numeric, test.contentclass
176
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
177
+ assert_equal Numeric, test.contentclass( :precision => 2 )
178
+ assert_equal Numeric, test.contentclass( :precision => :all )
179
+
180
+ test = Set.new([ 1, 2, 3, 4 ])
181
+ assert_equal Fixnum, test.contentclass
182
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
183
+ assert_equal Fixnum, test.contentclass( :precision => 2 )
184
+ assert_equal Fixnum, test.contentclass( :precision => :all )
185
+
186
+ test = {:b => 2, :a => 1, :c => 3}
187
+ assert_equal Fixnum, test.contentclass
188
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
189
+ assert_equal Fixnum, test.contentclass( :precision => 2 )
190
+ assert_equal Fixnum, test.contentclass( :precision => :all )
191
+
192
+ test = Dictionary[ 'a', 1, 'b', 2, 'c', 3 ]
193
+ assert_equal Fixnum, test.contentclass
194
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
195
+ assert_equal Fixnum, test.contentclass( :precision => 2 )
196
+ assert_equal Fixnum, test.contentclass( :precision => :all )
197
+
198
+ test = Dictionary[ 'a', 1, 'b', 2, 'c', 3.0 ]
199
+ assert_equal Numeric, test.contentclass
200
+ assert_equal Fixnum, test.contentclass( :precision => 1 )
201
+ assert_equal Numeric, test.contentclass( :precision => 2 )
202
+ assert_equal Numeric, test.contentclass( :precision => :all )
203
+
204
+ end
205
+
206
+
207
+
208
+
209
+ end # class
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
@@ -0,0 +1,45 @@
1
+
2
+ require 'kyanite/unit_test'
3
+ require 'kyanite/smart_load_path'; smart_load_path
4
+ require 'perception' if $0 == __FILE__
5
+
6
+ require 'kyanite/general/classutils'
7
+
8
+ class DummyClass1 # :nodoc:
9
+ end
10
+ module DummyModule # :nodoc:
11
+ class DummyClass2 # :nodoc:
12
+ end
13
+ end
14
+
15
+
16
+ class TestKyaniteClassutils < UnitTest
17
+
18
+ def test_to_class
19
+ assert_equal DummyClass1, 'DummyClass1'.to_class
20
+ assert_equal DummyClass1, 'dummy_class1'.to_class
21
+ assert_equal DummyClass1, :DummyClass1.to_class
22
+ assert_equal DummyClass1, :dummy_class1.to_class
23
+ assert_equal DummyClass1, DummyClass1.to_class
24
+ assert_equal DummyModule::DummyClass2, 'DummyModule::DummyClass2'.to_class
25
+
26
+ assert_equal nil, 'DummyClass2'.to_class
27
+ assert_equal nil, 'UserBlaBlubb'.to_class
28
+ assert_equal nil, 'user_bla_blubb'.to_class
29
+ assert_equal nil, nil.to_class
30
+ end
31
+
32
+
33
+ def test_to_classname
34
+ assert_equal 'dummy_class1', 'DummyClass1'.to_classname
35
+ assert_equal 'dummy_class2', 'DummyModule::DummyClass2'.to_classname
36
+
37
+ assert_equal 'dummy_class1', DummyClass1.to_classname
38
+ assert_equal 'dummy_class2', DummyModule::DummyClass2.to_classname
39
+
40
+ assert_equal '', nil.to_classname
41
+ end
42
+
43
+
44
+
45
+ end # class
@@ -0,0 +1,44 @@
1
+
2
+ require 'kyanite/unit_test'
3
+ require 'kyanite/smart_load_path'; smart_load_path
4
+ require 'perception' if $0 == __FILE__
5
+
6
+ require 'kyanite/general/nil'
7
+
8
+ class TestKyaniteNil < UnitTest
9
+
10
+ def test_nil_patches
11
+ assert nil.empty?
12
+
13
+ assert ! nil.include?('g')
14
+ assert ! nil.include?(nil)
15
+
16
+ assert_nil nil.to_nil
17
+ assert_equal 0, nil.size
18
+ assert_equal 0, nil.length
19
+
20
+ assert_equal nil, nil + 42
21
+ assert_equal nil, nil + '42'
22
+ assert_equal '', nil.to_s
23
+
24
+ assert_nil nil[1]
25
+ assert_nil nil[1,2]
26
+ assert_nil nil[1][2]
27
+ assert_nil nil[1][2,3][4]
28
+ assert_nil nil[nil]
29
+ assert_nil nil[nil,nil]
30
+ assert_nil nil[nil][nil]
31
+
32
+ assert_equal 42, nil[1] = 42
33
+ assert_equal 42, nil[1,2] = 42
34
+ assert_equal 42, nil[1][2] = 42
35
+ assert_equal 42, nil[1][2,3][4] = 42
36
+ assert_equal 42, nil[nil] = 42
37
+ assert_equal 42, nil[nil,nil] = 42
38
+ assert_equal 42, nil[nil][nil] = 42
39
+
40
+ end # test_nil_patches
41
+
42
+
43
+
44
+ end # class
@@ -0,0 +1,49 @@
1
+
2
+ require 'kyanite/unit_test'
3
+ require 'kyanite/smart_load_path'; smart_load_path
4
+ require 'perception' if $0 == __FILE__
5
+
6
+ require 'kyanite/general/object'
7
+
8
+
9
+ class TestKyaniteObject < UnitTest
10
+
11
+ def test_is_numeric
12
+ assert 1.2345.is_numeric? #=> 1.2345
13
+ assert 12345678987654321.is_numeric? #=> 1.23456789876543e+16
14
+ assert 0.is_numeric? #=> 0.0
15
+ assert 0.0.is_numeric? #=> 0.0
16
+ assert ".001".is_numeric? #=> 0.001
17
+ assert 123435.12345.is_numeric? #=> 123435.12345
18
+ assert ! "123435.".is_numeric?
19
+ assert "1.50130937545297e+68".is_numeric? #=> 1.50130937545297e+68
20
+ assert ! "a".is_numeric?
21
+ assert ! "a42".is_numeric?
22
+ assert ! "42a".is_numeric?
23
+ assert 123.42.is_numeric? #=> 123.42
24
+ assert "1_2_3.42".is_numeric? #=> 123.42
25
+ assert ! "_1_2_3_.42_".is_numeric?
26
+ assert ! "__1__2_3_.42__".is_numeric?
27
+ assert ! nil.is_numeric?
28
+ assert ! true.is_numeric?
29
+ assert ! false.is_numeric?
30
+ assert ! [].is_numeric?
31
+ assert ! [1].is_numeric?
32
+ assert ! [1,2].is_numeric?
33
+ assert ! Fixnum.is_numeric?
34
+ end
35
+
36
+
37
+
38
+ def test_blank
39
+ #assert_equal true, ''.blank? # ok
40
+ # assert_equal false, nil.blank?
41
+ assert_equal false, 1.blank? # ok
42
+ assert_equal false, 'a'.blank? # ok
43
+ assert_equal false, true.blank? # ok
44
+ assert_equal false, false.blank? # ok
45
+ end
46
+
47
+
48
+
49
+ end # class