range_extd 0.3.0 → 0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +55 -0
- data/ChangeLog +14 -1
- data/Makefile +23 -0
- data/News +4 -0
- data/README.en.rdoc +398 -11
- data/README.ja.rdoc +89 -22
- data/lib/range_extd/infinity/infinity.rb +8 -6
- data/lib/range_extd/range_extd.rb +159 -20
- data/test/test_range_extd.rb +160 -59
- metadata +13 -13
- data/range_extd.gemspec +0 -48
data/test/test_range_extd.rb
CHANGED
@@ -7,8 +7,6 @@ arlibrelpath = []
|
|
7
7
|
arlibbase = %w(range_extd range_extd/infinity) # range_extd/infinity is actually loaded from range_extd. But by writing here, the absolute path will be displayed.
|
8
8
|
|
9
9
|
arlibbase.each do |elibbase|
|
10
|
-
elibbase
|
11
|
-
|
12
10
|
arAllPaths = []
|
13
11
|
er=nil
|
14
12
|
pathnow = nil
|
@@ -52,7 +50,8 @@ end
|
|
52
50
|
#################################################
|
53
51
|
|
54
52
|
#if $0 == __FILE__
|
55
|
-
|
53
|
+
gem "minitest"
|
54
|
+
# require 'minitest/unit'
|
56
55
|
require 'minitest/autorun'
|
57
56
|
# MiniTest::Unit.autorun
|
58
57
|
|
@@ -139,10 +138,10 @@ end
|
|
139
138
|
def RaE(*rest)
|
140
139
|
RangeExtd(*rest)
|
141
140
|
end
|
142
|
-
T = true
|
143
|
-
F = false
|
144
141
|
|
145
142
|
class TestUnitFoo < MiniTest::Unit::TestCase
|
143
|
+
T = true
|
144
|
+
F = false
|
146
145
|
def setup
|
147
146
|
@ib = 1
|
148
147
|
@ie = 6
|
@@ -168,46 +167,49 @@ end
|
|
168
167
|
end # def test_object_compare
|
169
168
|
|
170
169
|
def test_overwrite_compare
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
170
|
+
assert_nil (Float::INFINITY <=> RangeExtd::Infinity::POSITIVE)
|
171
|
+
assert_nil RangeExtd::Infinity.overwrite_compare(Numeric)
|
172
|
+
assert_nil (Float::INFINITY <=> RangeExtd::Infinity::POSITIVE) # no change
|
173
|
+
assert_nil RangeExtd::Infinity.overwrite_compare(3)
|
174
|
+
assert_nil (Float::INFINITY <=> RangeExtd::Infinity::POSITIVE) # no change
|
176
175
|
assert_equal false, RangeExtd::Infinity.overwrite_compare(true) # no change
|
177
176
|
assert_equal 1, (RangeExtd::Infinity::POSITIVE <=> 's')
|
178
177
|
assert_equal(-1, ('s' <=> RangeExtd::Infinity::POSITIVE))
|
179
178
|
assert_equal(-1, (RangeExtd::Infinity::NEGATIVE <=> 's'))
|
180
179
|
assert_equal 1, ('s' <=> RangeExtd::Infinity::NEGATIVE)
|
181
|
-
|
180
|
+
assert_nil RangeExtd::Infinity.overwrite_compare('s') # no change
|
182
181
|
assert_equal 1, (RangeExtd::Infinity::POSITIVE <=> 's')
|
183
182
|
assert_equal(-1, ('s' <=> RangeExtd::Infinity::POSITIVE))
|
184
183
|
assert_equal(-1, (RangeExtd::Infinity::NEGATIVE <=> 's'))
|
185
184
|
assert_equal 1, ('s' <=> RangeExtd::Infinity::NEGATIVE)
|
186
|
-
|
187
|
-
|
188
|
-
|
185
|
+
assert_nil RangeExtd::Infinity::POSITIVE <=> [3,5]
|
186
|
+
assert_nil ([3,5] <=> RangeExtd::Infinity::POSITIVE) # no change
|
187
|
+
assert_nil (defined? [3,5].compare_before_infinity)
|
189
188
|
assert_equal false, RangeExtd::Infinity.overwrite_compare([3,5])
|
190
|
-
|
189
|
+
|
190
|
+
# This used to give false; Hash#<= used to be undefined in old-version Ruby.
|
191
|
+
# But as of Ruby-2.6, it is defined!
|
192
|
+
assert_equal Hash.method_defined?(:<=), RangeExtd::Infinity.overwrite_compare(Hash) # no change
|
193
|
+
|
191
194
|
c = CLComparable.new
|
192
195
|
assert_equal 'XXX', (c <=> 7) # Defined in this code
|
193
|
-
|
194
|
-
|
196
|
+
assert_nil (c <=> 1) # Object#<=>
|
197
|
+
assert_nil (c <=> RangeExtd::Infinity::POSITIVE)
|
195
198
|
assert_raises(ArgumentError){ (c..RangeExtd::Infinity::POSITIVE) } # => bad value for range
|
196
199
|
assert_equal true, RangeExtd::Infinity.overwrite_compare(c)
|
197
200
|
assert_equal(-1, (c <=> RangeExtd::Infinity::POSITIVE))
|
198
|
-
return
|
199
201
|
assert_equal 1, (c <=> RangeExtd::Infinity::NEGATIVE)
|
200
202
|
assert_equal 'method', (defined? c.compare_before_infinity) # Backup of the original
|
201
203
|
assert_equal 'XXX', (c.compare_before_infinity(7)) # Preserved.
|
202
204
|
assert_equal 'XXX', (c <=> 7) # Preserved.
|
203
|
-
|
204
|
-
|
205
|
+
assert_nil (c <=> 1)
|
206
|
+
assert_nil (c <=> nil)
|
205
207
|
assert_equal :<=>, (c <=> 8)
|
206
208
|
end
|
207
209
|
|
208
210
|
def test_rangeextd_new_infinity_c2
|
209
211
|
c2 = CLC2.new
|
210
|
-
|
212
|
+
assert_nil (c2 <=> 1) # Object#<=>
|
211
213
|
assert_equal(-1, (c2 <=> RangeExtd::Infinity::POSITIVE))
|
212
214
|
assert_equal 1, (c2 <=> RangeExtd::Infinity::NEGATIVE)
|
213
215
|
r=(c2..RangeExtd::Infinity::POSITIVE)
|
@@ -220,7 +222,7 @@ return
|
|
220
222
|
|
221
223
|
def test_range_c3c4
|
222
224
|
c3 = CLC3.new
|
223
|
-
|
225
|
+
assert_nil (c3 <=> 1) # Object#<=>
|
224
226
|
assert_equal 'XXX', (c3 <=> 7) # Preserved.
|
225
227
|
|
226
228
|
r8=(c3..8)
|
@@ -703,13 +705,6 @@ return
|
|
703
705
|
end # def test_each
|
704
706
|
|
705
707
|
|
706
|
-
def test_end
|
707
|
-
assert_equal(@ie, @s11.end)
|
708
|
-
assert_equal(@ie, @s12.end)
|
709
|
-
assert_equal(@ie, @s21.end)
|
710
|
-
assert_equal(@ie, @s22.end)
|
711
|
-
end
|
712
|
-
|
713
708
|
def test_last # Apparently it uses each() internally.
|
714
709
|
assert_equal(@ie, @s11.last)
|
715
710
|
assert_equal(@ie-1, @s12.last(1)[0])
|
@@ -751,16 +746,16 @@ return
|
|
751
746
|
# http://www.ruby-doc.org/core-2.1.1/Range.html#method-i-bsearch
|
752
747
|
|
753
748
|
assert_equal(3, RangeExtd(1..4).bsearch{ |i| ary[i] >= 9}) # (1..4).bsearch{|i| ary[i] >= 9} => 3
|
754
|
-
|
755
|
-
|
749
|
+
assert_nil RangeExtd(3...4).bsearch{ |i| ary[i] >= 11}
|
750
|
+
assert_nil RangeExtd(3.6...4).bsearch{|i| ary[i] >= 11}
|
756
751
|
assert_equal(4, RangeExtd(3...5).bsearch{ |i| ary[i] >= 11})
|
757
752
|
assert_equal(4.0, RangeExtd(3...5.1).bsearch{|i| ary[i] >= 11})
|
758
|
-
|
753
|
+
assert_nil RangeExtd(3.6...4).bsearch{|i| ary[i] >= 11}
|
759
754
|
|
760
755
|
assert_equal(4, RangeExtd(3...5, 1).bsearch{ |i| ary[i] >= 11})
|
761
|
-
|
756
|
+
assert_nil RangeExtd(4...5, 1).bsearch{ |i| ary[i] >= 11}
|
762
757
|
assert_equal(4.0, RangeExtd(3...5.1, 1).bsearch{|i| ary[i] >= 11})
|
763
|
-
|
758
|
+
assert_nil RangeExtd(3.6...4, 1).bsearch{|i| ary[i] >= 11}
|
764
759
|
|
765
760
|
assert_raises TypeError do
|
766
761
|
RangeExtd.new((?a..?b), :exclude_begin => true).bsearch{|i| ary[i] >= 11}
|
@@ -771,8 +766,8 @@ return
|
|
771
766
|
sp = Special.new
|
772
767
|
|
773
768
|
# Standard Range
|
774
|
-
|
775
|
-
|
769
|
+
assert_nil RangeExtd(3..4).bsearch{ |i| sp[i]}
|
770
|
+
assert_nil RangeExtd(3...4).bsearch{|i| sp[i]}
|
776
771
|
assert(1e-8 > (RangeExtd(3.0...4).bsearch{|i| sp[i]} - 3.5).abs)
|
777
772
|
assert(1e-8 > (RangeExtd(3...4.0).bsearch{|i| sp[i]} - 3.5).abs)
|
778
773
|
assert(1e-8 > (RangeExtd(3.3..4).bsearch{ |i| sp[i]} - 3.5).abs)
|
@@ -895,7 +890,7 @@ return
|
|
895
890
|
assert_equal(@ie-@ib, @s12.size)
|
896
891
|
assert_equal(@ie-@ib, @s21.size)
|
897
892
|
assert_equal(@ie-@ib-1, @s22.size)
|
898
|
-
|
893
|
+
assert_nil RangeExtd("a", "c").size
|
899
894
|
assert_equal 0, RangeExtd::NONE.size
|
900
895
|
assert_equal Float::INFINITY, RangeExtd::ALL.size
|
901
896
|
|
@@ -948,7 +943,7 @@ return
|
|
948
943
|
# String
|
949
944
|
rsi = (?a..?d)
|
950
945
|
if rsi.size.nil?
|
951
|
-
|
946
|
+
assert_nil RangeExtd(rsi, excl_ini).size # Ruby 2.1
|
952
947
|
else
|
953
948
|
assert_equal 3, RangeExtd(rsi, excl_ini).size # If the specification ever changes?
|
954
949
|
end
|
@@ -990,10 +985,10 @@ return
|
|
990
985
|
assert (RangeExtd::Infinity::NEGATIVE.negative?)
|
991
986
|
assert !(RangeExtd::Infinity::POSITIVE.negative?)
|
992
987
|
assert_equal(-1, (RangeExtd::Infinity::NEGATIVE <=> -3))
|
993
|
-
|
988
|
+
assert_nil (RangeExtd::Infinity::NEGATIVE <=> Object.new)
|
994
989
|
assert_equal 0, (RangeExtd::Infinity::NEGATIVE <=> RangeExtd::Infinity::NEGATIVE)
|
995
990
|
assert_equal 1, (RangeExtd::Infinity::POSITIVE <=> -3)
|
996
|
-
|
991
|
+
assert_nil (RangeExtd::Infinity::POSITIVE <=> Object.new)
|
997
992
|
assert_equal 0, (RangeExtd::Infinity::POSITIVE <=> RangeExtd::Infinity::POSITIVE)
|
998
993
|
assert_equal 1, (RangeExtd::Infinity::POSITIVE <=> RangeExtd::Infinity::NEGATIVE)
|
999
994
|
assert_equal(-1, (RangeExtd::Infinity::NEGATIVE <=> RangeExtd::Infinity::POSITIVE))
|
@@ -1122,6 +1117,85 @@ return
|
|
1122
1117
|
end # def test_Range_nullfunc
|
1123
1118
|
|
1124
1119
|
|
1120
|
+
def test_Range_equiv
|
1121
|
+
r1 = (2..5)
|
1122
|
+
r2 = (2...7)
|
1123
|
+
assert !r1.equiv?("Q")
|
1124
|
+
assert !r1.equiv?(2.0..3.1)
|
1125
|
+
assert r1.equiv?(2.0..5.0)
|
1126
|
+
assert (2.0..5.0).equiv?(r1)
|
1127
|
+
assert (2.0..5.0).equiv?(2.0..5.0)
|
1128
|
+
assert !r1.equiv?(RangeExtd(2..5,true))
|
1129
|
+
assert !r1.equiv?(1..5)
|
1130
|
+
assert r1.equiv?(2..5)
|
1131
|
+
assert r2.equiv?(2...7)
|
1132
|
+
assert r1.equiv?(RangeExtd(1..5,true))
|
1133
|
+
assert !r1.equiv?(2...5)
|
1134
|
+
assert !r2.equiv?(2..7)
|
1135
|
+
assert !r1.equiv?(2..6)
|
1136
|
+
assert !r2.equiv?(2...8)
|
1137
|
+
assert r1.equiv?(2...6)
|
1138
|
+
assert r1.equiv?(RangeExtd(1...6,true))
|
1139
|
+
assert r2.equiv?(2..6)
|
1140
|
+
assert r2.equiv?(RangeExtd(1..6,true))
|
1141
|
+
assert !r1.equiv?(2...9)
|
1142
|
+
assert !r2.equiv?(2..9)
|
1143
|
+
assert !r1.equiv?(RangeExtd(1...9,true))
|
1144
|
+
assert !r2.equiv?(RangeExtd(1..9,true))
|
1145
|
+
assert (3...7.0).equiv?(3..6) # Because begin.succ is defined.
|
1146
|
+
assert !(3...7.0).equiv?(3.0..6) # Because begin.succ is not defined.
|
1147
|
+
end # def test_Range_equiv
|
1148
|
+
|
1149
|
+
|
1150
|
+
def test_RangeExtd_equiv
|
1151
|
+
r1 = RangeExtd(2..5)
|
1152
|
+
r2 = RangeExtd(2...7)
|
1153
|
+
r3 = RangeExtd(2..5,true)
|
1154
|
+
r4 = RangeExtd(2...7,true)
|
1155
|
+
assert !r1.equiv?("Q")
|
1156
|
+
assert !r1.equiv?(2.0..3.1)
|
1157
|
+
assert r1.equiv?(2.0..5.0)
|
1158
|
+
assert (2.0..5.0).equiv?(r1)
|
1159
|
+
assert (2.0..5.0).equiv?(2.0..5.0)
|
1160
|
+
assert r2.equiv?(2.0...7.0)
|
1161
|
+
assert r4.equiv?(RangeExtd(2.0...7.0,true))
|
1162
|
+
assert !r1.equiv?(RangeExtd(2..5,true))
|
1163
|
+
assert !r2.equiv?(r4)
|
1164
|
+
assert !r3.equiv?(2..5)
|
1165
|
+
assert !r4.equiv?(2...7)
|
1166
|
+
assert !r1.equiv?(1..5)
|
1167
|
+
assert !r3.equiv?(RangeExtd(1..5,true))
|
1168
|
+
assert !r1.equiv?(RangeExtd(4..5,true))
|
1169
|
+
assert !r3.equiv?(4..5)
|
1170
|
+
assert r1.equiv?(2..5)
|
1171
|
+
assert r2.equiv?(2...7)
|
1172
|
+
assert r1.equiv?(RangeExtd(1..5,true))
|
1173
|
+
assert r2.equiv?(RangeExtd(1...7,true))
|
1174
|
+
assert r3.equiv?(3..5)
|
1175
|
+
assert r4.equiv?(3...7)
|
1176
|
+
assert !r1.equiv?(RangeExtd(1...5,true))
|
1177
|
+
assert !r2.equiv?(RangeExtd(1..7,true))
|
1178
|
+
assert !r3.equiv?(3...5)
|
1179
|
+
assert !r4.equiv?(3..7)
|
1180
|
+
assert !r1.equiv?(2..9)
|
1181
|
+
assert !r1.equiv?(RangeExtd(1..9,true))
|
1182
|
+
assert !r2.equiv?(RangeExtd(1...9,true))
|
1183
|
+
assert !r3.equiv?(3..9)
|
1184
|
+
assert !r4.equiv?(3...9)
|
1185
|
+
assert r1.equiv?(2...6)
|
1186
|
+
assert r1.equiv?(RangeExtd(1...6,true))
|
1187
|
+
assert r2.equiv?(RangeExtd(1..6,true))
|
1188
|
+
assert r3.equiv?(3...6)
|
1189
|
+
assert r4.equiv?(3..6)
|
1190
|
+
assert !r4.equiv?(3.0..6.0)
|
1191
|
+
assert !r1.equiv?(2...9)
|
1192
|
+
assert !r1.equiv?(RangeExtd(1...9,true))
|
1193
|
+
assert !r2.equiv?(RangeExtd(1..9,true))
|
1194
|
+
assert !r3.equiv?(3...9)
|
1195
|
+
assert !r4.equiv?(3..9)
|
1196
|
+
end # def test_RangeExtd_equiv
|
1197
|
+
|
1198
|
+
|
1125
1199
|
def test_RangeExtd_none
|
1126
1200
|
assert RangeExtd::NONE.is_none?
|
1127
1201
|
assert RangeExtd::NONE.valid?
|
@@ -1137,8 +1211,8 @@ return
|
|
1137
1211
|
assert !RaE(?a, ?b, true, true).is_none?
|
1138
1212
|
assert RaE(?a, ?b, true, true).empty?
|
1139
1213
|
assert RaE(?a, ?b, true, true).null?
|
1140
|
-
|
1141
|
-
|
1214
|
+
assert_nil RangeExtd::NONE.begin
|
1215
|
+
assert_nil RangeExtd::NONE.end
|
1142
1216
|
end
|
1143
1217
|
|
1144
1218
|
|
@@ -1180,7 +1254,11 @@ return
|
|
1180
1254
|
assert !r.cover?(5)
|
1181
1255
|
assert !(r === 5)
|
1182
1256
|
assert_equal Float::INFINITY, r.end # It is exactly Float.
|
1183
|
-
|
1257
|
+
|
1258
|
+
# It seems in the old versions of Ruby, Float::INFINITY.positive? was not defined,
|
1259
|
+
# as this used to give false. As of Ruby 2.6, it is true (and it should be).
|
1260
|
+
assert (defined? Float::INFINITY.positive?), (defined? r.end.positive?)
|
1261
|
+
|
1184
1262
|
n = 0
|
1185
1263
|
r.each{|ei| n+=ei;break if n > 20} # [6, 7, 8, ...]
|
1186
1264
|
assert_equal 21, n
|
@@ -1189,10 +1267,10 @@ return
|
|
1189
1267
|
assert_equal 24, n
|
1190
1268
|
|
1191
1269
|
assert_raises TypeError do
|
1192
|
-
|
1270
|
+
r.first(?a)
|
1193
1271
|
end
|
1194
1272
|
assert_raises TypeError do
|
1195
|
-
|
1273
|
+
r.last(3)
|
1196
1274
|
end
|
1197
1275
|
end
|
1198
1276
|
|
@@ -1231,13 +1309,13 @@ return
|
|
1231
1309
|
assert_equal 'z', rs.last
|
1232
1310
|
assert !rs.cover?(?z)
|
1233
1311
|
assert rs.cover?(?x)
|
1234
|
-
|
1312
|
+
assert_nil (rs === ?x)
|
1235
1313
|
assert_equal RangeExtd::Infinity::NEGATIVE, rs.begin # It is Infinity,
|
1236
1314
|
assert_equal(-Float::INFINITY, rs.begin) # but still equal to Float.
|
1237
1315
|
assert ! rs.begin.positive?
|
1238
1316
|
assert_equal Float::INFINITY, rs.size
|
1239
1317
|
assert_raises TypeError do
|
1240
|
-
|
1318
|
+
rs.last(3)
|
1241
1319
|
end
|
1242
1320
|
end
|
1243
1321
|
|
@@ -1270,18 +1348,26 @@ return
|
|
1270
1348
|
assert !((?a..?z) === "cc")
|
1271
1349
|
assert !((?B..?z) === 'dd')
|
1272
1350
|
|
1351
|
+
# RangeExtd#equiv?
|
1352
|
+
assert RangeExtd(2...7,true).equiv?(3..6) # => true
|
1353
|
+
assert !RangeExtd(2...7,true).equiv?(3..6.0) # => false
|
1354
|
+
assert !RangeExtd(2...7,true).equiv?(3.0..6.0) # => false
|
1355
|
+
assert !RangeExtd(2...7,true).equiv?(3..6.5) # => false
|
1356
|
+
assert RangeExtd(2...7,true).equiv?(RangeExtd(2.0...7.0,true)) # => true
|
1357
|
+
assert RangeExtd(2...7,true).equiv?(3...7.0) # => true
|
1358
|
+
|
1273
1359
|
# RangeExtd#eql?bsearch
|
1274
1360
|
ary = [0, 4, 7, 10, 12]
|
1275
|
-
|
1361
|
+
assert_nil (3...4).bsearch{ |i| ary[i] >= 11}
|
1276
1362
|
assert_equal 4, (3...5).bsearch{ |i| ary[i] >= 11}
|
1277
1363
|
assert_equal 4.0, (3..5.1).bsearch{ |i| ary[i] >= 11}
|
1278
1364
|
assert_equal 4.0, (3.6..4).bsearch{ |i| ary[i] >= 11}
|
1279
|
-
|
1365
|
+
assert_nil (3.6...4).bsearch{ |i| ary[i] >= 11}
|
1280
1366
|
assert_equal 4.0, (3.6...4.1).bsearch{|i| ary[i] >= 11}
|
1281
1367
|
|
1282
1368
|
sp = Special.new
|
1283
|
-
|
1284
|
-
|
1369
|
+
assert_nil (3..4).bsearch{ |i| sp[i]}
|
1370
|
+
assert_nil (3...4).bsearch{ |i| sp[i]}
|
1285
1371
|
assert_equal 0,(((3.0...4).bsearch{|i| sp[i]}-3.5)*1e10.abs).to_i # => 3.5000000000000004
|
1286
1372
|
assert_equal 0,(((3...4.0).bsearch{|i| sp[i]}-3.5)*1e10.abs).to_i # => 3.5000000000000004
|
1287
1373
|
assert_equal 0,(((3.3..4).bsearch{ |i| sp[i]}-3.5)*1e10.abs).to_i # => 3.5000000000000004
|
@@ -1319,6 +1405,7 @@ return
|
|
1319
1405
|
# 4.4 - 2.4 # => 2.0000000000000004
|
1320
1406
|
# 4.8 - 2.8 # => 2.0
|
1321
1407
|
assert(! RangeExtd(1..5, true, true).eql?(RangeExtd(Rational(1,1), 5, true, true))) # => false
|
1408
|
+
|
1322
1409
|
assert_equal [2, 3, 4], RangeExtd(1..5, true, true).to_a # => [2, 3, 4]
|
1323
1410
|
assert_equal 3, RangeExtd(1..5, true, true).to_a.size # => 3
|
1324
1411
|
assert_raises(TypeError){ RangeExtd(Rational(1,1)..5).to_a } # => TypeError
|
@@ -1335,7 +1422,12 @@ return
|
|
1335
1422
|
assert_equal 4, (1.5...4.9).size # => 4 # Why not 3??
|
1336
1423
|
assert_equal 3, (1.5...4.5).size # => 3
|
1337
1424
|
assert_equal Float::INFINITY, (0...Float::INFINITY).size # => Infinity
|
1338
|
-
|
1425
|
+
begin
|
1426
|
+
i = (Float::INFINITY..Float::INFINITY).size
|
1427
|
+
assert_equal 0, i # In the older versions of Ruby
|
1428
|
+
rescue # FloatDomainError: NaN (though it was not defined in old-version Ruby!)
|
1429
|
+
assert_raises(FloatDomainError){ RangeExtd(Float::INFINITY..Float::INFINITY).size }
|
1430
|
+
end
|
1339
1431
|
|
1340
1432
|
# RangeExtd#step # => the same as each
|
1341
1433
|
|
@@ -1384,12 +1476,12 @@ return
|
|
1384
1476
|
assert_equal "2...6", RangeExtd(2...6).to_s
|
1385
1477
|
assert_equal "2<..6", RangeExtd(2,6,1).to_s
|
1386
1478
|
|
1387
|
-
# Range
|
1479
|
+
# Range#==
|
1388
1480
|
assert !(1...1).valid?
|
1389
1481
|
assert !(nil...nil).valid?
|
1390
1482
|
assert !((1...1) == RangeExtd(1, 1, true, true)) # => false.
|
1391
1483
|
|
1392
|
-
# Range
|
1484
|
+
# Range#valid?
|
1393
1485
|
assert !(nil..nil).valid? # => false
|
1394
1486
|
assert (0..0).valid? # => true
|
1395
1487
|
assert !(0...0).valid? # => false
|
@@ -1399,9 +1491,9 @@ return
|
|
1399
1491
|
assert RangeExtd::NONE.valid? # => true
|
1400
1492
|
assert RangeExtd::ALL.valid? # => true
|
1401
1493
|
|
1402
|
-
# Range
|
1403
|
-
|
1404
|
-
|
1494
|
+
# Range#empty?
|
1495
|
+
assert_nil (nil..nil).empty? # => nil
|
1496
|
+
assert_nil (1...1).empty? # => nil
|
1405
1497
|
assert !(1..1).empty? # => false
|
1406
1498
|
assert RangeExtd(1...1, true).empty? # => true
|
1407
1499
|
assert RangeExtd(1...2, true).empty? # => true
|
@@ -1409,10 +1501,19 @@ return
|
|
1409
1501
|
assert RangeExtd(?a...?b, true).empty? # => true
|
1410
1502
|
assert RangeExtd::NONE.empty? # => true
|
1411
1503
|
|
1504
|
+
# Range#equiv?
|
1505
|
+
assert (3...7).equiv?(3..6) # => true
|
1506
|
+
assert !(3...7).equiv?(3..6.0) # => false
|
1507
|
+
assert !(3...7).equiv?(3.0..6.0) # => false
|
1508
|
+
assert !(3...7).equiv?(3.0..6.5) # => false
|
1509
|
+
assert (3...7).equiv?(3.0...7.0) # => false
|
1510
|
+
assert (3...7.0).equiv?(3..6) # => true
|
1511
|
+
assert !(3...7.0).equiv?(3.0..6) # => false
|
1512
|
+
|
1412
1513
|
# class Infinity
|
1413
|
-
assert_equal
|
1514
|
+
assert_equal( -1, (?z <=> RangeExtd::Infinity::POSITIVE))
|
1414
1515
|
assert_equal 1, (RangeExtd::Infinity::POSITIVE <=> ?z)
|
1415
|
-
|
1516
|
+
assert_nil (50 <=> RangeExtd::Infinity::POSITIVE)
|
1416
1517
|
assert_equal 1, (RangeExtd::Infinity::POSITIVE <=> 50)
|
1417
1518
|
end # def test_in_document
|
1418
1519
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: range_extd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masa Sakano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Package for a subclass of Range, RangeExtd and RangeExtd::Infinity. The
|
14
14
|
former defines a range that enables an exclusion of the begin boundary, in addition
|
@@ -23,40 +23,40 @@ extra_rdoc_files:
|
|
23
23
|
- README.en.rdoc
|
24
24
|
- README.ja.rdoc
|
25
25
|
files:
|
26
|
-
-
|
26
|
+
- ".gitignore"
|
27
27
|
- ChangeLog
|
28
|
+
- Makefile
|
29
|
+
- News
|
28
30
|
- README.en.rdoc
|
29
31
|
- README.ja.rdoc
|
30
32
|
- Rakefile
|
31
|
-
- range_extd.gemspec
|
32
|
-
- lib/range_extd/range_extd.rb
|
33
33
|
- lib/range_extd/infinity/infinity.rb
|
34
|
+
- lib/range_extd/range_extd.rb
|
34
35
|
- test/test_range_extd.rb
|
35
|
-
homepage:
|
36
|
+
homepage: https://www.wisebabel.com
|
36
37
|
licenses:
|
37
38
|
- MIT
|
38
|
-
metadata:
|
39
|
+
metadata:
|
40
|
+
yard.run: yri
|
39
41
|
post_install_message:
|
40
42
|
rdoc_options:
|
41
|
-
- --charset=UTF-8
|
43
|
+
- "--charset=UTF-8"
|
42
44
|
require_paths:
|
43
45
|
- lib
|
44
46
|
required_ruby_version: !ruby/object:Gem::Requirement
|
45
47
|
requirements:
|
46
|
-
- -
|
48
|
+
- - ">="
|
47
49
|
- !ruby/object:Gem::Version
|
48
50
|
version: '2.0'
|
49
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
52
|
requirements:
|
51
|
-
- -
|
53
|
+
- - ">="
|
52
54
|
- !ruby/object:Gem::Version
|
53
55
|
version: '0'
|
54
56
|
requirements: []
|
55
|
-
|
56
|
-
rubygems_version: 2.0.3
|
57
|
+
rubygems_version: 3.0.3
|
57
58
|
signing_key:
|
58
59
|
specification_version: 4
|
59
60
|
summary: RangeExtd - Extended Range class with exclude_begin and open-ends
|
60
61
|
test_files:
|
61
62
|
- test/test_range_extd.rb
|
62
|
-
has_rdoc:
|