-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathcidr_test.go
More file actions
88 lines (78 loc) · 2.07 KB
/
cidr_test.go
File metadata and controls
88 lines (78 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package utils
import (
"fmt"
"sort"
"testing"
)
func TestCIDR_Next(t *testing.T) {
c := NewCIDR("2001:0:53ab:0:0:0:0:0", 120)
for i := 0; i < c.max; i++ {
println(c.Next().String())
}
}
func BenchmarkCIDR_Next100000(b *testing.B) {
for i := 0; i < b.N; i++ {
NewCIDR("2001:0:53ab:0:0:0:0:0", 120).Next()
}
}
func TestParseCIDR(t *testing.T) {
println(ParseCIDR("127.0.0.1").String())
println(ParseCIDR("::127.0.0.1").String())
println(ParseCIDR("2001:0:53ab:0:0:0:0:0/120").String())
println(ParseCIDR("2001:0:c38c:ffff:ffff:0000:0000:ffff").String())
println(ParseCIDR("2001:0:c38c:ffff:ffff::").String())
println(ParseCIDR("327.0.0.1"))
println(ParseCIDR("2001:0:c38c:ffff:ffff:ffff:ffff:ffff1"))
}
func TestCIDRs_Less(t *testing.T) {
var cs CIDRs
cs = append(cs, ParseCIDR("192.168.1.1/24"))
cs = append(cs, ParseCIDR("192.168.1.55/16"))
cs = append(cs, ParseCIDR("192.168.0.1/24"))
cs = append(cs, ParseCIDR("192.10.1.1/24"))
cs = append(cs, ParseCIDR("192.168.19.1/24"))
cs = append(cs, ParseCIDR("2001:0:53ab:0:0:0:0:0/120"))
sort.Sort(cs)
for _, c := range cs.Strings() {
println(c)
}
}
func TestCIDR_Split(t *testing.T) {
c := ParseCIDR("192.168.1.1/20")
cs, _ := c.Split(24)
fmt.Println(cs.Strings())
}
func TestCIDRs_SprayRange(t *testing.T) {
var cs CIDRs
cs = append(cs, ParseCIDR("192.168.1.1/24"))
cs = append(cs, ParseCIDR("192.168.2.55/25"))
for i := range cs.SprayRange() {
println(i.String())
}
}
func TestCIDR_Range(t *testing.T) {
c := ParseCIDR("fe80::4e1d:bc74:cbd1:bd62")
for i := range c.Range() {
println(i.String())
}
}
func TestCIDRDifference(t *testing.T) {
cidr1 := ParseCIDR("192.168.0.0/24")
cidr2 := ParseCIDR("192.168.0.0/28")
for _, c := range DifferenceCIDR(cidr1, cidr2).Coalesce() {
println(c.String())
}
}
func TestCIDRs_Coalesce(t *testing.T) {
cidrs := CIDRs{
ParseCIDR("192.168.1.1/24"),
ParseCIDR("192.168.1.1/25"),
ParseCIDR("192.168.1.1/26"),
ParseCIDR("192.168.1.1/27"),
ParseCIDR("192.168.11.1/28"),
ParseCIDR("192.168.88.1/28"),
}
for _, i := range cidrs.Coalesce() {
println(i.String())
}
}