friendly_extensions 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,213 @@
1
+ require "test/unit"
2
+ require "array"
3
+ require "dummy_class"
4
+
5
+ class ArrayTest < Test::Unit::TestCase
6
+
7
+ #== Tests for .sum
8
+ def test_array_should_sum
9
+ assert_equal [1,2].sum, 3
10
+ end
11
+
12
+ #== Tests for .avg
13
+ def test_array_avg_with_numbers
14
+ test_array = [4,5]
15
+
16
+ assert_equal test_array.avg, 4.5
17
+ end
18
+
19
+ def test_array_avg_with_attributes
20
+ test_array = []
21
+ test_array << DummyClass.new(:number => 4)
22
+ test_array << DummyClass.new(:number => 5)
23
+
24
+ assert_equal test_array.avg(:number), 4.5
25
+ end
26
+
27
+ def test_array_avg_should_not_break_with_nil_and_emtpy
28
+ assert_equal [3,nil].avg, 3
29
+ assert_equal [].avg, 0
30
+ end
31
+
32
+
33
+ #== Tests for .array_to_hash
34
+ def test_array_should_make_to_hash
35
+ assert_equal [1,2].array_to_hash(""), {1 => "", 2 => ""}
36
+ assert_equal ["A","B"].array_to_hash(1), {"A" => 1, "B" => 1}
37
+ assert_equal ["A",nil].array_to_hash(1), {"A" => 1}
38
+ end
39
+
40
+ #== Tests for .to_structured_hash
41
+ def test_array_should_get_structured_with_symbol_and_nested_string
42
+
43
+ # Create Test Datas
44
+ test_data_row = []
45
+ test_data_row << DummyClass.new(:sec_id => 1, :name => "bla-1")
46
+ test_data_row << DummyClass.new(:sec_id => 1, :name => "bla-2")
47
+ test_data_row << DummyClass.new(:sec_id => 1, :name => "bla-3")
48
+
49
+ test_data_row << DummyClass.new(:sec_id => 2, :name => "blub-1")
50
+ test_data_row << DummyClass.new(:sec_id => 2, :name => "blub-2")
51
+
52
+ test_data_hash_sym = test_data_row.to_structured_hash(:sec_id)
53
+ test_data_hash_str = test_data_row.to_structured_hash("return_self.sec_id")
54
+
55
+ # Assertions
56
+ assert_equal test_data_hash_sym.keys.size, 2
57
+ assert_equal test_data_hash_sym[1].size, 3
58
+ assert_equal test_data_hash_sym[2].size, 2
59
+
60
+ assert_equal test_data_hash_sym, test_data_hash_str
61
+ end
62
+
63
+ #== Tests for .sum_with_attribute
64
+ def test_array_should_do_sum_with_attributes
65
+
66
+ test_array = []
67
+ test_array << DummyClass.new(:number => 4)
68
+ test_array << DummyClass.new(:number => 5)
69
+
70
+ # Using symbol
71
+ assert_equal test_array.sum_with_attribute(:number), 9
72
+
73
+ # Using nested string
74
+ assert_equal test_array.sum_with_attribute("return_self.number"), 9
75
+
76
+ # Using symbol with options
77
+ assert_equal test_array.sum_with_attribute(:get_number, :double => true), 18
78
+
79
+ # Using nested string with options
80
+ assert_equal test_array.sum_with_attribute("return_self.get_number", :double => true), 18
81
+ end
82
+
83
+ #== Tests for .count_for
84
+ def test_array_should_count_for_items
85
+ a1 = [1,2,3]
86
+
87
+ assert_equal a1.count_for(1), 1
88
+
89
+ a2 = %w(a a b c)
90
+ assert_equal a2.count_for("a"), 2
91
+
92
+ a3 = %w(a b c)
93
+ assert_equal a3.count_for("x"), 0
94
+
95
+ a4 = [1,:a, nil]
96
+ assert_equal a4.count_for(nil), 1
97
+ end
98
+
99
+ #== Tests for .next
100
+ def test_get_next_array_item_without_cycle
101
+ a = [1,2,3]
102
+ assert_equal a.next(2), 3
103
+ assert_equal a.next(3), 3
104
+ assert_equal a.next(4), 4
105
+
106
+
107
+ end
108
+
109
+ def test_get_next_array_item_with_cycle
110
+ a = [1,2,3]
111
+ assert_equal a.next(3, :cycle => true), 1
112
+ assert_equal a.next(1, :cycle => true), 2
113
+ end
114
+
115
+ #== Tests for .isec
116
+ def test_array_must_isec_with_array
117
+ assert_raises ArgumentError do
118
+ [1,2,3].isec(3)
119
+ end
120
+ end
121
+
122
+ def test_array_isec
123
+ a1 = %w(a b c d)
124
+ a2 = %w(c d e f)
125
+ a3 = %w(a f x y)
126
+ a4 = %w(1 2 3 4)
127
+
128
+ assert_equal a1.isec(a2), %w(c d)
129
+ assert_equal (a1+a2).isec(a3), %w(a f)
130
+ assert_equal a3.isec(a4), []
131
+ end
132
+
133
+ #== Tests for .except
134
+ def test_array_except
135
+ a = [1,2,3, "a", "b"]
136
+ assert_equal a.except(1), [2,3, "a", "b"]
137
+ assert_equal a.except(1,2), [3, "a", "b"]
138
+ assert_equal a.except(1,"a"), [2,3, "b"]
139
+ end
140
+
141
+ #== Tests for .seperate
142
+ def test_array_seperation
143
+ {4 => (1..10).to_a, 25 => (1..100).to_a}.each do |n, array|
144
+
145
+ sep_array = array.seperate(n)
146
+
147
+ assert_equal sep_array.size, n
148
+ assert_equal sep_array.flatten, array
149
+ end
150
+ end
151
+
152
+ def test_array_should_seperate__arrays_correctly
153
+ # Fix for:
154
+ # [[1, "a"], [2, "b"], [3, "c"]].seperate(2).last
155
+ # => [[2, "b"], [[3, "c"]]] - Last Array is in an other array
156
+
157
+ assert_equal [[1, "a"], [2, "b"], [3, "c"]].seperate(2).last.last, [3,"c"]
158
+ assert_equal [[1, "a"], [2, "b"], [3, "c"], [4, "d"]].seperate(2).last.last, [4,"d"]
159
+
160
+ end
161
+
162
+ #== Tests for .stack
163
+ def test_array_stack
164
+ {4 => (1..10).to_a, 25 => (1..100).to_a}.each do |n, array|
165
+
166
+ sep_array = array.stack(n)
167
+
168
+ assert_equal sep_array.first.size, n
169
+ assert_equal sep_array.flatten, array
170
+ end
171
+ end
172
+
173
+ #== Tests for .to_sql
174
+ def test_array_to_sql
175
+ # Empty array is NULL
176
+ assert_equal [].to_sql, "(NULL)"
177
+
178
+ # Numbers should be unquoted
179
+ a = [1,2,4.5]
180
+ assert_no_match Regexp.new("'"), a.to_sql
181
+ assert_equal a.to_sql, "(1,2,4.5)"
182
+
183
+ # All others should be quoted
184
+ a = ["a", :b]
185
+ assert_match Regexp.new("'"), a.to_sql
186
+ assert_equal a.to_sql, "('a','b')"
187
+ end
188
+
189
+ #== Test interpolation
190
+ def test_array_should_interpolate
191
+
192
+ # First should not fail
193
+ assert_equal [nil,1,2].interpolate(nil), [0,1,2]
194
+ # These fail:
195
+ # assert_equal [nil, nil,1,2].interpolate(nil), [-1, 0,1,2]
196
+
197
+
198
+ # Last should not fail
199
+ assert_equal [1,2,3], [1,2,nil].interpolate(nil).map {|x| x.to_i }
200
+ # These fail:
201
+ # assert_equal [1,2,3,4], [1,2,nil,nil].interpolate(nil).map {|x| x.to_i }
202
+
203
+ # In The middle
204
+ assert_equal [1,2,3,4,5], [1,2,3,nil,5].interpolate(nil).map {|x| x.to_i }
205
+ assert_equal [1,2,3,4,5], [1,2,nil,nil,5].interpolate(nil).map {|x| x.to_i }
206
+ assert_equal [5,10,15,20,25], [5,nil,15,nil,25].interpolate(nil).map {|x| x.to_i }
207
+ assert_equal [5,10,15,20,25,30], [5,nil,15,nil,nil,30].interpolate(nil).map {|x| x.to_i }
208
+ end
209
+
210
+
211
+
212
+
213
+ end
@@ -0,0 +1,221 @@
1
+ require "test/unit"
2
+ require "array"
3
+ require "dummy_class"
4
+
5
+ class ArrayTest < Test::Unit::TestCase
6
+
7
+ #== Tests for .sum
8
+ def test_array_should_sum
9
+ assert_equal [1,2].sum, 3
10
+ end
11
+
12
+ #== Tests for .avg
13
+ def test_array_avg_with_numbers
14
+ test_array = [4,5]
15
+
16
+ assert_equal test_array.avg, 4.5
17
+ end
18
+
19
+ def test_array_avg_with_attributes
20
+ test_array = []
21
+ test_array << DummyClass.new(:number => 4)
22
+ test_array << DummyClass.new(:number => 5)
23
+
24
+ assert_equal test_array.avg(:number), 4.5
25
+ end
26
+
27
+ def test_array_avg_should_no_break_with_nil_and_emtpy
28
+ assert_equal [3,nil].avg, 3
29
+ assert_equal [].avg, 0
30
+ end
31
+
32
+
33
+ #== Tests for .array_to_hash
34
+ def test_array_should_make_to_hash
35
+ assert_equal [1,2].array_to_hash(""), {1 => "", 2 => ""}
36
+ assert_equal ["A","B"].array_to_hash(1), {"A" => 1, "B" => 1}
37
+ assert_equal ["A",nil].array_to_hash(1), {"A" => 1}
38
+ end
39
+
40
+ #== Tests for .to_structured_hash
41
+ def test_array_should_get_structured_with_symbol_and_nested_string
42
+
43
+ # Create Test Datas
44
+ test_data_row = []
45
+ test_data_row << DummyClass.new(:sec_id => 1, :name => "bla-1")
46
+ test_data_row << DummyClass.new(:sec_id => 1, :name => "bla-2")
47
+ test_data_row << DummyClass.new(:sec_id => 1, :name => "bla-3")
48
+
49
+ test_data_row << DummyClass.new(:sec_id => 2, :name => "blub-1")
50
+ test_data_row << DummyClass.new(:sec_id => 2, :name => "blub-2")
51
+
52
+ test_data_hash_sym = test_data_row.to_structured_hash(:sec_id)
53
+ test_data_hash_str = test_data_row.to_structured_hash("return_self.sec_id")
54
+
55
+ # Assertions
56
+ assert_equal test_data_hash_sym.keys.size, 2
57
+ assert_equal test_data_hash_sym[1].size, 3
58
+ assert_equal test_data_hash_sym[2].size, 2
59
+
60
+ assert_equal test_data_hash_sym, test_data_hash_str
61
+ end
62
+
63
+ #== Tests for .sum_with_attribute
64
+ def test_array_should_do_sum_with_attributes
65
+
66
+ test_array = []
67
+ test_array << DummyClass.new(:number => 4)
68
+ test_array << DummyClass.new(:number => 5)
69
+
70
+ # Using symbol
71
+ assert_equal test_array.sum_with_attribute(:number), 9
72
+
73
+ # Using nested string
74
+ assert_equal test_array.sum_with_attribute("return_self.number"), 9
75
+
76
+ # Using symbol with options
77
+ assert_equal test_array.sum_with_attribute(:get_number, :double => true), 18
78
+
79
+ # Using nested string with options
80
+ assert_equal test_array.sum_with_attribute("return_self.get_number", :double => true), 18
81
+ end
82
+
83
+ #== Tests for .count_for
84
+ def test_array_should_count_for_items
85
+ a1 = [1,2,3]
86
+
87
+ assert_equal a1.count_for(1), 1
88
+
89
+ a2 = %w(a a b c)
90
+ assert_equal a2.count_for("a"), 2
91
+
92
+ a3 = %w(a b c)
93
+ assert_equal a3.count_for("x"), 0
94
+
95
+ a4 = [1,:a, nil]
96
+ assert_equal a4.count_for(nil), 1
97
+ end
98
+
99
+ #== Tests for .next
100
+ def test_get_next_array_item_without_cycle
101
+ a = [1,2,3]
102
+ assert_equal a.next(2), 3
103
+ assert_equal a.next(3), 3
104
+ assert_equal a.next(4), 4
105
+
106
+
107
+ end
108
+
109
+ def test_get_next_array_item_with_cycle
110
+ a = [1,2,3]
111
+ assert_equal a.next(3, :cycle => true), 1
112
+ assert_equal a.next(1, :cycle => true), 2
113
+ end
114
+
115
+ #== Tests for .isec
116
+ def test_array_must_isec_with_array
117
+ assert_raises ArgumentError do
118
+ [1,2,3].isec(3)
119
+ end
120
+ end
121
+
122
+ def test_array_isec
123
+ a1 = %w(a b c d)
124
+ a2 = %w(c d e f)
125
+ a3 = %w(a f x y)
126
+ a4 = %w(1 2 3 4)
127
+
128
+ assert_equal a1.isec(a2), %w(c d)
129
+ assert_equal (a1+a2).isec(a3), %w(a f)
130
+ assert_equal a3.isec(a4), []
131
+ end
132
+
133
+ #== Tests for .except
134
+ def test_array_except
135
+ a = [1,2,3, "a", "b"]
136
+ assert_equal a.except(1), [2,3, "a", "b"]
137
+ assert_equal a.except(1,2), [3, "a", "b"]
138
+ assert_equal a.except(1,"a"), [2,3, "b"]
139
+ end
140
+
141
+ #== Tests for .seperate
142
+ def test_array_seperation
143
+ {4 => (1..10).to_a, 25 => (1..100).to_a}.each do |n, array|
144
+
145
+ sep_array = array.seperate(n)
146
+
147
+ assert_equal sep_array.size, n
148
+ assert_equal sep_array.flatten, array
149
+ end
150
+ end
151
+
152
+ def test_array_should_seperate__arrays_correctly
153
+ # Fix for:
154
+ # [[1, "a"], [2, "b"], [3, "c"]].seperate(2).last
155
+ # => [[2, "b"], [[3, "c"]]] - Last Array is in an other array
156
+
157
+ assert_equal [[1, "a"], [2, "b"], [3, "c"]].seperate(2).last.last, [3,"c"]
158
+ assert_equal [[1, "a"], [2, "b"], [3, "c"], [4, "d"]].seperate(2).last.last, [4,"d"]
159
+
160
+ end
161
+
162
+ #== Tests for .stack
163
+ def test_array_stack
164
+ {4 => (1..10).to_a, 25 => (1..100).to_a}.each do |n, array|
165
+
166
+ sep_array = array.stack(n)
167
+
168
+ assert_equal sep_array.first.size, n
169
+ assert_equal sep_array.flatten, array
170
+ end
171
+ end
172
+
173
+ #== Tests for .to_sql
174
+ def test_array_to_sql
175
+ # Empty array is NULL
176
+ assert_equal [].to_sql, "(NULL)"
177
+
178
+ # Numbers should be unquoted
179
+ a = [1,2,4.5]
180
+ assert_no_match Regexp.new("'"), a.to_sql
181
+ assert_equal a.to_sql, "(1,2,4.5)"
182
+
183
+ <<<<<<< HEAD
184
+ # All others should be quoted
185
+ a = ["a", :b]
186
+ assert_match Regexp.new("'"), a.to_sql
187
+ assert_equal a.to_sql, "('a','b')"
188
+ end
189
+
190
+ #== Test interpolation
191
+ def test_array_should_interpolate
192
+
193
+ # First should not fail
194
+ assert_equal [nil,1,2].interpolate(nil), [0,1,2]
195
+ # These fail:
196
+ # assert_equal [nil, nil,1,2].interpolate(nil), [-1, 0,1,2]
197
+
198
+
199
+ # Last should not fail
200
+ assert_equal [1,2,3], [1,2,nil].interpolate(nil).map {|x| x.to_i }
201
+ # These fail:
202
+ # assert_equal [1,2,3,4], [1,2,nil,nil].interpolate(nil).map {|x| x.to_i }
203
+
204
+ # In The middle
205
+ assert_equal [1,2,3,4,5], [1,2,3,nil,5].interpolate(nil).map {|x| x.to_i }
206
+ assert_equal [1,2,3,4,5], [1,2,nil,nil,5].interpolate(nil).map {|x| x.to_i }
207
+ assert_equal [5,10,15,20,25], [5,nil,15,nil,25].interpolate(nil).map {|x| x.to_i }
208
+ assert_equal [5,10,15,20,25,30], [5,nil,15,nil,nil,30].interpolate(nil).map {|x| x.to_i }
209
+ end
210
+
211
+ =======
212
+ # All others should be unquoted
213
+ a = ["a", :b]
214
+ assert_match Regexp.new("'"), a.to_sql
215
+ assert_equal a.to_sql, "('a','b')"
216
+ end
217
+ >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
218
+
219
+
220
+
221
+ end
@@ -0,0 +1,36 @@
1
+ class DummyClass
2
+
3
+ # This is a dummy Class to store some Data in.
4
+ # IN real life, this would be ActiveRecord, but because of the are no database actions
5
+ # required, we could just use this dummy
6
+
7
+ # Store some possible data types in the class we can mess around with!
8
+ attr_accessor :id, :sec_id, :name, :number, :date
9
+
10
+ def initialize(options = {})
11
+
12
+ self.id = options[:id]
13
+ self.sec_id = options[:sec_id]
14
+
15
+ self.name = options[:name]
16
+ self.number = options[:number] || 0
17
+ self.date = options[:date]
18
+
19
+ end
20
+
21
+
22
+ # Just a dummy method
23
+ def return_self
24
+ self
25
+ end
26
+
27
+ # Get number or number *2
28
+ def get_number(options = {})
29
+ if options[:double] == true
30
+ self.number * 2
31
+ else
32
+ return self.number
33
+ end
34
+ end
35
+
36
+ end
data/test/hash_test.rb ADDED
@@ -0,0 +1,46 @@
1
+ require "test/unit"
2
+ require "hash"
3
+
4
+ class HashTest < Test::Unit::TestCase
5
+
6
+ #== Test for .ordered
7
+ def test_hash_should_get_ordered
8
+
9
+ test_hash = {
10
+ 1 => "a", 2 => "b", 3 => "c"
11
+ }
12
+
13
+ # Test options with sym or integer
14
+ assert_equal test_hash.ordered(:key), test_hash.ordered(0)
15
+ assert_equal test_hash.ordered(:value), test_hash.ordered(1)
16
+ assert_equal test_hash.ordered(0), test_hash.ordered(1)
17
+
18
+ test_hash = {
19
+ 1 => "z", 2 => "y", 3 => "x"
20
+ }
21
+
22
+ assert_equal test_hash.ordered(:key).map {|r| r[0]}, [1,2,3]
23
+ assert_equal test_hash.ordered(:value).map {|r| r[0]}, [3,2,1]
24
+
25
+ end
26
+
27
+ #== Test for .extract_data
28
+ def test_hash_should_extract_data
29
+
30
+ # It should work with symbol and string as keys:
31
+ test_hash = {
32
+ "field_1" => 1, "field_2" => 0, :field_3 => 1
33
+ }
34
+
35
+ # default trigger is "1", so nothing should happen now
36
+ assert_equal test_hash.extract_data, []
37
+
38
+ # Using trigger = 1 should work
39
+ assert_equal test_hash.extract_data(nil, 1), ["field_1", "field_3"]
40
+
41
+ # Now using slice and trigger
42
+ assert_equal test_hash.extract_data("field_", 1), ["1", "3"]
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,94 @@
1
+ require "test/unit"
2
+ require "numbers"
3
+
4
+
5
+ class NumericTest < Test::Unit::TestCase
6
+
7
+
8
+ def test_number_to_euro
9
+ #assert_equal 0.29.to_euro, "0,29"
10
+ end
11
+
12
+ def test_number_should_convert_to_array
13
+ assert_equal 1.to_a, [1]
14
+ end
15
+
16
+ # Test Math Functions
17
+ def test_math_infla_defla
18
+
19
+ [2, 3.3].each do |f|
20
+ [40,250].each do |n|
21
+ i = 500
22
+ r_inf = r_def = i
23
+
24
+ n.times do |i|
25
+ r_inf = r_inf*(1+f/100.0)
26
+ r_def = r_def*(1-f/100.0)
27
+ end
28
+
29
+ assert_equal i.infla(n,f).round(5), r_inf.round(5)
30
+ assert_equal i.defla(n,f).round(5), r_def.round(5)
31
+ end
32
+ end
33
+
34
+ end
35
+
36
+ def test_number_should_get_closest
37
+ # Test for wrong limit mode:
38
+ assert_raise ArgumentError do
39
+ 1.get_closest([3,4], :zonk)
40
+ end
41
+
42
+ # Check to find closest
43
+ assert_equal 2.get_closest([0,3,4], :ceil), 3
44
+ assert_equal 2.get_closest([0,3,4], :floor), 3
45
+ assert_equal -2.88.get_closest([0,3,4], :floor), 0
46
+
47
+ # Check to find closest with :floor
48
+ assert_equal 1.get_closest([0,2], :floor), 0
49
+ assert_equal 5.5.get_closest([4.5,6.5], :floor), 4.5
50
+
51
+ # Check to find closest with :ceil
52
+ assert_equal 1.get_closest([0,2], :ceil), 2
53
+ assert_equal 5.5.get_closest([4.5,6.5], :ceil), 6.5
54
+
55
+ end
56
+
57
+
58
+ def test_numbers_min_and_max
59
+ assert_equal 1, 1.min(3)
60
+ assert_equal 3, 1.max(3)
61
+ assert_equal 2, 2.min_max(1,3)
62
+ assert_equal 1, -1.min_max(1,3)
63
+ assert_equal 3, 4.min_max(1,3)
64
+ end
65
+
66
+ def test_float_dividor
67
+ assert !1.fdiv(1).is_a?(Integer)
68
+ end
69
+
70
+ def test_to_q_faktor
71
+ assert_equal 2.to_q, 1.02
72
+ end
73
+
74
+ def test_time_should_be_calc_correct
75
+ assert_equal 23.to_time, "00:00:23"
76
+ assert_equal 64.to_time, "00:01:04"
77
+
78
+ assert_equal 17.to_time(:discard_hour => true), "00:17"
79
+ assert_equal 73.to_time(:discard_hour => true), "01:13"
80
+
81
+ assert_equal 3672.to_time, "01:01:12"
82
+ end
83
+
84
+ def test_prime_factors
85
+
86
+ [16,234,4568,34950,183649].each do |nr|
87
+ primes = nr.prime_factors
88
+ puts "#{nr} => #{primes.inspect}"
89
+ assert_equal nr, eval(primes.join("*"))
90
+ end
91
+
92
+ end
93
+
94
+ end
@@ -0,0 +1,94 @@
1
+ require "test/unit"
2
+ require "numbers"
3
+
4
+
5
+ class NumericTest < Test::Unit::TestCase
6
+
7
+
8
+ def test_number_to_euro
9
+ #assert_equal 0.29.to_euro, "0,29"
10
+ end
11
+
12
+ # Test Math Functions
13
+ def test_math_infla_defla
14
+
15
+ [2, 3.3].each do |f|
16
+ [40,250].each do |n|
17
+ i = 500
18
+ r_inf = r_def = i
19
+
20
+ n.times do |i|
21
+ r_inf = r_inf*(1+f/100.0)
22
+ r_def = r_def*(1-f/100.0)
23
+ end
24
+
25
+ assert_equal i.infla(n,f).round(5), r_inf.round(5)
26
+ assert_equal i.defla(n,f).round(5), r_def.round(5)
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ def test_number_should_get_closest
33
+ # Test for wrong limit mode:
34
+ assert_raise ArgumentError do
35
+ 1.get_closest([3,4], :zonk)
36
+ end
37
+
38
+ # Check to find closest
39
+ assert_equal 2.get_closest([0,3,4], :ceil), 3
40
+ assert_equal 2.get_closest([0,3,4], :floor), 3
41
+ assert_equal -2.88.get_closest([0,3,4], :floor), 0
42
+
43
+ # Check to find closest with :floor
44
+ assert_equal 1.get_closest([0,2], :floor), 0
45
+ assert_equal 5.5.get_closest([4.5,6.5], :floor), 4.5
46
+
47
+ # Check to find closest with :ceil
48
+ assert_equal 1.get_closest([0,2], :ceil), 2
49
+ assert_equal 5.5.get_closest([4.5,6.5], :ceil), 6.5
50
+
51
+ end
52
+
53
+
54
+ def test_numbers_min_and_max
55
+ assert_equal 1, 1.min(3)
56
+ assert_equal 3, 1.max(3)
57
+ assert_equal 2, 2.min_max(1,3)
58
+ assert_equal 1, -1.min_max(1,3)
59
+ assert_equal 3, 4.min_max(1,3)
60
+ end
61
+
62
+ def test_float_dividor
63
+ assert !1.fdiv(1).is_a?(Integer)
64
+ end
65
+
66
+ def test_to_q_faktor
67
+ assert_equal 2.to_q, 1.02
68
+ end
69
+
70
+ def test_time_should_be_calc_correct
71
+ assert_equal 23.to_time, "00:00:23"
72
+ assert_equal 64.to_time, "00:01:04"
73
+
74
+ assert_equal 17.to_time(:discard_hour => true), "00:17"
75
+ assert_equal 73.to_time(:discard_hour => true), "01:13"
76
+
77
+ assert_equal 3672.to_time, "01:01:12"
78
+ <<<<<<< HEAD
79
+ end
80
+
81
+ def test_prime_factors
82
+
83
+ [16,234,4568,34950,183649].each do |nr|
84
+ primes = nr.prime_factors
85
+ puts "#{nr} => #{primes.inspect}"
86
+ assert_equal nr, eval(primes.join("*"))
87
+ end
88
+
89
+ end
90
+ =======
91
+ end
92
+ >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
93
+
94
+ end