using System.Net; using MoShiro.Protocol; namespace MoShiro.Protocol.Tests; public sealed class PublicAddressTests { [Theory] [InlineData("8.8.8.8", true)] [InlineData("23.176.40.145", true)] [InlineData("10.1.2.3", false)] [InlineData("172.16.0.1", false)] [InlineData("172.32.0.1", true)] [InlineData("192.168.2.162", false)] [InlineData("100.64.0.1", false)] [InlineData("169.254.1.1", false)] [InlineData("127.0.0.1", false)] [InlineData("203.0.113.10", false)] [InlineData("224.0.0.1", false)] public void Ipv4_OnlyPublicAddressesCountAsReachable(string text, bool expected) => Assert.Equal(expected, PublicAddress.IsPublicIpv4(IPAddress.Parse(text))); [Theory] [InlineData("2409:8a55:6c45:62d1::69d", true)] [InlineData("2606:4700:4700::1111", true)] [InlineData("fd00::1", false)] [InlineData("fe80::1", false)] [InlineData("::1", false)] [InlineData("2001:db8::1", false)] [InlineData("2002:c000:204::1", false)] [InlineData("2001:0:4136:e378::1", false)] [InlineData("::ffff:8.8.8.8", false)] public void Ipv6_OnlyGlobalUnicastCountsAsReachable(string text, bool expected) => Assert.Equal(expected, PublicAddress.IsGlobalIpv6(IPAddress.Parse(text))); }