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) } }