safing-portmaster/service/intel/geoip/location_test.go

42 lines
1.1 KiB
Go

package geoip
import (
"net"
"testing"
)
func TestPrimitiveNetworkProximity(t *testing.T) {
t.Parallel()
ip4_1 := net.ParseIP("1.1.1.1")
ip4_2 := net.ParseIP("1.1.1.2")
ip4_3 := net.ParseIP("255.255.255.0")
dist := PrimitiveNetworkProximity(ip4_1, ip4_2, 4)
t.Logf("primitive proximity %s <> %s: %d", ip4_1, ip4_2, dist)
if dist < 90 {
t.Fatalf("unexpected distance between ip4_1 and ip4_2: %d", dist)
}
dist = PrimitiveNetworkProximity(ip4_1, ip4_3, 4)
t.Logf("primitive proximity %s <> %s: %d", ip4_1, ip4_3, dist)
if dist > 10 {
t.Fatalf("unexpected distance between ip4_1 and ip4_3: %d", dist)
}
ip6_1 := net.ParseIP("2a02::1")
ip6_2 := net.ParseIP("2a02::2")
ip6_3 := net.ParseIP("ffff::1")
dist = PrimitiveNetworkProximity(ip6_1, ip6_2, 6)
t.Logf("primitive proximity %s <> %s: %d", ip6_1, ip6_2, dist)
if dist < 90 {
t.Fatalf("unexpected distance between ip6_1 and ip6_2: %d", dist)
}
dist = PrimitiveNetworkProximity(ip6_1, ip6_3, 6)
t.Logf("primitive proximity %s <> %s: %d", ip6_1, ip6_3, dist)
if dist > 20 {
t.Fatalf("unexpected distance between ip6_1 and ip6_3: %d", dist)
}
}