@@ -385,6 +385,46 @@ def test_carrot
385
385
assert_equal ( "::" , @in6_addr_any . to_s )
386
386
end
387
387
388
+ def test_plus
389
+ a = IPAddr . new ( "192.168.1.10" )
390
+ assert_equal ( "192.168.1.20" , ( a + 10 ) . to_s )
391
+
392
+ a = IPAddr . new ( "0.0.0.0" )
393
+ assert_equal ( "0.0.0.10" , ( a + 10 ) . to_s )
394
+
395
+ a = IPAddr . new ( "255.255.255.255" )
396
+ assert_raise ( IPAddr ::InvalidAddressError ) { a + 10 }
397
+
398
+ a = IPAddr . new ( "3ffe:505:2::a" )
399
+ assert_equal ( "3ffe:505:2::14" , ( a + 10 ) . to_s )
400
+
401
+ a = IPAddr . new ( "::" )
402
+ assert_equal ( "::a" , ( a + 10 ) . to_s )
403
+
404
+ a = IPAddr . new ( "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" )
405
+ assert_raise ( IPAddr ::InvalidAddressError ) { a + 10 }
406
+ end
407
+
408
+ def test_minus
409
+ a = IPAddr . new ( "192.168.1.10" )
410
+ assert_equal ( "192.168.1.0" , ( a - 10 ) . to_s )
411
+
412
+ a = IPAddr . new ( "0.0.0.0" )
413
+ assert_raise ( IPAddr ::InvalidAddressError ) { a - 10 }
414
+
415
+ a = IPAddr . new ( "255.255.255.255" )
416
+ assert_equal ( "255.255.255.245" , ( a - 10 ) . to_s )
417
+
418
+ a = IPAddr . new ( "3ffe:505:2::a" )
419
+ assert_equal ( "3ffe:505:2::" , ( a - 10 ) . to_s )
420
+
421
+ a = IPAddr . new ( "::" )
422
+ assert_raise ( IPAddr ::InvalidAddressError ) { a - 10 }
423
+
424
+ a = IPAddr . new ( "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" )
425
+ assert_equal ( "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff5" , ( a - 10 ) . to_s )
426
+ end
427
+
388
428
def test_equal
389
429
assert_equal ( true , @a == IPAddr . new ( "3FFE:505:2::" ) )
390
430
assert_equal ( true , @a == IPAddr . new ( "3ffe:0505:0002::" ) )
0 commit comments