func BenchmarkSummarizeIPv6(b *testing.B) { fip, lip := net.ParseIP("2001:db8::1:1"), net.ParseIP("2001:db8::1:ffff") for i := 0; i < b.N; i++ { ipaddr.Summarize(fip, lip) } }
func BenchmarkSummarizeIPv4(b *testing.B) { fip, lip := net.IPv4(172, 16, 1, 1), net.IPv4(172, 16, 255, 255) for i := 0; i < b.N; i++ { ipaddr.Summarize(fip, lip) } }
func TestSummarize(t *testing.T) { for i, tt := range summarizeTests { fip := net.ParseIP(tt.first) if fip == nil { t.Fatalf("non-IP address: %s", tt.first) } lip := net.ParseIP(tt.last) if lip == nil { t.Fatalf("non-IP address: %s", tt.last) } want := toPrefixes(tt.want) sort.Sort(byAscending(want)) out := ipaddr.Summarize(fip, lip) if !reflect.DeepEqual(out, want) { t.Errorf("#%d: got %v; want %v", i, out, want) } } ipaddr.Summarize(nil, nil) }
func ExamplePrefix_addressRangeSummarization() { ps := ipaddr.Summarize(net.ParseIP("2001:db8::1"), net.ParseIP("2001:db8::8000")) for _, p := range ps { fmt.Println(p) } // Output: // 2001:db8::1/128 // 2001:db8::2/127 // 2001:db8::4/126 // 2001:db8::8/125 // 2001:db8::10/124 // 2001:db8::20/123 // 2001:db8::40/122 // 2001:db8::80/121 // 2001:db8::100/120 // 2001:db8::200/119 // 2001:db8::400/118 // 2001:db8::800/117 // 2001:db8::1000/116 // 2001:db8::2000/115 // 2001:db8::4000/114 // 2001:db8::8000/128 }