@@ -399,6 +399,46 @@ def test_carrot
399
399
assert_equal ( "::" , @in6_addr_any . to_s )
400
400
end
401
401
402
+ def test_plus
403
+ a = IPAddr . new ( "192.168.1.10" )
404
+ assert_equal ( "192.168.1.20" , ( a + 10 ) . to_s )
405
+
406
+ a = IPAddr . new ( "0.0.0.0" )
407
+ assert_equal ( "0.0.0.10" , ( a + 10 ) . to_s )
408
+
409
+ a = IPAddr . new ( "255.255.255.255" )
410
+ assert_raise ( IPAddr ::InvalidAddressError ) { a + 10 }
411
+
412
+ a = IPAddr . new ( "3ffe:505:2::a" )
413
+ assert_equal ( "3ffe:505:2::14" , ( a + 10 ) . to_s )
414
+
415
+ a = IPAddr . new ( "::" )
416
+ assert_equal ( "::a" , ( a + 10 ) . to_s )
417
+
418
+ a = IPAddr . new ( "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" )
419
+ assert_raise ( IPAddr ::InvalidAddressError ) { a + 10 }
420
+ end
421
+
422
+ def test_minus
423
+ a = IPAddr . new ( "192.168.1.10" )
424
+ assert_equal ( "192.168.1.0" , ( a - 10 ) . to_s )
425
+
426
+ a = IPAddr . new ( "0.0.0.0" )
427
+ assert_raise ( IPAddr ::InvalidAddressError ) { a - 10 }
428
+
429
+ a = IPAddr . new ( "255.255.255.255" )
430
+ assert_equal ( "255.255.255.245" , ( a - 10 ) . to_s )
431
+
432
+ a = IPAddr . new ( "3ffe:505:2::a" )
433
+ assert_equal ( "3ffe:505:2::" , ( a - 10 ) . to_s )
434
+
435
+ a = IPAddr . new ( "::" )
436
+ assert_raise ( IPAddr ::InvalidAddressError ) { a - 10 }
437
+
438
+ a = IPAddr . new ( "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" )
439
+ assert_equal ( "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff5" , ( a - 10 ) . to_s )
440
+ end
441
+
402
442
def test_equal
403
443
assert_equal ( true , @a == IPAddr . new ( "3FFE:505:2::" ) )
404
444
assert_equal ( true , @a == IPAddr . new ( "3ffe:0505:0002::" ) )
0 commit comments