Extend IPv6 test case

pull/2/head
Harald Wolff 2019-10-07 09:07:15 +02:00
parent baaffcdea6
commit d572407127
1 changed files with 55 additions and 0 deletions

View File

@ -1,5 +1,7 @@
using NUnit.Framework;
using System;
using System.Linq;
using System.Collections.Generic;
namespace ln.types.test
{
@ -35,6 +37,59 @@ namespace ln.types.test
IPv6 ipv6 = IPv6.Parse("::/128") + 1;
Assert.AreEqual(ipv6, localhostv6);
}
{
Stack<IPv6> expectedNetworks = new Stack<IPv6>();
expectedNetworks.Push(IPv6.Parse("255.255.0.0/16"));
expectedNetworks.Push(IPv6.Parse("255.254.0.0/15"));
expectedNetworks.Push(IPv6.Parse("255.252.0.0/14"));
expectedNetworks.Push(IPv6.Parse("255.248.0.0/13"));
expectedNetworks.Push(IPv6.Parse("255.240.0.0/12"));
expectedNetworks.Push(IPv6.Parse("255.224.0.0/11"));
expectedNetworks.Push(IPv6.Parse("255.192.0.0/10"));
expectedNetworks.Push(IPv6.Parse("255.128.0.0/9"));
expectedNetworks.Push(IPv6.Parse("255.0.0.0/8"));
expectedNetworks.Push(IPv6.Parse("254.0.0.0/7"));
expectedNetworks.Push(IPv6.Parse("252.0.0.0/6"));
expectedNetworks.Push(IPv6.Parse("248.0.0.0/5"));
expectedNetworks.Push(IPv6.Parse("240.0.0.0/4"));
expectedNetworks.Push(IPv6.Parse("224.0.0.0/3"));
expectedNetworks.Push(IPv6.Parse("192.0.0.0/2"));
expectedNetworks.Push(IPv6.Parse("128.0.0.0/1"));
IPv6 pool = IPv6.V4Space;
for (int n = 0; n < 16; n++)
{
IPv6 expected = expectedNetworks.Pop();
Assert.IsTrue(pool.Contains(expected));
IPv6[] split = pool.Split(1).ToArray();
Assert.AreEqual(2, split.Length);
Assert.AreEqual(expected, split[1]);
pool = split[1];
}
IPv6 find = IPv6.Parse("10.117.0.0/16");
pool = IPv6.V4Space;
for (int n = 0; n < 16; n++)
{
IPv6[] split = pool.Split(1).ToArray();
Console.WriteLine("{0} => {1} / {2}", pool.ToCIDR(), split[0].ToCIDR(), split[1].ToCIDR());
if (split[0].Contains(find))
pool = split[0];
else
pool = split[1];
Console.WriteLine("using {0}", pool.ToCIDR());
}
}
}
}
}