ce7cb702218693d08ea6d83464d2457c9250027c

This commit is contained in:
ms2k 2026-11-12 20:46:28 +09:00
commit 34c5f8963c

View file

@ -0,0 +1,32 @@
package main
import "testing"
func mustRange(t *testing.T, prefix string) addressRange {
t.Helper()
result, ok := rangeFromPrefix(prefix)
if !ok {
t.Fatalf("invalid prefix %s", prefix)
}
return result
}
func TestRangeSetOperations(t *testing.T) {
left := []addressRange{mustRange(t, "10.63.81.107/24"), mustRange(t, "10.211.128.249/24")}
right := []addressRange{mustRange(t, "10.211.128.249/25"), mustRange(t, "10.104.47.60/24")}
merged := mergeRanges(left)
if len(merged) != 1 || addressCount(merged) != 512 {
t.Fatalf("unexpected merge: %#v", merged)
}
intersection := intersectRanges(left, right)
if len(intersection) != 1 || addressCount(intersection) != 128 {
t.Fatalf("unexpected intersection: %#v", intersection)
}
difference := subtractRanges(left, right)
if len(difference) != 2 || addressCount(difference) != 384 {
t.Fatalf("unexpected difference: %#v", difference)
}
}