diff --git a/src/.editorconfig b/src/.editorconfig
index 25c629fc..b861ef86 100644
--- a/src/.editorconfig
+++ b/src/.editorconfig
@@ -100,6 +100,7 @@ dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_property = false:silent
dotnet_style_qualification_for_method = false:silent
dotnet_style_qualification_for_event = false:silent
+
[*.cs]
#### Styles de nommage ####
@@ -121,31 +122,31 @@ dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.interface.required_modifiers =
+dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.types.required_modifiers =
+dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.non_field_members.required_modifiers =
+dotnet_naming_symbols.non_field_members.required_modifiers =
# Styles de nommage
dotnet_naming_style.begins_with_i.required_prefix = I
-dotnet_naming_style.begins_with_i.required_suffix =
-dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
-dotnet_naming_style.pascal_case.required_prefix =
-dotnet_naming_style.pascal_case.required_suffix =
-dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
-dotnet_naming_style.pascal_case.required_prefix =
-dotnet_naming_style.pascal_case.required_suffix =
-dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
# SA1208: System using directives should be placed before other using directives
@@ -231,29 +232,29 @@ dotnet_naming_rule.membres_autres_que_des_champs_should_be_casse_pascal.style =
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.interface.required_modifiers =
+dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.types.required_modifiers =
+dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.membres_autres_que_des_champs.applicable_kinds = property, event, method
dotnet_naming_symbols.membres_autres_que_des_champs.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.membres_autres_que_des_champs.required_modifiers =
+dotnet_naming_symbols.membres_autres_que_des_champs.required_modifiers =
# Styles de nommage
dotnet_naming_style.commence_par_i.required_prefix = I
-dotnet_naming_style.commence_par_i.required_suffix =
-dotnet_naming_style.commence_par_i.word_separator =
+dotnet_naming_style.commence_par_i.required_suffix =
+dotnet_naming_style.commence_par_i.word_separator =
dotnet_naming_style.commence_par_i.capitalization = pascal_case
-dotnet_naming_style.casse_pascal.required_prefix =
-dotnet_naming_style.casse_pascal.required_suffix =
-dotnet_naming_style.casse_pascal.word_separator =
+dotnet_naming_style.casse_pascal.required_prefix =
+dotnet_naming_style.casse_pascal.required_suffix =
+dotnet_naming_style.casse_pascal.word_separator =
dotnet_naming_style.casse_pascal.capitalization = pascal_case
-dotnet_naming_style.casse_pascal.required_prefix =
-dotnet_naming_style.casse_pascal.required_suffix =
-dotnet_naming_style.casse_pascal.word_separator =
+dotnet_naming_style.casse_pascal.required_prefix =
+dotnet_naming_style.casse_pascal.required_suffix =
+dotnet_naming_style.casse_pascal.word_separator =
dotnet_naming_style.casse_pascal.capitalization = pascal_case
diff --git a/src/System.Net.IPNetwork/IPNetworkCollection.cs b/src/System.Net.IPNetwork/IPNetworkCollection.cs
index 9fba0225..33f23d6d 100644
--- a/src/System.Net.IPNetwork/IPNetworkCollection.cs
+++ b/src/System.Net.IPNetwork/IPNetworkCollection.cs
@@ -112,13 +112,11 @@ public IPNetwork2 this[BigInteger i]
#region IEnumerable Members
- ///
IEnumerator IEnumerable.GetEnumerator()
{
return this;
}
- ///
IEnumerator IEnumerable.GetEnumerator()
{
return this;
diff --git a/src/TestProject/BigIntegerBitWiseUnitTest.cs b/src/TestProject/BigIntegerBitWiseUnitTest.cs
index 04c0e819..9d0efa90 100644
--- a/src/TestProject/BigIntegerBitWiseUnitTest.cs
+++ b/src/TestProject/BigIntegerBitWiseUnitTest.cs
@@ -2,40 +2,25 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
-{
- using System.Numerics;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
- [TestClass]
- public class BigIntegerBitWiseUnitTest
+[TestClass]
+public class BigIntegerBitWiseUnitTest
+{
+ [TestMethod]
+ [DataRow(new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 }, 4, new byte[] { 0x0 })]
+ [DataRow(new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 }, 8,
+ new byte[] { 0x0, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0 })]
+ public void Test1(byte[] bytes, int reverseLength, byte[] expected)
{
- [TestMethod]
- public void Test1()
- {
- byte[] bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
- var reverseme = new BigInteger(bytes);
- BigInteger reversed = reverseme.PositiveReverse(4);
-
- Assert.AreEqual(0, (int)reversed);
- }
-
- [TestMethod]
- public void Test2()
- {
- byte[] bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
var reverseme = new BigInteger(bytes);
- BigInteger reversed = reverseme.PositiveReverse(8);
+ BigInteger reversed = reverseme.PositiveReverse(reverseLength);
byte[] result = reversed.ToByteArray();
+ Assert.AreEqual(expected.Length, result.Length);
- Assert.AreEqual(0x0, result[0]);
- Assert.AreEqual(0x0, result[1]);
- Assert.AreEqual(0x0, result[2]);
- Assert.AreEqual(0x0, result[3]);
- Assert.AreEqual(0xFF, result[4]);
- Assert.AreEqual(0xFF, result[5]);
- Assert.AreEqual(0xFF, result[6]);
- Assert.AreEqual(0xFF, result[7]);
+ for (int i = 0; i < expected.Length; i++)
+ {
+ Assert.AreEqual(expected[i], result[i], i.ToString());
+ }
}
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/BigIntegerToUnitTest.cs b/src/TestProject/BigIntegerToUnitTest.cs
index d43545a4..43029c26 100644
--- a/src/TestProject/BigIntegerToUnitTest.cs
+++ b/src/TestProject/BigIntegerToUnitTest.cs
@@ -2,27 +2,24 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
-{
- using System.Numerics;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
- [TestClass]
- public class BigIntegerToUnitTest
+[TestClass]
+public class BigIntegerToUnitTest
+{
+ [TestMethod]
+ public void TestToOctalString1()
{
- [TestMethod]
- public void TestToOctalString1()
- {
- byte[] bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
+ byte[] bytes = { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
var convertme = new BigInteger(bytes);
string result = convertme.ToOctalString();
Assert.AreEqual("037777777777", result);
}
- [TestMethod]
- public void TestToOctalString3()
- {
+ [TestMethod]
+ public void TestToOctalString3()
+ {
var bigi = BigInteger.Parse("1048576");
bigi++;
string result = bigi.ToOctalString();
@@ -30,9 +27,9 @@ public void TestToOctalString3()
Assert.AreEqual("04000001", result);
}
- [TestMethod]
- public void TestToOctalString01()
- {
+ [TestMethod]
+ public void TestToOctalString01()
+ {
BigInteger bigi = BigInteger.Zero;
bigi++;
string result = bigi.ToOctalString();
@@ -40,9 +37,9 @@ public void TestToOctalString01()
Assert.AreEqual("01", result);
}
- [TestMethod]
- public void TestToOctalString02()
- {
+ [TestMethod]
+ public void TestToOctalString02()
+ {
BigInteger bigi = BigInteger.Zero;
bigi--;
string result = bigi.ToOctalString();
@@ -50,9 +47,9 @@ public void TestToOctalString02()
Assert.AreEqual("377", result);
}
- [TestMethod]
- public void TestToOctalString03()
- {
+ [TestMethod]
+ public void TestToOctalString03()
+ {
BigInteger bigi = BigInteger.Zero;
bigi--;
bigi--;
@@ -66,29 +63,29 @@ public void TestToOctalString03()
Assert.AreEqual("371", result);
}
- [TestMethod]
- public void TestToHexadecimalString1()
- {
- byte[] bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
+ [TestMethod]
+ public void TestToHexadecimalString1()
+ {
+ byte[] bytes = { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
var convertme = new BigInteger(bytes);
string result = convertme.ToHexadecimalString();
Assert.AreEqual("0FFFFFFFF", result);
}
- [TestMethod]
- public void TestToBinaryString1()
- {
- byte[] bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
+ [TestMethod]
+ public void TestToBinaryString1()
+ {
+ byte[] bytes = { 0xFF, 0xFF, 0xFF, 0xFF, 0x00 };
var convertme = new BigInteger(bytes);
string result = convertme.ToBinaryString();
Assert.AreEqual("011111111111111111111111111111111", result);
}
- [TestMethod]
- public void TestToBinaryString01()
- {
+ [TestMethod]
+ public void TestToBinaryString01()
+ {
BigInteger bigi = BigInteger.Zero;
bigi++;
string result = bigi.ToBinaryString();
@@ -96,23 +93,23 @@ public void TestToBinaryString01()
Assert.AreEqual("01", result);
}
- [TestMethod]
- public void TestToBinaryString2()
- {
+ [TestMethod]
+ public void TestToBinaryString2()
+ {
var convertme = new BigInteger(-1);
string result = convertme.ToBinaryString();
Assert.AreEqual("11111111", result);
}
- [TestMethod]
- public void TestToBinaryString3()
- {
- byte[] bytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
+ [TestMethod]
+ public void TestToBinaryString3()
+ {
+ byte[] bytes =
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
var convertme = new BigInteger(bytes);
string result = convertme.ToBinaryString();
Assert.AreEqual("11111111", result);
}
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/CidrClassFullIpv4UnitTest.cs b/src/TestProject/CidrClassFullIpv4UnitTest.cs
new file mode 100644
index 00000000..2ab99e2f
--- /dev/null
+++ b/src/TestProject/CidrClassFullIpv4UnitTest.cs
@@ -0,0 +1,81 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class CidrClassFullIpv4UnitTest
+{
+ [TestMethod]
+ public void TestTryGuessCidrNull()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr(null, out cidr);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(0, cidr, "cidr");
+ }
+
+ [TestMethod]
+ public void TestTryGuessCidrA()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr("10.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(8, cidr, "cidr");
+ }
+
+ [TestMethod]
+ public void TestTryGuessCidrB()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr("172.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(16, cidr, "cidr");
+ }
+
+ [TestMethod]
+ public void TestTryGuessCidrC()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr("192.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(24, cidr, "cidr");
+ }
+
+ [TestMethod]
+ public void TestTryGuessCidrD()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr("224.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(24, cidr, "cidr");
+ }
+
+ [TestMethod]
+ public void TestTryGuessCidrE()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr("240.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(24, cidr, "cidr");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/CidrClassFullIpv6UnitTest.cs b/src/TestProject/CidrClassFullIpv6UnitTest.cs
new file mode 100644
index 00000000..2ed51dd3
--- /dev/null
+++ b/src/TestProject/CidrClassFullIpv6UnitTest.cs
@@ -0,0 +1,45 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class CidrClassFullIpv6UnitTest
+{
+ [TestMethod]
+ public void TestIpV6TryGuessCidrNull()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr(null, out cidr);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(0, cidr, "cidr");
+ }
+
+ [TestMethod]
+ public void TestIpV6TryGuessCidr1()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr("::", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(64, cidr, "cidr");
+ }
+
+ [TestMethod]
+ public void TestIpV6TryGuessCidr2()
+ {
+ var cidrguess = new CidrClassFull();
+
+ byte cidr;
+ bool parsed = cidrguess.TryGuessCidr("2001:0db8::", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(64, cidr, "cidr");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/CidrClassFullUnitTest.cs b/src/TestProject/CidrClassFullUnitTest.cs
deleted file mode 100644
index 154fb8f7..00000000
--- a/src/TestProject/CidrClassFullUnitTest.cs
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) IPNetwork. All rights reserved.
-//
-
-namespace System.Net.TestProject
-{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- [TestClass]
- public class CidrClassFullUnitTest
- {
- #region IPV4
-
- [TestMethod]
- public void TestTryGuessCidrNull()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr(null, out cidr);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(0, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrA()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr("10.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(8, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrB()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr("172.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(16, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrC()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr("192.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(24, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrD()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr("224.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(24, cidr, "cidr");
- }
-
- [TestMethod]
-
- public void TestTryGuessCidrE()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr("240.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(24, cidr, "cidr");
- }
-
- #endregion
-
- #region IPV6
-
- [TestMethod]
- public void TestIpV6TryGuessCidrNull()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr(null, out cidr);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(0, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestIpV6TryGuessCidr1()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr("::", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(64, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestIpV6TryGuessCidr2()
- {
- var cidrguess = new CidrClassFull();
-
- byte cidr;
- bool parsed = cidrguess.TryGuessCidr("2001:0db8::", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(64, cidr, "cidr");
- }
-
- #endregion
- }
-}
diff --git a/src/TestProject/CidrClassLessUnitTest.cs b/src/TestProject/CidrClassLessUnitTest.cs
index df43c120..a136ae88 100644
--- a/src/TestProject/CidrClassLessUnitTest.cs
+++ b/src/TestProject/CidrClassLessUnitTest.cs
@@ -2,18 +2,16 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
+namespace TestProject;
+
+[TestClass]
+public class CidrClassLessUnitTest
{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+ #region IPV4
- [TestClass]
- public class CidrClassLessUnitTest
+ [TestMethod]
+ public void TestTryGuessCidrNull()
{
- #region IPV4
-
- [TestMethod]
- public void TestTryGuessCidrNull()
- {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -23,9 +21,9 @@ public void TestTryGuessCidrNull()
Assert.AreEqual(0, cidr, "cidr");
}
- [TestMethod]
- public void TestTryGuessCidrA()
- {
+ [TestMethod]
+ public void TestTryGuessCidrA()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -35,9 +33,9 @@ public void TestTryGuessCidrA()
Assert.AreEqual(32, cidr, "cidr");
}
- [TestMethod]
- public void TestTryGuessCidrB()
- {
+ [TestMethod]
+ public void TestTryGuessCidrB()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -47,9 +45,9 @@ public void TestTryGuessCidrB()
Assert.AreEqual(32, cidr, "cidr");
}
- [TestMethod]
- public void TestTryGuessCidrC()
- {
+ [TestMethod]
+ public void TestTryGuessCidrC()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -59,9 +57,9 @@ public void TestTryGuessCidrC()
Assert.AreEqual(32, cidr, "cidr");
}
- [TestMethod]
- public void TestTryGuessCidrD()
- {
+ [TestMethod]
+ public void TestTryGuessCidrD()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -71,10 +69,9 @@ public void TestTryGuessCidrD()
Assert.AreEqual(32, cidr, "cidr");
}
- [TestMethod]
-
- public void TestTryGuessCidrE()
- {
+ [TestMethod]
+ public void TestTryGuessCidrE()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -84,13 +81,13 @@ public void TestTryGuessCidrE()
Assert.AreEqual(32, cidr, "cidr");
}
- #endregion
+ #endregion
- #region IPV6
+ #region IPV6
- [TestMethod]
- public void TestIpV6TryGuessCidrNull()
- {
+ [TestMethod]
+ public void TestIpV6TryGuessCidrNull()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -100,9 +97,9 @@ public void TestIpV6TryGuessCidrNull()
Assert.AreEqual(0, cidr, "cidr");
}
- [TestMethod]
- public void TestIpV6TryGuessCidr1()
- {
+ [TestMethod]
+ public void TestIpV6TryGuessCidr1()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -112,9 +109,9 @@ public void TestIpV6TryGuessCidr1()
Assert.AreEqual(128, cidr, "cidr");
}
- [TestMethod]
- public void TestIpV6TryGuessCidr2()
- {
+ [TestMethod]
+ public void TestIpV6TryGuessCidr2()
+ {
var cidrguess = new CidrClassLess();
byte cidr;
@@ -124,6 +121,5 @@ public void TestIpV6TryGuessCidr2()
Assert.AreEqual(128, cidr, "cidr");
}
- #endregion
- }
-}
+ #endregion
+}
\ No newline at end of file
diff --git a/src/TestProject/ConsoleUnitTest.cs b/src/TestProject/ConsoleUnitTest.cs
index cf5fc683..44a335a6 100644
--- a/src/TestProject/ConsoleUnitTest.cs
+++ b/src/TestProject/ConsoleUnitTest.cs
@@ -2,77 +2,38 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
-{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- [TestClass]
- public class ConsoleUnitTest
- {
- [TestMethod]
- public void TestMethod1()
- {
- ConsoleApplication.Program.Main(new[] { "10.0.0.0/8" });
- }
-
- [TestMethod]
- public void TestMethod2()
- {
- ConsoleApplication.Program.Main(new[] { "-Nnmcbflu", "10.0.0.0/8" });
- }
-
- [TestMethod]
- public void TestMethod3()
- {
- ConsoleApplication.Program.Main(new[] { "-N", "-n", "-m", "-c", "-b", "-f", "-l", "-u", "10.0.0.0/8" });
- }
-
- [TestMethod]
- public void TestMethod4()
- {
- ConsoleApplication.Program.Main(new[] { "10.0.0.0" });
- }
-
- [TestMethod]
- public void TestMethod5()
- {
- ConsoleApplication.Program.Main(new[] { "-s", "16", "10.0.0.0/8" });
- }
-
- [TestMethod]
- public void TestMethod6()
- {
- ConsoleApplication.Program.Main(new[] { "-d", "24", "-x", "-S", "192.168.168.0/24", "192.168.169.1/24", "192.168.170.2/24", "192.168.171.3/24", "192.168.172.3/24", "1.1.1.1" });
- }
-
- [TestMethod]
- public void TestMethod7()
- {
- ConsoleApplication.Program.Main(new[] { "-i", "192.168.168.0/24", "192.168.169.1/24", "192.168.170.2/24", "192.168.171.3/24", "192.168.172.3/24", "1.1.1.1" });
- }
- [TestMethod]
- public void TestMethod8()
- {
- ConsoleApplication.Program.Main(new[] { "-d", "24", "-w", "192.168.168.0/24", "192.168.169.1/24", "192.168.170.2/24", "192.168.171.3/24", "192.168.172.3/24", "1.1.1.1" });
- }
+namespace TestProject;
- [TestMethod]
- public void TestMethod9()
- {
- ConsoleApplication.Program.Main(new[] { ":" });
- }
-
- [TestMethod]
- public void TestMethod10()
- {
- ConsoleApplication.Program.Main(new[] { "-C", "10.0.0.0/8", "1.1.1.1" });
- }
-
- [TestMethod]
- public void TestMethod11()
- {
- ConsoleApplication.Program.Main(new[] { "-o", "10.0.0.0/8", "1.1.1.1" });
+[TestClass]
+public class ConsoleUnitTest
+{
+ [DataTestMethod]
+ [DataRow(new[] { "10.0.0.0/8" })]
+ [DataRow(new[] { "-Nnmcbflu", "10.0.0.0/8" })]
+ [DataRow(new[] { "-N", "-n", "-m", "-c", "-b", "-f", "-l", "-u", "10.0.0.0/8" })]
+ [DataRow(new[] { "10.0.0.0" })]
+ [DataRow(new[] { "-s", "16", "10.0.0.0/8" })]
+ [DataRow(new[]
+ {
+ "-d", "24", "-x", "-S", "192.168.168.0/24", "192.168.169.1/24", "192.168.170.2/24", "192.168.171.3/24",
+ "192.168.172.3/24", "1.1.1.1"
+ })]
+ [DataRow(new[]
+ {
+ "-i", "192.168.168.0/24", "192.168.169.1/24", "192.168.170.2/24", "192.168.171.3/24", "192.168.172.3/24",
+ "1.1.1.1"
+ })]
+ [DataRow(new[]
+ {
+ "-d", "24", "-w", "192.168.168.0/24", "192.168.169.1/24", "192.168.170.2/24", "192.168.171.3/24",
+ "192.168.172.3/24", "1.1.1.1"
+ })]
+ [DataRow(new[] { ":" })]
+ [DataRow(new[] { "-C", "10.0.0.0/8", "1.1.1.1" })]
+ [DataRow(new[] { "-o", "10.0.0.0/8", "1.1.1.1" })]
+ public void TestProgramMain(string[] args)
+ {
+ Program.Main(args);
}
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/ContainsUnitTest.cs b/src/TestProject/ContainsUnitTest.cs
index ca65a5f8..6d87376d 100644
--- a/src/TestProject/ContainsUnitTest.cs
+++ b/src/TestProject/ContainsUnitTest.cs
@@ -2,92 +2,46 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
-{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
- ///
- /// ContainsUnitTest test every Contiains method.
- ///
- [TestClass]
- public class ContainsUnitTest
+///
+/// ContainsUnitTest test every Contiains method.
+///
+[TestClass]
+public class ContainsUnitTest
+{
+ [DataTestMethod]
+ [DataRow("192.168.0.1/24", "192.168.0.1/24", true)]
+ [DataRow("192.168.0.1/16", "192.168.1.1/24", true)]
+ [DataRow("192.168.0.1/16", "10.10.10.0/24", false)]
+ [DataRow("192.168.1.1/24", "192.168.0.0/16", false)]
+ public void TestContainsNetwork(string network1, string networkOrAddress, bool expected)
{
- [TestMethod]
- public void TestContains1()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.1/24");
- var ipaddress = IPAddress.Parse("192.168.0.100");
-
- bool result = ipnetwork.Contains(ipaddress);
- bool expected = true;
-
- Assert.AreEqual(expected, result, "contains");
- }
-
- [TestMethod]
- public void TestContains2()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.1/24");
- var ipaddress = IPAddress.Parse("10.10.10.10");
-
- bool result = ipnetwork.Contains(ipaddress);
- bool expected = false;
-
- Assert.AreEqual(expected, result, "contains");
- }
-
- [TestMethod]
- public void TestContains3()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.1/24");
- var ipnetwork2 = IPNetwork2.Parse("192.168.0.1/24");
+ var ipnetwork = IPNetwork2.Parse(network1);
+ var ipnetwork2 = IPNetwork2.Parse(networkOrAddress);
bool result = ipnetwork.Contains(ipnetwork2);
- bool expected = true;
Assert.AreEqual(expected, result, "contains");
}
- [TestMethod]
- public void TestContains4()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.1/16");
- var ipnetwork2 = IPNetwork2.Parse("192.168.1.1/24");
-
- bool result = ipnetwork.Contains(ipnetwork2);
- bool expected = true;
-
- Assert.AreEqual(expected, result, "contains");
- }
-
- [TestMethod]
- public void TestContains5()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.1/16");
- var ipnetwork2 = IPNetwork2.Parse("10.10.10.0/24");
-
- bool result = ipnetwork.Contains(ipnetwork2);
- bool expected = false;
-
- Assert.AreEqual(expected, result, "contains");
- }
-
- [TestMethod]
- public void TestContains6()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.1.1/24");
- var ipnetwork2 = IPNetwork2.Parse("192.168.0.0/16");
-
- bool result = ipnetwork.Contains(ipnetwork2);
- bool expected = false;
+ [DataTestMethod]
+ [DataRow("192.168.0.1/24", "192.168.0.100", true)]
+ [DataRow("192.168.0.1/24", "10.10.10.10", false)]
+ public void TestContainsAdrress(string network1, string networkOrAddress, bool expected)
+ {
+ var ipnetwork = IPNetwork2.Parse(network1);
+ bool result;
+ var ipaddress = IPAddress.Parse(networkOrAddress);
+ result = ipnetwork.Contains(ipaddress);
Assert.AreEqual(expected, result, "contains");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestContainsStatic3()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestContainsStatic3()
+ {
IPNetwork2 ipnetwork = null;
IPNetwork2 ipnetwork2 = null;
@@ -96,11 +50,11 @@ public void TestContainsStatic3()
#pragma warning restore 0618
}
- [TestMethod]
- public void TestContainsStatic4()
- {
- var ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
- var ipnetwork2 = IPNetwork2.IANA_CBLK_RESERVED1;
+ [TestMethod]
+ public void TestContainsStatic4()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
+ IPNetwork2 ipnetwork2 = IPNetwork2.IANA_CBLK_RESERVED1;
#pragma warning disable 0618
bool result = IPNetwork2.Contains(ipnetwork, ipnetwork2);
@@ -109,20 +63,20 @@ public void TestContainsStatic4()
Assert.IsTrue(result, "result");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestContains8()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestContains8()
+ {
var ipnetwork = IPNetwork2.Parse("0.0.0.0/0");
IPNetwork2 ipnetwork2 = null;
bool result = ipnetwork.Contains(ipnetwork2);
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestContainsStatic1()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestContainsStatic1()
+ {
IPNetwork2 ipnetwork = null;
IPAddress ipaddress = null;
@@ -131,10 +85,10 @@ public void TestContainsStatic1()
#pragma warning restore 0618
}
- [TestMethod]
- public void TestContainsStatic2()
- {
- var ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ [TestMethod]
+ public void TestContainsStatic2()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
var ipaddress = IPAddress.Parse("10.0.0.1");
#pragma warning disable 0618
@@ -143,27 +97,27 @@ public void TestContainsStatic2()
Assert.IsTrue(result, "result");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestContains10()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestContains10()
+ {
var ipnetwork = IPNetwork2.Parse("0.0.0.0/0");
IPAddress ipaddress = null;
bool result = ipnetwork.Contains(ipaddress);
}
- [DataTestMethod]
- [DataRow("1.1.1.0/8", "1.1.1.1", true)]
- [DataRow("1.1.1.0/8", "2.1.1.1", false)]
- [DataRow("192.168.0.1/24", "192.168.0.100", true)]
- [DataRow("192.168.0.1/24", "10.10.10.10", false)]
- [DataRow("192.168.0.1/24", "192.168.0.1", true)]
- [DataRow("192.168.0.1/16", "192.168.1.1", true)]
- [DataRow("192.168.0.1/16", "10.10.10.0", false)]
- [DataRow("192.168.1.1/24", "192.168.0.0", false)]
- public void Test_Contains2_IPAddress_Should_Match_Contains(string contains1, string contains2, bool expected)
- {
+ [DataTestMethod]
+ [DataRow("1.1.1.0/8", "1.1.1.1", true)]
+ [DataRow("1.1.1.0/8", "2.1.1.1", false)]
+ [DataRow("192.168.0.1/24", "192.168.0.100", true)]
+ [DataRow("192.168.0.1/24", "10.10.10.10", false)]
+ [DataRow("192.168.0.1/24", "192.168.0.1", true)]
+ [DataRow("192.168.0.1/16", "192.168.1.1", true)]
+ [DataRow("192.168.0.1/16", "10.10.10.0", false)]
+ [DataRow("192.168.1.1/24", "192.168.0.0", false)]
+ public void Test_Contains2_IPAddress_Should_Match_Contains(string contains1, string contains2, bool expected)
+ {
var ipnetwork = IPNetwork2.Parse(contains1);
var ipaddress = IPAddress.Parse(contains2);
@@ -172,18 +126,18 @@ public void Test_Contains2_IPAddress_Should_Match_Contains(string contains1, str
Assert.AreEqual(expected, result1, "contains1");
}
- [DataTestMethod]
- [DataRow("0.0.0.0/0", "255.255.255.255", true)]
- [DataRow("1.1.1.0/8", "1.1.1.1", true)]
- [DataRow("1.1.1.0/8", "2.1.1.1", false)]
- [DataRow("192.168.0.1/24", "192.168.0.100/32", true)]
- [DataRow("192.168.0.1/24", "10.10.10.10/32", false)]
- [DataRow("192.168.0.1/24", "192.168.0.1/24", true)]
- [DataRow("192.168.0.1/16", "192.168.1.1/24", true)]
- [DataRow("192.168.0.1/16", "10.10.10.0/24", false)]
- [DataRow("192.168.1.1/24", "192.168.0.0/16", false)]
- public void Test_Contains2_IPNetwork_Should_Match_Contains(string contains1, string contains2, bool expected)
- {
+ [DataTestMethod]
+ [DataRow("0.0.0.0/0", "255.255.255.255", true)]
+ [DataRow("1.1.1.0/8", "1.1.1.1", true)]
+ [DataRow("1.1.1.0/8", "2.1.1.1", false)]
+ [DataRow("192.168.0.1/24", "192.168.0.100/32", true)]
+ [DataRow("192.168.0.1/24", "10.10.10.10/32", false)]
+ [DataRow("192.168.0.1/24", "192.168.0.1/24", true)]
+ [DataRow("192.168.0.1/16", "192.168.1.1/24", true)]
+ [DataRow("192.168.0.1/16", "10.10.10.0/24", false)]
+ [DataRow("192.168.1.1/24", "192.168.0.0/16", false)]
+ public void Test_Contains2_IPNetwork_Should_Match_Contains(string contains1, string contains2, bool expected)
+ {
var ipnetwork = IPNetwork2.Parse(contains1);
var ipaddress = IPNetwork2.Parse(contains2);
@@ -191,5 +145,4 @@ public void Test_Contains2_IPNetwork_Should_Match_Contains(string contains1, str
Assert.AreEqual(expected, result1, "contains1");
}
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/DataContractSerializeHelper.cs b/src/TestProject/DataContractSerializeHelper.cs
index f33a916c..96ed67c2 100644
--- a/src/TestProject/DataContractSerializeHelper.cs
+++ b/src/TestProject/DataContractSerializeHelper.cs
@@ -2,17 +2,13 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestSerialization.NetFramework
-{
- using System.IO;
- using System.Runtime.Serialization;
- using System.Xml;
+namespace TestProject;
- public static class DataContractSerializeHelper
+public static class DataContractSerializeHelper
+{
+ public static string Serialize(T obj, bool formatting = true)
+ where T : new()
{
- public static string Serialize(T obj, bool formatting = true)
- where T : new()
- {
if (obj == null)
{
return string.Empty;
@@ -22,7 +18,7 @@ public static string Serialize(T obj, bool formatting = true)
var settings = new XmlWriterSettings
{
OmitXmlDeclaration = true,
- Indent = formatting,
+ Indent = formatting
};
using (var textWriter = new StringWriter())
{
@@ -36,9 +32,9 @@ public static string Serialize(T obj, bool formatting = true)
}
}
- public static T Deserialize(string xml)
- where T : new()
- {
+ public static T Deserialize(string xml)
+ where T : new()
+ {
if (string.IsNullOrWhiteSpace(xml))
{
return new T();
@@ -52,5 +48,4 @@ public static T Deserialize(string xml)
return result;
}
}
- }
}
\ No newline at end of file
diff --git a/src/TestProject/EqualsUnitTest.cs b/src/TestProject/EqualsUnitTest.cs
index 384d1483..24d740a7 100644
--- a/src/TestProject/EqualsUnitTest.cs
+++ b/src/TestProject/EqualsUnitTest.cs
@@ -2,18 +2,31 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
+namespace TestProject;
+
+[TestClass]
+public class EqualsUnitTest
{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+ #region Equals IPv6 vs IPv4
- [TestClass]
- public class EqualsUnitTest
+ [TestMethod]
+ public void TestEquals_ipv6_ipv4_0()
{
- #region Equals IPv4
+ var network1 = IPNetwork2.Parse("::/32");
+ var network2 = IPNetwork2.Parse("0.0.0.0/32");
+ bool result = network1.Equals(network2);
+ bool expected = false;
+
+ Assert.AreEqual(expected, result, "equals");
+ }
- [TestMethod]
- public void TestEquals_ipv4_1()
- {
+ #endregion
+
+ #region Equals IPv4
+
+ [TestMethod]
+ public void TestEquals_ipv4_1()
+ {
var network1 = IPNetwork2.Parse("192.168.0.1/24");
var network2 = IPNetwork2.Parse("192.168.0.1/24");
bool result = network1.Equals(network2);
@@ -22,9 +35,9 @@ public void TestEquals_ipv4_1()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv4_2()
- {
+ [TestMethod]
+ public void TestEquals_ipv4_2()
+ {
var network1 = IPNetwork2.Parse("192.168.0.1/24");
IPNetwork2 network2 = null;
bool result = network1.Equals(network2);
@@ -33,9 +46,9 @@ public void TestEquals_ipv4_2()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv4_3()
- {
+ [TestMethod]
+ public void TestEquals_ipv4_3()
+ {
var network1 = IPNetwork2.Parse("192.168.0.1/24");
object network2 = string.Empty;
bool result = network1.Equals(network2);
@@ -44,9 +57,9 @@ public void TestEquals_ipv4_3()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv4_4()
- {
+ [TestMethod]
+ public void TestEquals_ipv4_4()
+ {
var network1 = IPNetwork2.Parse("192.168.0.1/24");
var network2 = IPNetwork2.Parse("192.168.0.1/25");
bool result = network1.Equals(network2);
@@ -55,9 +68,9 @@ public void TestEquals_ipv4_4()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv4_5()
- {
+ [TestMethod]
+ public void TestEquals_ipv4_5()
+ {
var network1 = IPNetwork2.Parse("192.168.0.1/24");
var network2 = IPNetwork2.Parse("192.168.1.1/24");
bool result = network1.Equals(network2);
@@ -66,13 +79,13 @@ public void TestEquals_ipv4_5()
Assert.AreEqual(expected, result, "equals");
}
- #endregion
+ #endregion
- #region Equals IPv6
+ #region Equals IPv6
- [TestMethod]
- public void TestEquals_ipv6_1()
- {
+ [TestMethod]
+ public void TestEquals_ipv6_1()
+ {
var network1 = IPNetwork2.Parse("::1/128");
var network2 = IPNetwork2.Parse("::1/128");
bool result = network1.Equals(network2);
@@ -81,9 +94,9 @@ public void TestEquals_ipv6_1()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv6_2()
- {
+ [TestMethod]
+ public void TestEquals_ipv6_2()
+ {
var network1 = IPNetwork2.Parse("::1/128");
IPNetwork2 network2 = null;
bool result = network1.Equals(network2);
@@ -92,9 +105,9 @@ public void TestEquals_ipv6_2()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv6_3()
- {
+ [TestMethod]
+ public void TestEquals_ipv6_3()
+ {
var network1 = IPNetwork2.Parse("::1/128");
object network2 = string.Empty;
bool result = network1.Equals(network2);
@@ -103,9 +116,9 @@ public void TestEquals_ipv6_3()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv6_4()
- {
+ [TestMethod]
+ public void TestEquals_ipv6_4()
+ {
var network1 = IPNetwork2.Parse("::1/128");
var network2 = IPNetwork2.Parse("::1/127");
bool result = network1.Equals(network2);
@@ -114,9 +127,9 @@ public void TestEquals_ipv6_4()
Assert.AreEqual(expected, result, "equals");
}
- [TestMethod]
- public void TestEquals_ipv6_5()
- {
+ [TestMethod]
+ public void TestEquals_ipv6_5()
+ {
var network1 = IPNetwork2.Parse("::1/128");
var network2 = IPNetwork2.Parse("::10/128");
bool result = network1.Equals(network2);
@@ -125,21 +138,5 @@ public void TestEquals_ipv6_5()
Assert.AreEqual(expected, result, "equals");
}
- #endregion
-
- #region Equals IPv6 vs IPv4
-
- [TestMethod]
- public void TestEquals_ipv6_ipv4_0()
- {
- var network1 = IPNetwork2.Parse("::/32");
- var network2 = IPNetwork2.Parse("0.0.0.0/32");
- bool result = network1.Equals(network2);
- bool expected = false;
-
- Assert.AreEqual(expected, result, "equals");
- }
-
- #endregion
- }
-}
+ #endregion
+}
\ No newline at end of file
diff --git a/src/TestProject/GetHashCodeUnitTest.cs b/src/TestProject/GetHashCodeUnitTest.cs
index ce3c4721..69563ef1 100644
--- a/src/TestProject/GetHashCodeUnitTest.cs
+++ b/src/TestProject/GetHashCodeUnitTest.cs
@@ -2,51 +2,15 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
-{
- using System.Collections.Generic;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- [TestClass]
- public class GetHashCodeUnitTest
- {
- #region GetHashCode
-
- [TestMethod]
- public void TestGetHashCode1()
- {
- var ipnetwork1 = IPNetwork2.Parse("0.0.1.1/0");
- var ipnetwork2 = IPNetwork2.Parse("0.0.1.1/0");
- int hashCode1 = ipnetwork1.GetHashCode();
- int hashCode2 = ipnetwork2.GetHashCode();
- Assert.AreEqual(hashCode1, hashCode2, "hashcode");
- }
-
- [TestMethod]
- public void TestGetHashCode2()
- {
- var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/1");
- var ipnetwork2 = IPNetwork2.Parse("0.0.0.0/1");
- int hashCode1 = ipnetwork1.GetHashCode();
- int hashCode2 = ipnetwork2.GetHashCode();
- Assert.AreEqual(hashCode1, hashCode2, "hashcode");
- }
-
- [TestMethod]
- public void TestGetHashCode3()
- {
- var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/32");
- var ipnetwork2 = IPNetwork2.Parse("0.0.0.0/32");
- int hashCode1 = ipnetwork1.GetHashCode();
- int hashCode2 = ipnetwork2.GetHashCode();
- Assert.AreEqual(hashCode1, hashCode2, "hashcode");
- }
- #endregion
+namespace TestProject;
- [TestMethod]
- public void TestGetHashCode_SameNetwork_DifferentIpAddress1()
- {
+[TestClass]
+public class GetHashCodeUnitTest
+{
+ [TestMethod]
+ public void TestGetHashCode_SameNetwork_DifferentIpAddress1()
+ {
var ipnetwork1 = IPNetwork2.Parse("0.0.1.1/0");
var ipnetwork2 = IPNetwork2.Parse("1.1.1.1/0");
int hashCode1 = ipnetwork1.GetHashCode();
@@ -54,9 +18,9 @@ public void TestGetHashCode_SameNetwork_DifferentIpAddress1()
Assert.AreEqual(hashCode1, hashCode2, "hashcode");
}
- [TestMethod]
- public void TestGetHashCode_SameNetwork_DifferentIpAddress2()
- {
+ [TestMethod]
+ public void TestGetHashCode_SameNetwork_DifferentIpAddress2()
+ {
var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/1");
var ipnetwork2 = IPNetwork2.Parse("1.0.0.0/1");
int hashCode1 = ipnetwork1.GetHashCode();
@@ -64,9 +28,9 @@ public void TestGetHashCode_SameNetwork_DifferentIpAddress2()
Assert.AreEqual(hashCode1, hashCode2, "hashcode");
}
- [TestMethod]
- public void TestGetHashCode_Refactor__to_not_reference_mutable_fields()
- {
+ [TestMethod]
+ public void TestGetHashCode_Refactor__to_not_reference_mutable_fields()
+ {
var ipnetwork = IPNetwork2.Parse("1.0.0.0/1");
int hashCode1 = ipnetwork.GetHashCode();
ipnetwork.Value = "255.255.255.255/32";
@@ -75,9 +39,9 @@ public void TestGetHashCode_Refactor__to_not_reference_mutable_fields()
Assert.AreEqual(hashCode1, hashCode2, "hashcode");
}
- [TestMethod]
- public void TestGetHashCode_Dictionary_failed()
- {
+ [TestMethod]
+ public void TestGetHashCode_Dictionary_failed()
+ {
var ipnetwork = IPNetwork2.Parse("1.0.0.0/1");
var ipnetwork2 = IPNetwork2.Parse("1.0.0.0/1");
var dic = new Dictionary();
@@ -100,11 +64,11 @@ public void TestGetHashCode_Dictionary_failed()
Assert.AreEqual(false, contains6, "contains6");
}
- #region Equals IPv6 vs IPv4
+ #region Equals IPv6 vs IPv4
- [TestMethod]
- public void TestGetHashCode_ipv6_ipv4_0()
- {
+ [TestMethod]
+ public void TestGetHashCode_ipv6_ipv4_0()
+ {
var network1 = IPNetwork2.Parse("::/32");
var network2 = IPNetwork2.Parse("0.0.0.0/32");
@@ -114,6 +78,39 @@ public void TestGetHashCode_ipv6_ipv4_0()
Assert.AreNotEqual(hashCode1, hashCode2, "hashcode");
}
- #endregion
- }
-}
+ #endregion
+
+ #region GetHashCode
+
+ [TestMethod]
+ public void TestGetHashCode1()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("0.0.1.1/0");
+ var ipnetwork2 = IPNetwork2.Parse("0.0.1.1/0");
+ int hashCode1 = ipnetwork1.GetHashCode();
+ int hashCode2 = ipnetwork2.GetHashCode();
+ Assert.AreEqual(hashCode1, hashCode2, "hashcode");
+ }
+
+ [TestMethod]
+ public void TestGetHashCode2()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/1");
+ var ipnetwork2 = IPNetwork2.Parse("0.0.0.0/1");
+ int hashCode1 = ipnetwork1.GetHashCode();
+ int hashCode2 = ipnetwork2.GetHashCode();
+ Assert.AreEqual(hashCode1, hashCode2, "hashcode");
+ }
+
+ [TestMethod]
+ public void TestGetHashCode3()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/32");
+ var ipnetwork2 = IPNetwork2.Parse("0.0.0.0/32");
+ int hashCode1 = ipnetwork1.GetHashCode();
+ int hashCode2 = ipnetwork2.GetHashCode();
+ Assert.AreEqual(hashCode1, hashCode2, "hashcode");
+ }
+
+ #endregion
+}
\ No newline at end of file
diff --git a/src/TestProject/GlobalUsings.cs b/src/TestProject/GlobalUsings.cs
new file mode 100644
index 00000000..8b48a6d7
--- /dev/null
+++ b/src/TestProject/GlobalUsings.cs
@@ -0,0 +1,23 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+#pragma warning disable SA1200
+global using System;
+global using System.Collections;
+global using System.Collections.Generic;
+global using System.IO;
+global using System.Net;
+global using System.Net.ConsoleApplication;
+global using System.Net.Sockets;
+global using System.Numerics;
+global using System.Runtime.Serialization;
+global using System.Text;
+global using System.Xml;
+global using System.Xml.Serialization;
+global using System.Linq;
+global using System.Security.Cryptography;
+global using Microsoft.VisualStudio.TestTools.UnitTesting;
+global using Newtonsoft.Json;
+
+#pragma warning restore SA1200
\ No newline at end of file
diff --git a/src/TestProject/HashSetUnitTest.cs b/src/TestProject/HashSetUnitTest.cs
index efbdb237..0b2f8652 100644
--- a/src/TestProject/HashSetUnitTest.cs
+++ b/src/TestProject/HashSetUnitTest.cs
@@ -2,17 +2,14 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
-{
- using System.Collections.Generic;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
- [TestClass]
- public class HashSetUnitTest
+[TestClass]
+public class HashSetUnitTest
+{
+ [TestMethod]
+ public void TestGetHashCode_HashSet_Add1()
{
- [TestMethod]
- public void TestGetHashCode_HashSet_Add1()
- {
var ipnetwork1 = IPNetwork2.Parse("0.0.1.1/0");
var ipnetwork2 = IPNetwork2.Parse("1.1.1.1/0");
@@ -24,9 +21,9 @@ public void TestGetHashCode_HashSet_Add1()
Assert.IsFalse(add2, "add2");
}
- [TestMethod]
- public void TestGetHashCode_HashSet_Add2()
- {
+ [TestMethod]
+ public void TestGetHashCode_HashSet_Add2()
+ {
var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/1");
var ipnetwork2 = IPNetwork2.Parse("1.0.0.0/1");
@@ -37,37 +34,4 @@ public void TestGetHashCode_HashSet_Add2()
Assert.IsTrue(add1, "add1");
Assert.IsFalse(add2, "add2");
}
-
- [TestMethod]
- public void TestGetHashCode_HashSet_Add3()
- {
- var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/32");
- var ipnetwork2 = IPNetwork2.Parse("0.0.0.1/32");
-
- var hashset = new HashSet();
- bool add1 = hashset.Add(ipnetwork1);
- bool add2 = hashset.Add(ipnetwork2);
-
- Assert.IsTrue(add1, "add1");
- Assert.IsTrue(add2, "add2");
- }
-
- #region Equals IPv6 vs IPv4
-
- [TestMethod]
- public void TestHashSet_Add_ipv6_ipv4_0()
- {
- var ipnetwork1 = IPNetwork2.Parse("::/32");
- var ipnetwork2 = IPNetwork2.Parse("0.0.0.0/32");
-
- var hashset = new HashSet();
- bool add1 = hashset.Add(ipnetwork1);
- bool add2 = hashset.Add(ipnetwork2);
-
- Assert.IsTrue(add1, "add1");
- Assert.IsTrue(add2, "add2");
- }
-
- #endregion
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/HashSetUnitTestEqualsIPv6VsIPv4.cs b/src/TestProject/HashSetUnitTestEqualsIPv6VsIPv4.cs
new file mode 100644
index 00000000..0ac5bbe3
--- /dev/null
+++ b/src/TestProject/HashSetUnitTestEqualsIPv6VsIPv4.cs
@@ -0,0 +1,23 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class HashSetUnitTestEqualsIPv6VsIPv4
+{
+ [TestMethod]
+ public void TestHashSet_Add_ipv6_ipv4_0()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("::/32");
+ var ipnetwork2 = IPNetwork2.Parse("0.0.0.0/32");
+
+ var hashset = new HashSet();
+ bool add1 = hashset.Add(ipnetwork1);
+ bool add2 = hashset.Add(ipnetwork2);
+
+ Assert.IsTrue(add1, "add1");
+ Assert.IsTrue(add2, "add2");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/HashSetUnitTestHashCodeAdd3.cs b/src/TestProject/HashSetUnitTestHashCodeAdd3.cs
new file mode 100644
index 00000000..82743db0
--- /dev/null
+++ b/src/TestProject/HashSetUnitTestHashCodeAdd3.cs
@@ -0,0 +1,23 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class HashSetUnitTestHashCodeAdd3
+{
+ [TestMethod]
+ public void TestGetHashCode_HashSet_Add3()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("0.0.0.0/32");
+ var ipnetwork2 = IPNetwork2.Parse("0.0.0.1/32");
+
+ var hashset = new HashSet();
+ bool add1 = hashset.Add(ipnetwork1);
+ bool add2 = hashset.Add(ipnetwork2);
+
+ Assert.IsTrue(add1, "add1");
+ Assert.IsTrue(add2, "add2");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPAddressCollectionUnitTest.cs b/src/TestProject/IPAddressCollectionUnitTest.cs
index 3943fa27..a8a788e8 100644
--- a/src/TestProject/IPAddressCollectionUnitTest.cs
+++ b/src/TestProject/IPAddressCollectionUnitTest.cs
@@ -2,24 +2,87 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
+
+namespace TestProject;
+
+///
+/// IPNetworkUnitTest test every single method.
+///
+[TestClass]
+public class IPAddressCollectionUnitTest
{
- using System.Collections;
- using System.Collections.Generic;
- using System.Numerics;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- ///
- /// IPNetworkUnitTest test every single method.
- ///
- [TestClass]
- public class IPAddressCollectionUnitTest
- {
- #region ListIPAddress
-
- [TestMethod]
- public void TestAtIndexIPAddress()
- {
+ [TestMethod]
+ public void Test_Usable_AtIndexIPAddress()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/29");
+ using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
+ {
+ Assert.AreEqual("192.168.1.1", ips[0].ToString(), "0");
+ Assert.AreEqual("192.168.1.2", ips[1].ToString(), "1");
+ Assert.AreEqual("192.168.1.3", ips[2].ToString(), "2");
+ Assert.AreEqual("192.168.1.4", ips[3].ToString(), "3");
+ Assert.AreEqual("192.168.1.5", ips[4].ToString(), "4");
+ Assert.AreEqual("192.168.1.6", ips[5].ToString(), "5");
+ }
+ }
+
+ [TestMethod]
+ public void Test_Usable_IteratorIPAddress()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/29");
+ using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
+ {
+ int i = 0;
+ foreach (IPAddress ip in ips)
+ {
+ Assert.AreEqual(ips[i], ip, i.ToString());
+ i++;
+ }
+ }
+ }
+
+ [TestMethod]
+ public void Test_Usable_AtIndexIPAddress_31()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/31");
+ using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
+ {
+ Assert.AreEqual(0, ips.Count, "Count");
+ }
+ }
+
+ [TestMethod]
+ public void Test_Usable_AtIndexIPAddress_32()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/32");
+ using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
+ {
+ Assert.AreEqual(0, ips.Count, "Count");
+ }
+ }
+
+ [TestMethod]
+ public void Test_All_AtIndexIPAddress()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/29");
+ using (IPAddressCollection ips = ipn.ListIPAddress())
+ {
+ Assert.AreEqual("192.168.1.0", ips[0].ToString(), "0");
+ Assert.AreEqual("192.168.1.1", ips[1].ToString(), "1");
+ Assert.AreEqual("192.168.1.2", ips[2].ToString(), "2");
+ Assert.AreEqual("192.168.1.3", ips[3].ToString(), "3");
+ Assert.AreEqual("192.168.1.4", ips[4].ToString(), "4");
+ Assert.AreEqual("192.168.1.5", ips[5].ToString(), "5");
+ Assert.AreEqual("192.168.1.6", ips[6].ToString(), "6");
+ Assert.AreEqual("192.168.1.7", ips[7].ToString(), "6");
+ }
+ }
+
+ #region ListIPAddress
+
+ [TestMethod]
+ public void TestAtIndexIPAddress()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -34,9 +97,9 @@ public void TestAtIndexIPAddress()
}
}
- [TestMethod]
- public void TestAtIndexIPAddress2()
- {
+ [TestMethod]
+ public void TestAtIndexIPAddress2()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
#pragma warning disable CS0618 // Type or member is obsolete
using (IPAddressCollection ips = IPNetwork2.ListIPAddress(ipn))
@@ -53,9 +116,9 @@ public void TestAtIndexIPAddress2()
}
}
- [TestMethod]
- public void TestIterateIPAddress()
- {
+ [TestMethod]
+ public void TestIterateIPAddress()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
IPAddress last = null;
IPAddress first = null;
@@ -81,10 +144,10 @@ public void TestIterateIPAddress()
}
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestOutOfRangeIPAddress()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestOutOfRangeIPAddress()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -92,9 +155,9 @@ public void TestOutOfRangeIPAddress()
}
}
- [TestMethod]
- public void TestCountIPAddress()
- {
+ [TestMethod]
+ public void TestCountIPAddress()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -102,9 +165,9 @@ public void TestCountIPAddress()
}
}
- [TestMethod]
- public void TestReset()
- {
+ [TestMethod]
+ public void TestReset()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -112,9 +175,9 @@ public void TestReset()
}
}
- [TestMethod]
- public void TestResetEnumerator()
- {
+ [TestMethod]
+ public void TestResetEnumerator()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -132,10 +195,10 @@ public void TestResetEnumerator()
}
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestEnumeratorFailed()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestEnumeratorFailed()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
using (IEnumerator ips = ipn.ListIPAddress())
{
@@ -149,9 +212,9 @@ public void TestEnumeratorFailed()
}
}
- [TestMethod]
- public void TestEnumeratorMoveNext()
- {
+ [TestMethod]
+ public void TestEnumeratorMoveNext()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/29");
using (IEnumerator ips = ipn.ListIPAddress())
{
@@ -168,9 +231,9 @@ public void TestEnumeratorMoveNext()
}
}
- [TestMethod]
- public void TestEnumeratorMoveNext2()
- {
+ [TestMethod]
+ public void TestEnumeratorMoveNext2()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/31");
using (IEnumerator ips = ipn.ListIPAddress())
{
@@ -184,17 +247,17 @@ public void TestEnumeratorMoveNext2()
}
}
- [TestMethod]
- public void TestEnumerableCurrent()
- {
+ [TestMethod]
+ public void TestEnumerableCurrent()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/31");
IEnumerable ips = ipn.ListIPAddress();
Assert.IsNotNull(ips.GetEnumerator());
}
- [TestMethod]
- public void TestEnumeratorCurrent()
- {
+ [TestMethod]
+ public void TestEnumeratorCurrent()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/31");
IEnumerator ips = ipn.ListIPAddress();
Assert.IsNotNull(ips.Current);
@@ -204,10 +267,10 @@ public void TestEnumeratorCurrent()
Assert.IsFalse(ips.MoveNext());
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestEnumeratorCurrentOor()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestEnumeratorCurrentOor()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/31");
IEnumerator ips = ipn.ListIPAddress();
Assert.IsNotNull(ips.Current);
@@ -218,9 +281,9 @@ public void TestEnumeratorCurrentOor()
Console.WriteLine("This is out of range : {0} ", ips.Current);
}
- [TestMethod]
- public void TestEnumeratorIterate()
- {
+ [TestMethod]
+ public void TestEnumeratorIterate()
+ {
var ipn = IPNetwork2.Parse("192.168.1.0/31");
IEnumerator ips = ipn.ListIPAddress();
while (ips.MoveNext())
@@ -229,13 +292,13 @@ public void TestEnumeratorIterate()
}
}
- #endregion
+ #endregion
- #region IPv6
+ #region IPv6
- [TestMethod]
- public void Test_ipv6_AtIndexIPAddress()
- {
+ [TestMethod]
+ public void Test_ipv6_AtIndexIPAddress()
+ {
var ipn = IPNetwork2.Parse("::/125");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -250,9 +313,9 @@ public void Test_ipv6_AtIndexIPAddress()
}
}
- [TestMethod]
- public void Test_ipv6_IterateIPAddress()
- {
+ [TestMethod]
+ public void Test_ipv6_IterateIPAddress()
+ {
var ipn = IPNetwork2.Parse("::/125");
IPAddress last = null;
IPAddress first = null;
@@ -278,10 +341,10 @@ public void Test_ipv6_IterateIPAddress()
}
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void Test_ipv6_OutOfRangeIPAddress()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void Test_ipv6_OutOfRangeIPAddress()
+ {
var ipn = IPNetwork2.Parse("::/125");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -289,9 +352,9 @@ public void Test_ipv6_OutOfRangeIPAddress()
}
}
- [TestMethod]
- public void Test_ipv6_CountIPAddress()
- {
+ [TestMethod]
+ public void Test_ipv6_CountIPAddress()
+ {
var ipn = IPNetwork2.Parse("::/125");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -299,9 +362,9 @@ public void Test_ipv6_CountIPAddress()
}
}
- [TestMethod]
- public void Test_ipv6_CountIPAddress2()
- {
+ [TestMethod]
+ public void Test_ipv6_CountIPAddress2()
+ {
var ipn = IPNetwork2.Parse("::/0");
var max = BigInteger.Pow(2, 128);
using (IPAddressCollection ips = ipn.ListIPAddress())
@@ -310,9 +373,9 @@ public void Test_ipv6_CountIPAddress2()
}
}
- [TestMethod]
- public void Test_ipv6_Reset()
- {
+ [TestMethod]
+ public void Test_ipv6_Reset()
+ {
var ipn = IPNetwork2.Parse("::/125");
using (IPAddressCollection ips = ipn.ListIPAddress())
{
@@ -320,9 +383,9 @@ public void Test_ipv6_Reset()
}
}
- [TestMethod]
- public void Tes_ipv6_tResetEnumerator()
- {
+ [TestMethod]
+ public void Tes_ipv6_tResetEnumerator()
+ {
var ipn = IPNetwork2.Parse("::/125");
using (IEnumerator ips = ipn.ListIPAddress())
{
@@ -340,10 +403,10 @@ public void Tes_ipv6_tResetEnumerator()
}
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void Test_ipv6_EnumeratorFailed()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void Test_ipv6_EnumeratorFailed()
+ {
var ipn = IPNetwork2.Parse("::/125");
using (IEnumerator ips = ipn.ListIPAddress())
{
@@ -357,9 +420,9 @@ public void Test_ipv6_EnumeratorFailed()
}
}
- [TestMethod]
- public void Test_ipv6_EnumeratorMoveNext()
- {
+ [TestMethod]
+ public void Test_ipv6_EnumeratorMoveNext()
+ {
var ipn = IPNetwork2.Parse("::/125");
using (IEnumerator ips = ipn.ListIPAddress())
{
@@ -376,9 +439,9 @@ public void Test_ipv6_EnumeratorMoveNext()
}
}
- [TestMethod]
- public void Test_ipv6_EnumeratorMoveNext2()
- {
+ [TestMethod]
+ public void Test_ipv6_EnumeratorMoveNext2()
+ {
var ipn = IPNetwork2.Parse("::/127");
using (IEnumerator ips = ipn.ListIPAddress())
{
@@ -392,9 +455,9 @@ public void Test_ipv6_EnumeratorMoveNext2()
}
}
- [TestMethod]
- public void Test_ipv6_EnumeratorCurrent()
- {
+ [TestMethod]
+ public void Test_ipv6_EnumeratorCurrent()
+ {
var ipn = IPNetwork2.Parse("::/127");
IEnumerator ips = ipn.ListIPAddress();
Assert.IsNotNull(ips.Current);
@@ -404,10 +467,10 @@ public void Test_ipv6_EnumeratorCurrent()
Assert.IsFalse(ips.MoveNext());
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void Test_ipv6_EnumeratorCurrentOor()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void Test_ipv6_EnumeratorCurrentOor()
+ {
var ipn = IPNetwork2.Parse("::/127");
IEnumerator ips = ipn.ListIPAddress();
Assert.IsNotNull(ips.Current);
@@ -418,9 +481,9 @@ public void Test_ipv6_EnumeratorCurrentOor()
Console.WriteLine("This is out of range : {0} ", ips.Current);
}
- [TestMethod]
- public void Test_ipv6_EnumeratorIterate()
- {
+ [TestMethod]
+ public void Test_ipv6_EnumeratorIterate()
+ {
var ipn = IPNetwork2.Parse("::/127");
IEnumerator ips = ipn.ListIPAddress();
while (ips.MoveNext())
@@ -429,80 +492,12 @@ public void Test_ipv6_EnumeratorIterate()
}
}
- [TestMethod]
- public void Test_ipv6_DefaultNetmask()
- {
+ [TestMethod]
+ public void Test_ipv6_DefaultNetmask()
+ {
var ipnetwork = IPNetwork2.Parse("::1");
Assert.AreEqual(64, ipnetwork.Cidr, "Cidr");
}
- #endregion
-
- [TestMethod]
- public void Test_Usable_AtIndexIPAddress()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/29");
- using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
- {
- Assert.AreEqual("192.168.1.1", ips[0].ToString(), "0");
- Assert.AreEqual("192.168.1.2", ips[1].ToString(), "1");
- Assert.AreEqual("192.168.1.3", ips[2].ToString(), "2");
- Assert.AreEqual("192.168.1.4", ips[3].ToString(), "3");
- Assert.AreEqual("192.168.1.5", ips[4].ToString(), "4");
- Assert.AreEqual("192.168.1.6", ips[5].ToString(), "5");
- }
- }
-
- [TestMethod]
- public void Test_Usable_IteratorIPAddress()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/29");
- using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
- {
- int i = 0;
- foreach (IPAddress ip in ips)
- {
- Assert.AreEqual(ips[i], ip, i.ToString());
- i++;
- }
- }
- }
-
- [TestMethod]
- public void Test_Usable_AtIndexIPAddress_31()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/31");
- using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
- {
- Assert.AreEqual(0, ips.Count, "Count");
- }
- }
-
- [TestMethod]
- public void Test_Usable_AtIndexIPAddress_32()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/32");
- using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.Usable))
- {
- Assert.AreEqual(0, ips.Count, "Count");
- }
- }
-
- [TestMethod]
- public void Test_All_AtIndexIPAddress()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/29");
- using (IPAddressCollection ips = ipn.ListIPAddress(FilterEnum.All))
- {
- Assert.AreEqual("192.168.1.0", ips[0].ToString(), "0");
- Assert.AreEqual("192.168.1.1", ips[1].ToString(), "1");
- Assert.AreEqual("192.168.1.2", ips[2].ToString(), "2");
- Assert.AreEqual("192.168.1.3", ips[3].ToString(), "3");
- Assert.AreEqual("192.168.1.4", ips[4].ToString(), "4");
- Assert.AreEqual("192.168.1.5", ips[5].ToString(), "5");
- Assert.AreEqual("192.168.1.6", ips[6].ToString(), "6");
- Assert.AreEqual("192.168.1.7", ips[7].ToString(), "6");
- }
- }
- }
-}
+ #endregion
+}
\ No newline at end of file
diff --git a/src/TestProject/IPAddressExtensionTests.cs b/src/TestProject/IPAddressExtensionTests.cs
index 8bfd45f1..afe7456b 100644
--- a/src/TestProject/IPAddressExtensionTests.cs
+++ b/src/TestProject/IPAddressExtensionTests.cs
@@ -2,24 +2,21 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestProject
-{
- using System.Collections.Generic;
- using System.Linq;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
+///
+/// A collection of unit tests exercising the IPAddressExtensions class.
+///
+[TestClass]
+public class IPAddressExtensionTests
+{
///
- /// A collection of unit tests exercising the IPAddressExtensions class.
+ /// Test converting a variety of IPv4 addreses into single-address networks.
///
- [TestClass]
- public class IPAddressExtensionTests
+ [TestMethod]
+ public void IPAddressToIPNetwork_SingleAddress_IPv4()
{
- ///
- /// Test converting a variety of IPv4 addreses into single-address networks.
- ///
- [TestMethod]
- public void IPAddressToIPNetwork_SingleAddress_IPv4()
- => IPAddressToIPNetwork_SingleAddress_Internal(
+ IPAddressToIPNetwork_SingleAddress_Internal(
4,
"0.0.0.0",
"0.0.0.1",
@@ -42,13 +39,15 @@ public void IPAddressToIPNetwork_SingleAddress_IPv4()
"239.255.255.255",
"240.0.0.0",
"255.255.255.255");
+ }
- ///
- /// Test converting a variety of IPv6 addreses into single-address networks.
- ///
- [TestMethod]
- public void IPAddressToIPNetwork_SingleAddress_IPv6()
- => IPAddressToIPNetwork_SingleAddress_Internal(
+ ///
+ /// Test converting a variety of IPv6 addreses into single-address networks.
+ ///
+ [TestMethod]
+ public void IPAddressToIPNetwork_SingleAddress_IPv6()
+ {
+ IPAddressToIPNetwork_SingleAddress_Internal(
16,
"::1",
"::",
@@ -57,25 +56,25 @@ public void IPAddressToIPNetwork_SingleAddress_IPv6()
"1234:ABCD::",
"1:2:3:4:5:6:7:8",
"FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF");
+ }
- ///
- /// Shared test case, called upon by the above two test cases.
- ///
- /// Number of bytes in the type of address being tester.
- /// A collection of interesting IP addresses to include in the test.
- private static void IPAddressToIPNetwork_SingleAddress_Internal(
- int byteCount,
- params string[] interestingAddrs)
- {
- /* Start the collection of test cases with the
- * interesting addresses from the caller. */
+ ///
+ /// Shared test case, called upon by the above two test cases.
+ ///
+ /// Number of bytes in the type of address being tester.
+ /// A collection of interesting IP addresses to include in the test.
+ private static void IPAddressToIPNetwork_SingleAddress_Internal(
+ int byteCount,
+ params string[] interestingAddrs)
+ {
+ /* Start the collection of test cases with the addresses from the caller. */
var addrs = interestingAddrs.ToList();
/* Populate with random but deterministic addresses. */
addrs.AddRange(RandomIPs(byteCount));
/* Loop through all of the test cases. */
- foreach (var ipAddr in addrs.Select(IPAddress.Parse))
+ foreach (IPAddress ipAddr in addrs.Select(IPAddress.Parse))
{
/* Convert to network, then pass the network object to a checker. */
TestForSingleAddressNetwork(
@@ -85,16 +84,16 @@ private static void IPAddressToIPNetwork_SingleAddress_Internal(
}
}
- ///
- /// Generate random but deterministic IPs.
- ///
- /// 4 for IPv4. 16 for IPv6.
- /// Collection of random IP addresses.
- private static IEnumerable RandomIPs(int byteCount)
- {
- /* Start from a fixed starting byte array.
- * Using a GUID's bytes so the sequence will be unique, with the first
- * byte XOR'd with the byte count so the two sequences will be different. */
+ ///
+ /// Generate random but deterministic IPs.
+ ///
+ /// 4 for IPv4. 16 for IPv6.
+ /// Collection of random IP addresses.
+ private static IEnumerable RandomIPs(int byteCount)
+ {
+ /* Start from a fixed starting byte array.
+ ing a GUID's bytes so the sequence will be unique, with the first
+ te XOR'd with the byte count so the two sequences will be different. */
byte[] hashInput = Guid.Parse("12f2c3ba-7bd1-4ec3-922c-a5625b8f5dd5").ToByteArray();
hashInput[0] ^= (byte)byteCount;
@@ -102,7 +101,7 @@ private static IEnumerable RandomIPs(int byteCount)
foreach (int i in Enumerable.Range(1, 1000))
{
/* Hash the current interation to get a new block of deterministic bytes. */
- using (var hash = System.Security.Cryptography.SHA256.Create())
+ using (var hash = SHA256.Create())
{
hashInput = hash.ComputeHash(hashInput);
}
@@ -112,19 +111,18 @@ private static IEnumerable RandomIPs(int byteCount)
}
}
- ///
- /// Test if a single address network is valid.
- ///
- /// Expected addresss.
- /// Actual network.
- /// Expected CIDRsize. (32 or 128.)
- private static void TestForSingleAddressNetwork(IPAddress ipAddr, IPNetwork2 net, int expectedSize)
- {
+ ///
+ /// Test if a single address network is valid.
+ ///
+ /// Expected addresss.
+ /// Actual network.
+ /// Expected CIDRsize. (32 or 128.)
+ private static void TestForSingleAddressNetwork(IPAddress ipAddr, IPNetwork2 net, int expectedSize)
+ {
Assert.AreEqual($"{ipAddr}/{expectedSize}", $"{net}");
Assert.AreEqual(ipAddr, net.FirstUsable);
Assert.AreEqual(ipAddr, net.LastUsable);
Assert.AreEqual(1, net.Total);
Assert.AreEqual(expectedSize, net.Cidr);
}
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkCollectionCtorTests.cs b/src/TestProject/IPNetworkCollectionCtorTests.cs
new file mode 100644
index 00000000..379c64ed
--- /dev/null
+++ b/src/TestProject/IPNetworkCollectionCtorTests.cs
@@ -0,0 +1,23 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class IPNetworkCollectionCtorTests
+{
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestCtor1()
+ {
+ var ipn = new IPNetworkCollection(IPNetwork2.IANA_ABLK_RESERVED1, 33);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestCtor2()
+ {
+ var ipn = new IPNetworkCollection(IPNetwork2.IANA_ABLK_RESERVED1, 2);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkCollectionCurrentTests.cs b/src/TestProject/IPNetworkCollectionCurrentTests.cs
new file mode 100644
index 00000000..bef039bd
--- /dev/null
+++ b/src/TestProject/IPNetworkCollectionCurrentTests.cs
@@ -0,0 +1,23 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class IPNetworkCollectionCurrentTests
+{
+ [TestMethod]
+ public void TestCurrent()
+ {
+ var ipn = IPNetwork2.Parse("192.168.0.0/32");
+ using (IPNetworkCollection ipns = ipn.Subnet(32))
+ {
+ var ipnse = (IEnumerator)ipns;
+ ipnse.MoveNext();
+ object ipn0 = ipnse.Current;
+
+ Assert.AreEqual("192.168.0.0/32", ipn0.ToString(), "ipn0");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkCollectionEnumeratorTests.cs b/src/TestProject/IPNetworkCollectionEnumeratorTests.cs
new file mode 100644
index 00000000..26956b60
--- /dev/null
+++ b/src/TestProject/IPNetworkCollectionEnumeratorTests.cs
@@ -0,0 +1,23 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class IPNetworkCollectionEnumeratorTests
+{
+ [TestMethod]
+ public void TestEnumerator()
+ {
+ var ipn = IPNetwork2.Parse("192.168.0.0/32");
+ using (IPNetworkCollection ipns = ipn.Subnet(32))
+ {
+ var ipnse = (IEnumerable)ipns;
+ IEnumerator ee = ipnse.GetEnumerator();
+ ee.MoveNext();
+ object ipn0 = ee.Current;
+ Assert.AreEqual("192.168.0.0/32", ipn0.ToString(), "ipn0");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkCollectionMoveNextTests.cs b/src/TestProject/IPNetworkCollectionMoveNextTests.cs
new file mode 100644
index 00000000..0ed960bf
--- /dev/null
+++ b/src/TestProject/IPNetworkCollectionMoveNextTests.cs
@@ -0,0 +1,36 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class IPNetworkCollectionMoveNextTests
+{
+ [TestMethod]
+ public void MoveNext1()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/30");
+ using (IPNetworkCollection ipns = ipn.Subnet(32))
+ {
+ bool next = ipns.MoveNext();
+ Assert.AreEqual(true, next, "next");
+ }
+ }
+
+ [TestMethod]
+ public void MoveNext2()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/30");
+ using (IPNetworkCollection ipns = ipn.Subnet(32))
+ {
+ ipns.MoveNext();
+ ipns.MoveNext();
+ ipns.MoveNext();
+ ipns.MoveNext();
+ bool next = ipns.MoveNext();
+
+ Assert.AreEqual(false, next, "next");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkCollectionResetTests.cs b/src/TestProject/IPNetworkCollectionResetTests.cs
new file mode 100644
index 00000000..e9f0694f
--- /dev/null
+++ b/src/TestProject/IPNetworkCollectionResetTests.cs
@@ -0,0 +1,24 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class IPNetworkCollectionResetTests
+{
+ [TestMethod]
+ public void TestReset1()
+ {
+ var ipn = IPNetwork2.Parse("192.168.1.0/29");
+ using (IPNetworkCollection ipns = ipn.Subnet(32))
+ {
+ IPNetwork2 ipn0 = ipns.Current;
+ ipns.MoveNext();
+ ipns.Reset();
+ IPNetwork2 ipn1 = ipns.Current;
+
+ Assert.AreEqual(ipn0, ipn1, "reset");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkCollectionUnitTest.cs b/src/TestProject/IPNetworkCollectionUnitTest.cs
deleted file mode 100644
index bbc0bff3..00000000
--- a/src/TestProject/IPNetworkCollectionUnitTest.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Copyright (c) IPNetwork. All rights reserved.
-//
-
-namespace System.Net.TestProject
-{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- [TestClass]
- public class IPNetworkCollectionUnitTest
- {
- #region ctor
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestCtor1()
- {
- var ipn = new IPNetworkCollection(IPNetwork2.IANA_ABLK_RESERVED1, 33);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestCtor2()
- {
- var ipn = new IPNetworkCollection(IPNetwork2.IANA_ABLK_RESERVED1, 2);
- }
-
- #endregion
-
- #region Current
-
- [TestMethod]
- public void TestCurrent()
- {
- var ipn = IPNetwork2.Parse("192.168.0.0/32");
- using (IPNetworkCollection ipns = ipn.Subnet(32))
- {
- var ipnse = (Collections.IEnumerator)ipns;
- ipnse.MoveNext();
- object ipn0 = ipnse.Current;
-
- Assert.AreEqual("192.168.0.0/32", ipn0.ToString(), "ipn0");
- }
- }
-
- #endregion
-
- #region Enumerator
-
- [TestMethod]
- public void TestEnumerator()
- {
- var ipn = IPNetwork2.Parse("192.168.0.0/32");
- using (IPNetworkCollection ipns = ipn.Subnet(32))
- {
- var ipnse = (Collections.IEnumerable)ipns;
- Collections.IEnumerator ee = ipnse.GetEnumerator();
- ee.MoveNext();
- object ipn0 = ee.Current;
- Assert.AreEqual("192.168.0.0/32", ipn0.ToString(), "ipn0");
- }
- }
-
- #endregion
-
- #region Reset
-
- [TestMethod]
- public void TestReset1()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/29");
- using (IPNetworkCollection ipns = ipn.Subnet(32))
- {
- IPNetwork2 ipn0 = ipns.Current;
- ipns.MoveNext();
- ipns.Reset();
- IPNetwork2 ipn1 = ipns.Current;
-
- Assert.AreEqual(ipn0, ipn1, "reset");
- }
- }
-
- #endregion
-
- #region MoveNext
-
- [TestMethod]
- public void MoveNext1()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/30");
- using (IPNetworkCollection ipns = ipn.Subnet(32))
- {
- bool next = ipns.MoveNext();
- Assert.AreEqual(true, next, "next");
- }
- }
-
- [TestMethod]
- public void MoveNext2()
- {
- var ipn = IPNetwork2.Parse("192.168.1.0/30");
- using (IPNetworkCollection ipns = ipn.Subnet(32))
- {
- ipns.MoveNext();
- ipns.MoveNext();
- ipns.MoveNext();
- ipns.MoveNext();
- bool next = ipns.MoveNext();
-
- Assert.AreEqual(false, next, "next");
- }
- }
-
- #endregion
- }
-}
diff --git a/src/TestProject/IPNetworkTest/IPNetworkBitsSetTests.cs b/src/TestProject/IPNetworkTest/IPNetworkBitsSetTests.cs
new file mode 100644
index 00000000..314f1524
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkBitsSetTests.cs
@@ -0,0 +1,64 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+///
+/// Tests for bit set functionality in IPNetwork2.
+///
+[TestClass]
+public class IPNetworkBitsSetTests
+{
+ ///
+ /// Tests that BitsSet returns 32 for a 255.255.255.255 address.
+ ///
+ [TestMethod]
+ public void TestBitsSet32()
+ {
+ var ip = IPAddress.Parse("255.255.255.255");
+ uint bits = 32;
+ uint result = IPNetwork2.BitsSet(ip);
+
+ Assert.AreEqual(bits, result, "BitsSet");
+ }
+
+ ///
+ /// Tests that BitsSet returns 24 for a 255.255.255.0 address.
+ ///
+ [TestMethod]
+ public void TestBitsSet24()
+ {
+ var ip = IPAddress.Parse("255.255.255.0");
+ uint bits = 24;
+ uint result = IPNetwork2.BitsSet(ip);
+
+ Assert.AreEqual(bits, result, "BitsSet");
+ }
+
+ ///
+ /// Tests that BitsSet returns 16 for a 255.255.0.0 address.
+ ///
+ [TestMethod]
+ public void TestBitsSet16()
+ {
+ var ip = IPAddress.Parse("255.255.0.0");
+ uint bits = 16;
+ uint result = IPNetwork2.BitsSet(ip);
+
+ Assert.AreEqual(bits, result, "BitsSet");
+ }
+
+ ///
+ /// Tests that BitsSet returns 4 for a 128.128.128.128 address.
+ ///
+ [TestMethod]
+ public void TestBitsSet4()
+ {
+ var ip = IPAddress.Parse("128.128.128.128");
+ uint bits = 4;
+ uint result = IPNetwork2.BitsSet(ip);
+
+ Assert.AreEqual(bits, result, "BitsSet");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkCompareTests.cs b/src/TestProject/IPNetworkTest/IPNetworkCompareTests.cs
new file mode 100644
index 00000000..19e3abf6
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkCompareTests.cs
@@ -0,0 +1,112 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkCompareTests
+{
+ ///
+ /// Tests Compare functionality with Compare To1.
+ ///
+ [TestMethod]
+ public void TestCompareTo1()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ var ipn2 = IPNetwork2.Parse("10.0.0.2/16");
+
+ int comparison = ipn1.CompareTo(ipn2);
+
+ Assert.AreEqual(0, comparison, "compare");
+ }
+
+ ///
+ /// Tests Compare functionality with Compare To2.
+ ///
+ [TestMethod]
+ public void TestCompareTo2()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ object ipn2 = IPNetwork2.Parse("10.0.0.2/16");
+
+ int comparison = ipn1.CompareTo(ipn2);
+
+ Assert.AreEqual(0, comparison, "compare");
+ }
+
+ ///
+ /// Tests Compare functionality with Compare To3.
+ ///
+ [TestMethod]
+ public void TestCompareTo3()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ object ipn2 = null;
+
+ int comparison = ipn1.CompareTo(ipn2);
+
+ Assert.AreEqual(1, comparison, "compare");
+ }
+
+ ///
+ /// Tests Compare functionality with Compare To4.
+ ///
+ [TestMethod]
+ public void TestCompareTo4()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ IPNetwork2 ipn2 = null;
+
+ int comparison = ipn1.CompareTo(ipn2);
+
+ Assert.AreEqual(1, comparison, "compare");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestCompareTo5()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ string ipn2 = string.Empty;
+
+ int comparison = ipn1.CompareTo(ipn2);
+ }
+
+ ///
+ /// Tests Compare functionality with Compare To6.
+ ///
+ [TestMethod]
+ public void TestCompareTo6()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ int comparison = ipn1.CompareTo(ipn1);
+
+ Assert.AreEqual(0, comparison, "compare");
+ }
+
+ ///
+ /// Tests Compare functionality with Compare1.
+ ///
+ [TestMethod]
+ public void TestCompare1()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ int comparison = IPNetwork2.Compare(null, ipn1);
+
+ Assert.AreEqual(-1, comparison, "compare");
+ }
+
+ ///
+ /// Tests Compare functionality with Compare2.
+ ///
+ [TestMethod]
+ public void TestCompare2()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
+ var ipn2 = IPNetwork2.Parse("20.0.0.1/16");
+ int comparison = IPNetwork2.Compare(ipn1, ipn2);
+
+ Assert.AreEqual(-1, comparison, "compare");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkCountTests.cs b/src/TestProject/IPNetworkTest/IPNetworkCountTests.cs
new file mode 100644
index 00000000..ed97b208
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkCountTests.cs
@@ -0,0 +1,89 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+///
+/// Tests for the Count property in IPNetwork2.
+///
+[TestClass]
+public class IPNetworkCountTests
+{
+ ///
+ /// Tests Count functionality with Total32.
+ ///
+ [TestMethod]
+ public void TestTotal32()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/32");
+ int total = 1;
+ Assert.AreEqual(total, network.Total, "Total");
+ }
+
+ ///
+ /// Tests Count functionality with Total31.
+ ///
+ [TestMethod]
+ public void TestTotal31()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/31");
+ int total = 2;
+ Assert.AreEqual(total, network.Total, "Total");
+ }
+
+ ///
+ /// Tests Count functionality with Total30.
+ ///
+ [TestMethod]
+ public void TestTotal30()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/30");
+ int total = 4;
+ Assert.AreEqual(total, network.Total, "Total");
+ }
+
+ ///
+ /// Tests Count functionality with Total24.
+ ///
+ [TestMethod]
+ public void TestTotal24()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/24");
+ int total = 256;
+ Assert.AreEqual(total, network.Total, "Total");
+ }
+
+ ///
+ /// Tests Count functionality with Total16.
+ ///
+ [TestMethod]
+ public void TestTotal16()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/16");
+ int total = 65536;
+ Assert.AreEqual(total, network.Total, "Total");
+ }
+
+ ///
+ /// Tests Count functionality with Total8.
+ ///
+ [TestMethod]
+ public void TestTotal8()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/8");
+ int total = 16777216;
+ Assert.AreEqual(total, network.Total, "Total");
+ }
+
+ ///
+ /// Tests Count functionality with Total0.
+ ///
+ [TestMethod]
+ public void TestTotal0()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/0");
+ long total = 4294967296;
+ Assert.AreEqual(total, network.Total, "Total");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkCtorTests.cs b/src/TestProject/IPNetworkTest/IPNetworkCtorTests.cs
new file mode 100644
index 00000000..1a576c83
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkCtorTests.cs
@@ -0,0 +1,16 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkCtorTests
+{
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestCtor1()
+ {
+ new IPNetwork2(BigInteger.Zero, AddressFamily.InterNetwork, 33);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkCtorWithIpAndCidrTests.cs b/src/TestProject/IPNetworkTest/IPNetworkCtorWithIpAndCidrTests.cs
new file mode 100644
index 00000000..6c2284cb
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkCtorWithIpAndCidrTests.cs
@@ -0,0 +1,38 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkCtorWithIpAndCidrTests
+{
+ ///
+ /// Tests Ctor With Ip And Cidr functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void CtorWithIpAndCidr1()
+ {
+ string ipaddress = "192.168.168.100";
+ var ip = IPAddress.Parse(ipaddress);
+ var ipnetwork = new IPNetwork2(ip, 24);
+ Assert.AreEqual("192.168.168.0/24", ipnetwork.ToString(), "network");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void CtorWithIpAndCidr2()
+ {
+ IPAddress ip = null;
+ var ipnetwork = new IPNetwork2(ip, 24);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void CtorWithIpAndCidr3()
+ {
+ string ipaddress = "192.168.168.100";
+ var ip = IPAddress.Parse(ipaddress);
+ var ipnetwork = new IPNetwork2(ip, 33);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkExamplesTests.cs b/src/TestProject/IPNetworkTest/IPNetworkExamplesTests.cs
new file mode 100644
index 00000000..21cc6870
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkExamplesTests.cs
@@ -0,0 +1,235 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkExamplesTests
+{
+ ///
+ /// Tests Examples functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void Example1()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.168.100/24");
+
+ Console.WriteLine("Network : {0}", ipnetwork.Network);
+ Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
+ Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
+ Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
+ Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
+ Console.WriteLine("Usable : {0}", ipnetwork.Usable);
+ Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
+ }
+
+ ///
+ /// Tests Examples functionality with a /2 network.
+ ///
+ [TestMethod]
+ public void Example2()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.0.0/24");
+ var ipaddress = IPAddress.Parse("192.168.0.100");
+ var ipaddress2 = IPAddress.Parse("192.168.1.100");
+
+ var ipnetwork2 = IPNetwork2.Parse("192.168.0.128/25");
+ var ipnetwork3 = IPNetwork2.Parse("192.168.1.1/24");
+
+ bool contains1 = ipnetwork.Contains(ipaddress);
+ bool contains2 = ipnetwork.Contains(ipaddress2);
+ bool contains3 = ipnetwork.Contains(ipnetwork2);
+ bool contains4 = ipnetwork.Contains(ipnetwork3);
+
+ bool overlap1 = ipnetwork.Overlap(ipnetwork2);
+ bool overlap2 = ipnetwork.Overlap(ipnetwork3);
+
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress, contains1);
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipnetwork2, contains3);
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipnetwork3, contains4);
+
+ Console.WriteLine("{0} overlap {1} : {2}", ipnetwork, ipnetwork2, overlap1);
+ Console.WriteLine("{0} overlap {1} : {2}", ipnetwork, ipnetwork3, overlap2);
+ }
+
+ ///
+ /// Tests Examples functionality.
+ ///
+ [TestMethod]
+ public void Example2B()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("10.1.0.0/16");
+ var ipnetwork2 = IPNetwork2.Parse("192.168.1.0/24");
+
+ var ipaddress1 = IPAddress.Parse("192.168.1.1");
+ var ipaddress2 = IPAddress.Parse("192.168.2.100");
+ var ipaddress3 = IPAddress.Parse("10.1.2.3");
+ var ipaddress4 = IPAddress.Parse("10.4.5.6");
+
+ bool contains1 = ipnetwork2.Contains(ipaddress1);
+ bool contains2 = ipnetwork2.Contains(ipaddress2);
+ bool contains3 = ipnetwork1.Contains(ipaddress3);
+ bool contains4 = ipnetwork1.Contains(ipaddress4);
+
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork1, ipaddress1, contains1);
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork1, ipaddress2, contains2);
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork2, ipaddress3, contains3);
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork2, ipaddress4, contains4);
+ }
+
+ ///
+ /// Tests Examples functionality with a /3 network.
+ ///
+ [TestMethod]
+ public void Example3()
+ {
+ IPNetwork2 ianaABlock = IPNetwork2.IANA_ABLK_RESERVED1;
+ IPNetwork2 ianaBBlock = IPNetwork2.IANA_BBLK_RESERVED1;
+ IPNetwork2 ianaCBlock = IPNetwork2.IANA_CBLK_RESERVED1;
+
+ Console.WriteLine("IANA_ABLK_RESERVED1 is {0}", ianaABlock);
+ Console.WriteLine("IANA_BBLK_RESERVED1 is {0}", ianaBBlock);
+ Console.WriteLine("IANA_CBLK_RESERVED1 is {0}", ianaCBlock);
+ }
+
+ ///
+ /// Tests Examples functionality with a /4 network.
+ ///
+ [TestMethod]
+ public void Example4()
+ {
+ var wholeInternet = IPNetwork2.Parse("0.0.0.0/0");
+ byte newCidr = 2;
+ IPNetworkCollection subneted = wholeInternet.Subnet(newCidr);
+
+ Console.WriteLine("{0} was subnetted into {1} subnets", wholeInternet, subneted.Count);
+ Console.WriteLine("First: {0}", subneted[0]);
+ Console.WriteLine("Last : {0}", subneted[subneted.Count - 1]);
+ Console.WriteLine("All :");
+
+ foreach (IPNetwork2 ipnetwork in subneted)
+ {
+ Console.WriteLine("{0}", ipnetwork);
+ }
+ }
+
+ ///
+ /// Tests Examples functionality with a /5 network.
+ ///
+ [TestMethod]
+ public void Example5()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/24");
+ var ipnetwork2 = IPNetwork2.Parse("192.168.1.0/24");
+ IPNetwork2[] ipnetwork3 = IPNetwork2.Supernet(new[] { ipnetwork1, ipnetwork2 });
+
+ Console.WriteLine("{0} + {1} = {2}", ipnetwork1, ipnetwork2, ipnetwork3[0]);
+ }
+
+ ///
+ /// Tests Examples functionality with a /7 network.
+ ///
+ [TestMethod]
+ public void Example7()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.168.100/24");
+
+ var ipaddress = IPAddress.Parse("192.168.168.200");
+ var ipaddress2 = IPAddress.Parse("192.168.0.200");
+
+ bool contains1 = ipnetwork.Contains(ipaddress);
+ bool contains2 = ipnetwork.Contains(ipaddress2);
+
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress, contains1);
+ Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
+ }
+
+ ///
+ /// Tests Examples functionality with a /9 network.
+ ///
+ [TestMethod]
+ public void Example9()
+ {
+ var network = IPNetwork2.Parse("192.168.0.1");
+ var network2 = IPNetwork2.Parse("192.168.0.254");
+
+ IPNetwork2 ipnetwork = network.Supernet(network2);
+
+ Console.WriteLine("Network : {0}", ipnetwork.Network);
+ Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
+ Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
+ Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
+ Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
+ Console.WriteLine("Usable : {0}", ipnetwork.Usable);
+ Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
+ }
+
+ ///
+ /// Tests Examples with invalid input to ensure proper error handling.
+ ///
+ [TestMethod]
+ public void When_TrySupernet_192_168_0_0_cidr24_add_192_168_10_0_cidr24_Then_Should_Invalid()
+ {
+ var network = IPNetwork2.Parse("192.168.0.0/24");
+ var network2 = IPNetwork2.Parse("192.168.10.0/24");
+
+ bool supernetted = network.TrySupernet(network2, out IPNetwork2 ipnetwork);
+ Assert.AreEqual(false, supernetted);
+ }
+
+ ///
+ /// Tests Examples with invalid input to ensure proper error handling.
+ ///
+ [TestMethod]
+ public void When_TryWideSubnet_192_168_0_0_cidr24_add_192_168_10_0_cidr24_Then_Should_Invalid()
+ {
+ var network = IPNetwork2.Parse("192.168.0.0/24");
+ var network2 = IPNetwork2.Parse("192.168.10.0/24");
+
+ bool wideSubnetted = IPNetwork2.TryWideSubnet(new[] { network, network2 }, out IPNetwork2 ipnetwork);
+ Assert.AreEqual(true, wideSubnetted);
+ Assert.AreEqual("192.168.0.0/20", ipnetwork.ToString());
+
+ Console.WriteLine("Network : {0}", ipnetwork.Network);
+ Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
+ Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
+ Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
+ Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
+ Console.WriteLine("Usable : {0}", ipnetwork.Usable);
+ Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
+ }
+
+ ///
+ /// Tests Examples functionality with a /10 network.
+ ///
+ [TestMethod]
+ public void Example10()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.0.1/25");
+
+ Console.WriteLine("Network : {0}", ipnetwork.Network);
+ Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
+ Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
+ Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
+ Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
+ Console.WriteLine("Usable : {0}", ipnetwork.Usable);
+ Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
+ }
+
+ ///
+ /// Tests Examples functionality with a /11 network.
+ ///
+ [TestMethod]
+ public void Example11()
+ {
+ var defaultParse = IPNetwork2.Parse("192.168.0.0"); // default to ClassFull
+ var classFullParse = IPNetwork2.Parse("192.168.0.0", CidrGuess.ClassFull);
+ var classLessParse = IPNetwork2.Parse("192.168.0.0", CidrGuess.ClassLess);
+
+ Console.WriteLine("IPV4 Default Parse : {0}", defaultParse);
+ Console.WriteLine("IPV4 ClassFull Parse : {0}", classFullParse);
+ Console.WriteLine("IPV4 ClassLess Parse : {0}", classLessParse);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkIanaBlocksTests.cs b/src/TestProject/IPNetworkTest/IPNetworkIanaBlocksTests.cs
new file mode 100644
index 00000000..93397e1f
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkIanaBlocksTests.cs
@@ -0,0 +1,157 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkIanaBlocksTests
+{
+ ///
+ /// Tests IANA_blocks functionality with IANA1.
+ ///
+ [TestMethod]
+ public void TestIana1()
+ {
+ var ipaddress = IPAddress.Parse("192.168.66.66");
+ bool expected = true;
+ bool result = IPNetwork2.IsIANAReserved(ipaddress);
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA2.
+ ///
+ [TestMethod]
+ public void TestIana2()
+ {
+ var ipaddress = IPAddress.Parse("10.0.0.0");
+ bool expected = true;
+ bool result = IPNetwork2.IsIANAReserved(ipaddress);
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA3.
+ ///
+ [TestMethod]
+ public void TestIana3()
+ {
+ var ipaddress = IPAddress.Parse("172.17.10.10");
+ bool expected = true;
+ bool result = IPNetwork2.IsIANAReserved(ipaddress);
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA4.
+ ///
+ [TestMethod]
+ public void TestIana4()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.66.66/24");
+ bool expected = true;
+ bool result = ipnetwork.IsIANAReserved();
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA5.
+ ///
+ [TestMethod]
+ public void TestIana5()
+ {
+ var ipnetwork = IPNetwork2.Parse("10.10.10/18");
+ bool expected = true;
+ bool result = ipnetwork.IsIANAReserved();
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA6.
+ ///
+ [TestMethod]
+ public void TestIana6()
+ {
+ var ipnetwork = IPNetwork2.Parse("172.31.10.10/24");
+ bool expected = true;
+ bool result = ipnetwork.IsIANAReserved();
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestIana7()
+ {
+ IPAddress ipaddress = null;
+ IPNetwork2.IsIANAReserved(ipaddress);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestIana8()
+ {
+ IPNetwork2 ipnetwork = null;
+#pragma warning disable 0618
+ bool result = IPNetwork2.IsIANAReserved(ipnetwork);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANABlk1.
+ ///
+ [TestMethod]
+ public void TestIanaBlk1()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+#pragma warning disable 0618
+ bool result = IPNetwork2.IsIANAReserved(ipnetwork);
+#pragma warning restore 0618
+ Assert.IsTrue(result, "result");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA9.
+ ///
+ [TestMethod]
+ public void TestIana9()
+ {
+ var ipaddress = IPAddress.Parse("1.2.3.4");
+ bool expected = false;
+ bool result = IPNetwork2.IsIANAReserved(ipaddress);
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA10.
+ ///
+ [TestMethod]
+ public void TestIana10()
+ {
+ var ipnetwork = IPNetwork2.Parse("172.16.0.0/8");
+ bool expected = false;
+ bool result = ipnetwork.IsIANAReserved();
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+
+ ///
+ /// Tests IANA_blocks functionality with IANA11.
+ ///
+ [TestMethod]
+ public void TestIana11()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/8");
+ bool expected = false;
+ bool result = ipnetwork.IsIANAReserved();
+
+ Assert.AreEqual(expected, result, "IANA");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkOperatorTests.cs b/src/TestProject/IPNetworkTest/IPNetworkOperatorTests.cs
new file mode 100644
index 00000000..3e4de18f
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkOperatorTests.cs
@@ -0,0 +1,121 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkOperatorTests
+{
+ ///
+ /// Tests Operator functionality with Operator Greater1.
+ ///
+ [TestMethod]
+ public void TestOperatorGreater1()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
+
+ bool greater = ipn1 > ipn2;
+
+ Assert.AreEqual(false, greater, "greater");
+ }
+
+ ///
+ /// Tests Operator functionality with Operator Greater2.
+ ///
+ [TestMethod]
+ public void TestOperatorGreater2()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
+
+ bool greater = ipn1 > ipn2;
+
+ Assert.AreEqual(true, greater, "greater");
+ }
+
+ ///
+ /// Tests Operator functionality with Operator Lower1.
+ ///
+ [TestMethod]
+ public void TestOperatorLower1()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
+
+ bool lower = ipn1 < ipn2;
+
+ Assert.AreEqual(true, lower, "lower");
+ }
+
+ ///
+ /// Tests Operator functionality with Operator Lower2.
+ ///
+ [TestMethod]
+ public void TestOperatorLower2()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
+
+ bool lower = ipn1 < ipn2;
+
+ Assert.AreEqual(false, lower, "lower");
+ }
+
+ ///
+ /// Tests Operator functionality with Operator Different1.
+ ///
+ [TestMethod]
+ public void TestOperatorDifferent1()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
+
+ bool different = ipn1 != ipn2;
+
+ Assert.AreEqual(true, different, "different");
+ }
+
+ ///
+ /// Tests Operator functionality with Operator Different2.
+ ///
+ [TestMethod]
+ public void TestOperatorDifferent2()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.1/32");
+
+ bool different = ipn1 != ipn2;
+
+ Assert.AreEqual(false, different, "different");
+ }
+
+ ///
+ /// Tests Operator functionality with Operator Equal1.
+ ///
+ [TestMethod]
+ public void TestOperatorEqual1()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
+
+ bool eq = ipn1 == ipn2;
+
+ Assert.AreEqual(false, eq, "eq");
+ }
+
+ ///
+ /// Tests Operator functionality with Operator Equal2.
+ ///
+ [TestMethod]
+ public void TestOperatorEqual2()
+ {
+ var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
+ var ipn2 = IPNetwork2.Parse("10.0.0.1/32");
+
+ bool eq = ipn1 == ipn2;
+
+ Assert.AreEqual(true, eq, "eq");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkOverlapTests.cs b/src/TestProject/IPNetworkTest/IPNetworkOverlapTests.cs
new file mode 100644
index 00000000..f3f082be
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkOverlapTests.cs
@@ -0,0 +1,102 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkOverlapTests
+{
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestOverlap1()
+ {
+ IPNetwork2 network1 = null;
+ IPNetwork2 network2 = null;
+
+#pragma warning disable 0618
+ bool result = IPNetwork2.Overlap(network1, network2);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests Overlap functionality with Overlap Static2.
+ ///
+ [TestMethod]
+ public void TestOverlapStatic2()
+ {
+ IPNetwork2 network1 = IPNetwork2.IANA_ABLK_RESERVED1;
+ IPNetwork2 network2 = IPNetwork2.IANA_ABLK_RESERVED1;
+
+#pragma warning disable 0618
+ bool result = IPNetwork2.Overlap(network1, network2);
+#pragma warning restore 0618
+
+ Assert.IsTrue(result, "result");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestOverlap2()
+ {
+ var network1 = IPNetwork2.Parse("10.0.0.0/0");
+ IPNetwork2 network2 = null;
+ network1.Overlap(network2);
+ }
+
+ ///
+ /// Tests Overlap functionality with Overlap3.
+ ///
+ [TestMethod]
+ public void TestOverlap3()
+ {
+ var network1 = IPNetwork2.Parse("10.0.0.0/0");
+ var network2 = IPNetwork2.Parse("10.0.0.0/0");
+ bool result = network1.Overlap(network2);
+ bool expected = true;
+
+ Assert.AreEqual(expected, result, "overlap");
+ }
+
+ ///
+ /// Tests Overlap functionality with Overlap4.
+ ///
+ [TestMethod]
+ public void TestOverlap4()
+ {
+ var network1 = IPNetwork2.Parse("10.10.0.0/16");
+ var network2 = IPNetwork2.Parse("10.10.1.0/24");
+ bool result = network1.Overlap(network2);
+ bool expected = true;
+
+ Assert.AreEqual(expected, result, "overlap");
+ }
+
+ ///
+ /// Tests Overlap functionality with Overlap5.
+ ///
+ [TestMethod]
+ public void TestOverlap5()
+ {
+ var network1 = IPNetwork2.Parse("10.10.0.0/24");
+ var network2 = IPNetwork2.Parse("10.10.1.0/24");
+ bool result = network1.Overlap(network2);
+ bool expected = false;
+
+ Assert.AreEqual(expected, result, "overlap");
+ }
+
+ ///
+ /// Tests Overlap functionality with Overlap6.
+ ///
+ [TestMethod]
+ public void TestOverlap6()
+ {
+ var network1 = IPNetwork2.Parse("10.10.1.0/24");
+ var network2 = IPNetwork2.Parse("10.10.0.0/16");
+ bool result = network1.Overlap(network2);
+ bool expected = true;
+
+ Assert.AreEqual(expected, result, "overlap");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkParseIpIpTests.cs b/src/TestProject/IPNetworkTest/IPNetworkParseIpIpTests.cs
new file mode 100644
index 00000000..6b8940a4
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkParseIpIpTests.cs
@@ -0,0 +1,42 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkParseIpIpTests
+{
+ ///
+ /// Tests Parse Ip Ip functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void ParseIpIp1()
+ {
+ string ipaddress = "192.168.168.100";
+ string netmask = "255.255.255.0";
+ var ip = IPAddress.Parse(ipaddress);
+ var netm = IPAddress.Parse(netmask);
+ var ipnetwork = IPNetwork2.Parse(ip, netm);
+ Assert.AreEqual("192.168.168.0/24", ipnetwork.ToString(), "network");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void ParseIpIp2()
+ {
+ IPAddress ip = null;
+ IPAddress netm = null;
+ var ipnetwork = IPNetwork2.Parse(ip, netm);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void ParseIpIp3()
+ {
+ string ipaddress = "192.168.168.100";
+ var ip = IPAddress.Parse(ipaddress);
+ IPAddress netm = null;
+ var ipnetwork = IPNetwork2.Parse(ip, netm);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkParseStringStringTests.cs b/src/TestProject/IPNetworkTest/IPNetworkParseStringStringTests.cs
new file mode 100644
index 00000000..45c45b9c
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkParseStringStringTests.cs
@@ -0,0 +1,62 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkParseStringStringTests
+{
+ ///
+ /// Tests Parse String String functionality with Parse String String1.
+ ///
+ [TestMethod]
+ public void TestParseStringString1()
+ {
+ string ipaddress = "192.168.168.100";
+ string netmask = "255.255.255.0";
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
+ Assert.AreEqual("192.168.168.0/24", ipnetwork.ToString(), "network");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringString2()
+ {
+ string ipaddress = null;
+ string netmask = null;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringString3()
+ {
+ string ipaddress = "192.168.168.100";
+ string netmask = null;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringString4()
+ {
+ string ipaddress = string.Empty;
+ string netmask = string.Empty;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringString5()
+ {
+ string ipaddress = "192.168.168.100";
+ string netmask = string.Empty;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkParseTests.cs b/src/TestProject/IPNetworkTest/IPNetworkParseTests.cs
new file mode 100644
index 00000000..9fdb09b4
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkParseTests.cs
@@ -0,0 +1,569 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkParseTests
+{
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseIPAddressNetmaskAne2()
+ {
+ IPAddress ip = null;
+ IPNetwork2.Parse(ip, ip);
+ }
+
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseIPAddressNetmaskAne3()
+ {
+ IPNetwork2.Parse(string.Empty, 0);
+ }
+
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseIPAddressNetmaskAne4()
+ {
+ IPNetwork2.Parse(null, 0);
+ }
+
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseIPAddressNetmaskAne5()
+ {
+ string n = null;
+ IPNetwork2.Parse(n, n);
+ }
+
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne8()
+ {
+ var ipnet = IPNetwork2.Parse("x.x.x.x", "x.x.x.x");
+ }
+
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne9()
+ {
+ var ipnet = IPNetwork2.Parse("0.0.0.0", "x.x.x.x");
+ }
+
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne10()
+ {
+ var ipnet = IPNetwork2.Parse("x.x.x.x", 0);
+ }
+
+ [TestMethod]
+ [TestCategory("Parse")]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne11()
+ {
+ var ipnet = IPNetwork2.Parse("0.0.0.0", 33);
+ }
+
+ [TestCategory("Parse")]
+ ///
+ /// Tests Parse functionality with Parse IPAddress Netmask.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNetmask()
+ {
+ string ipaddress = "192.168.168.100";
+ string netmask = "255.255.255.0";
+
+ string network = "192.168.168.0";
+ string broadcast = "192.168.168.255";
+ string firstUsable = "192.168.168.1";
+ string lastUsable = "192.168.168.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ [TestCategory("Parse")]
+ ///
+ /// Tests Parse functionality with Parse String1.
+ ///
+ [TestMethod]
+ public void TestParseString1()
+ {
+ string ipaddress = "192.168.168.100 255.255.255.0";
+
+ string network = "192.168.168.0";
+ string netmask = "255.255.255.0";
+ string broadcast = "192.168.168.255";
+ string firstUsable = "192.168.168.1";
+ string lastUsable = "192.168.168.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ [TestCategory("Parse")]
+ ///
+ /// Tests Parse functionality with Parse String2.
+ ///
+ [TestMethod]
+ public void TestParseString2()
+ {
+ string ipaddress = "192.168.168.100/24";
+
+ string network = "192.168.168.0";
+ string netmask = "255.255.255.0";
+ string broadcast = "192.168.168.255";
+ string firstUsable = "192.168.168.1";
+ string lastUsable = "192.168.168.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ [TestCategory("Parse")]
+ ///
+ /// Tests Parse functionality with Parse String3.
+ ///
+ [TestMethod]
+ public void TestParseString3()
+ {
+ string ipaddress = "0.0.0.0/0";
+
+ string network = "0.0.0.0";
+ string netmask = "0.0.0.0";
+ string broadcast = "255.255.255.255";
+ string firstUsable = "0.0.0.1";
+ string lastUsable = "255.255.255.254";
+ byte cidr = 0;
+ uint usable = 4294967294;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ [TestCategory("Parse")]
+ ///
+ /// Tests Parse functionality with Parse String4.
+ ///
+ [TestMethod]
+ public void TestParseString4()
+ {
+ string ipaddress = "0.0.0.0/32";
+
+ string network = "0.0.0.0";
+ string netmask = "255.255.255.255";
+ string broadcast = "0.0.0.0";
+ string firstUsable = "0.0.0.0";
+ string lastUsable = "0.0.0.0";
+ byte cidr = 32;
+ uint usable = 0;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ [TestCategory("Parse")]
+ ///
+ /// Tests Parse functionality with Parse String5.
+ ///
+ [TestMethod]
+ public void TestParseString5()
+ {
+ string ipaddress = "255.255.255.255/32";
+
+ string network = "255.255.255.255";
+ string netmask = "255.255.255.255";
+ string broadcast = "255.255.255.255";
+ string firstUsable = "255.255.255.255";
+ string lastUsable = "255.255.255.255";
+ byte cidr = 32;
+ uint usable = 0;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ [TestCategory("Parse")]
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask1.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask1()
+ {
+ string ipaddress = "10.0.0.0";
+
+ string network = "10.0.0.0";
+ string netmask = "255.0.0.0";
+ string broadcast = "10.255.255.255";
+ string firstUsable = "10.0.0.1";
+ string lastUsable = "10.255.255.254";
+ byte cidr = 8;
+ uint usable = 16777214;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality.
+ ///
+ [TestMethod]
+ public void When_Parse_254_128_0_0_Should_Succeed()
+ {
+ string ipaddress = "254.128.0.0";
+
+ string network = "254.128.0.0";
+ string netmask = "255.255.255.0";
+ string broadcast = "254.128.0.255";
+ string firstUsable = "254.128.0.1";
+ string lastUsable = "254.128.0.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask2.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask2()
+ {
+ string ipaddress = "172.0.0.0";
+
+ string network = "172.0.0.0";
+ string netmask = "255.255.0.0";
+ string broadcast = "172.0.255.255";
+ string firstUsable = "172.0.0.1";
+ string lastUsable = "172.0.255.254";
+ byte cidr = 16;
+ uint usable = 65534;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask3.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask3()
+ {
+ string ipaddress = "192.0.0.0";
+
+ string network = "192.0.0.0";
+ string netmask = "255.255.255.0";
+ string broadcast = "192.0.0.255";
+ string firstUsable = "192.0.0.1";
+ string lastUsable = "192.0.0.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask1_Class Full.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask1_ClassFull()
+ {
+ string ipaddress = "10.0.0.0";
+ ICidrGuess guessCidr = CidrGuess.ClassFull;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
+
+ string network = "10.0.0.0";
+ string netmask = "255.0.0.0";
+ string broadcast = "10.255.255.255";
+ string firstUsable = "10.0.0.1";
+ string lastUsable = "10.255.255.254";
+ byte cidr = 8;
+ uint usable = 16777214;
+
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask2_Class Full.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask2_ClassFull()
+ {
+ string ipaddress = "172.0.0.0";
+ ICidrGuess guessCidr = CidrGuess.ClassFull;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
+
+ string network = "172.0.0.0";
+ string netmask = "255.255.0.0";
+ string broadcast = "172.0.255.255";
+ string firstUsable = "172.0.0.1";
+ string lastUsable = "172.0.255.254";
+ byte cidr = 16;
+ uint usable = 65534;
+
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask3_Class Full.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask3_ClassFull()
+ {
+ string ipaddress = "192.0.0.0";
+ ICidrGuess guessCidr = CidrGuess.ClassFull;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
+
+ string network = "192.0.0.0";
+ string netmask = "255.255.255.0";
+ string broadcast = "192.0.0.255";
+ string firstUsable = "192.0.0.1";
+ string lastUsable = "192.0.0.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask1_Class Less.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask1_ClassLess()
+ {
+ string ipaddress = "10.0.0.0";
+ ICidrGuess guessCidr = CidrGuess.ClassLess;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
+
+ string network = "10.0.0.0";
+ string netmask = "255.255.255.255";
+ string broadcast = "10.0.0.0";
+ string firstUsable = "10.0.0.0";
+ string lastUsable = "10.0.0.0";
+ byte cidr = 32;
+ uint usable = 0;
+
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask2_Class Less.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask2_ClassLess()
+ {
+ string ipaddress = "172.0.0.0";
+ ICidrGuess guessCidr = CidrGuess.ClassLess;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
+
+ string network = "172.0.0.0";
+ string netmask = "255.255.255.255";
+ string broadcast = "172.0.0.0";
+ string firstUsable = "172.0.0.0";
+ string lastUsable = "172.0.0.0";
+ byte cidr = 32;
+ uint usable = 0;
+
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask3_Class Less.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask3_ClassLess()
+ {
+ string ipaddress = "192.0.0.0";
+ ICidrGuess guessCidr = CidrGuess.ClassLess;
+
+ var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
+
+ string network = "192.0.0.0";
+ string netmask = "255.255.255.255";
+ string broadcast = "192.0.0.0";
+ string firstUsable = "192.0.0.0";
+ string lastUsable = "192.0.0.0";
+ byte cidr = 32;
+ uint usable = 0;
+
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask4.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask4()
+ {
+ string ipaddress = "224.0.0.0";
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+
+ Assert.AreEqual("224.0.0.0/24", ipnetwork.ToString(), "Network");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask5.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask5()
+ {
+ string ipaddress = "240.0.0.0";
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ Assert.AreEqual("240.0.0.0/24", ipnetwork.ToString(), "Network");
+ }
+
+ ///
+ /// Tests Parse functionality with Parse IPAddress No Netmask127001.
+ ///
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask127001()
+ {
+ string ipaddress = "127.0.0.1";
+ IPNetwork2 result = null;
+ IPNetwork2.TryParse(ipaddress, out result);
+ Assert.AreEqual(result.Cidr, 8);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseStringAe1()
+ {
+ string ipaddress = "garbage";
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseStringAe2()
+ {
+ string ipaddress = "0.0.0.0 0.0.1.0";
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringAne1()
+ {
+ string ipaddress = null;
+ var ipnetwork = IPNetwork2.Parse(ipaddress);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkPrintTests.cs b/src/TestProject/IPNetworkTest/IPNetworkPrintTests.cs
new file mode 100644
index 00000000..37397ece
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkPrintTests.cs
@@ -0,0 +1,52 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkPrintTests
+{
+ ///
+ /// Tests Print functionality.
+ ///
+ [TestMethod]
+ public void Print()
+ {
+ var ipn = IPNetwork2.Parse("0.0.0.0/0");
+ string print = ipn.Print().Replace("\r", string.Empty);
+ string expected = @"IPNetwork : 0.0.0.0/0
+Network : 0.0.0.0
+Netmask : 0.0.0.0
+Cidr : 0
+Broadcast : 255.255.255.255
+FirstUsable : 0.0.0.1
+LastUsable : 255.255.255.254
+Usable : 4294967294
+".Replace("\r", string.Empty);
+
+ Assert.AreEqual(expected, print, "Print");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void PrintNull()
+ {
+ IPNetwork2 ipn = null;
+#pragma warning disable 0618
+ string print = IPNetwork2.Print(ipn);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests Print functionality.
+ ///
+ [TestMethod]
+ public void PrintStatic()
+ {
+ IPNetwork2 ipn = IPNetwork2.IANA_ABLK_RESERVED1;
+#pragma warning disable 0618
+ string print = IPNetwork2.Print(ipn);
+#pragma warning restore 0618
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkResizeTests.cs b/src/TestProject/IPNetworkTest/IPNetworkResizeTests.cs
new file mode 100644
index 00000000..3761aa88
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkResizeTests.cs
@@ -0,0 +1,16 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkResizeTests
+{
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestResize1()
+ {
+ byte[] resut = IPNetwork2.Resize(new byte[33], AddressFamily.InterNetwork);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkSortTests.cs b/src/TestProject/IPNetworkTest/IPNetworkSortTests.cs
new file mode 100644
index 00000000..9cba5109
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkSortTests.cs
@@ -0,0 +1,55 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkSortTests
+{
+ ///
+ /// Tests Sort functionality with Sort1.
+ ///
+ [TestMethod]
+ public void TestSort1()
+ {
+ string[] ips = { "1.1.1.1", "255.255.255.255", "2.2.2.2", "0.0.0.0" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ ipns.Sort();
+ Assert.AreEqual("0.0.0.0/32", ipns[0].ToString(), "0");
+ Assert.AreEqual("1.1.1.1/32", ipns[1].ToString(), "1");
+ Assert.AreEqual("2.2.2.2/32", ipns[2].ToString(), "2");
+ Assert.AreEqual("255.255.255.255/32", ipns[3].ToString(), "3");
+ }
+
+ ///
+ /// Tests Sort functionality with Sort2.
+ ///
+ [TestMethod]
+ public void TestSort2()
+ {
+ string[] ips = { "0.0.0.100/32", "0.0.0.0/24" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ ipns.Sort();
+ Assert.AreEqual("0.0.0.0/24", ipns[0].ToString(), "0");
+ Assert.AreEqual("0.0.0.100/32", ipns[1].ToString(), "1");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkSubnetTests.cs b/src/TestProject/IPNetworkTest/IPNetworkSubnetTests.cs
new file mode 100644
index 00000000..cf874e3c
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkSubnetTests.cs
@@ -0,0 +1,208 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkSubnetTests
+{
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestSubnet1()
+ {
+ IPNetwork2 ipnetwork = null;
+ byte cidr = 9;
+
+#pragma warning disable 0618
+ IPNetworkCollection result = IPNetwork2.Subnet(ipnetwork, cidr);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet Static1.
+ ///
+ [TestMethod]
+ public void TestSubnetStatic1()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 9;
+
+#pragma warning disable 0618
+ IPNetworkCollection result = IPNetwork2.Subnet(ipnetwork, cidr);
+#pragma warning restore 0618
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestSubnet3()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 55;
+
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestSubnet4()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 1;
+
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet5.
+ ///
+ [TestMethod]
+ public void TestSubnet5()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 9;
+
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ Assert.AreEqual(2, subnets.Count, "count");
+ Assert.AreEqual("10.0.0.0/9", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("10.128.0.0/9", subnets[1].ToString(), "subnet2");
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet6.
+ ///
+ [TestMethod]
+ public void TestSubnet6()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
+ byte cidr = 20;
+
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ Assert.AreEqual(16, subnets.Count, "count");
+ Assert.AreEqual("192.168.0.0/20", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("192.168.16.0/20", subnets[1].ToString(), "subnet2");
+ Assert.AreEqual("192.168.32.0/20", subnets[2].ToString(), "subnet3");
+ Assert.AreEqual("192.168.48.0/20", subnets[3].ToString(), "subnet4");
+ Assert.AreEqual("192.168.64.0/20", subnets[4].ToString(), "subnet5");
+ Assert.AreEqual("192.168.80.0/20", subnets[5].ToString(), "subnet6");
+ Assert.AreEqual("192.168.96.0/20", subnets[6].ToString(), "subnet7");
+ Assert.AreEqual("192.168.112.0/20", subnets[7].ToString(), "subnet8");
+ Assert.AreEqual("192.168.128.0/20", subnets[8].ToString(), "subnet9");
+ Assert.AreEqual("192.168.144.0/20", subnets[9].ToString(), "subnet10");
+ Assert.AreEqual("192.168.160.0/20", subnets[10].ToString(), "subnet11");
+ Assert.AreEqual("192.168.176.0/20", subnets[11].ToString(), "subnet12");
+ Assert.AreEqual("192.168.192.0/20", subnets[12].ToString(), "subnet13");
+ Assert.AreEqual("192.168.208.0/20", subnets[13].ToString(), "subnet14");
+ Assert.AreEqual("192.168.224.0/20", subnets[14].ToString(), "subnet15");
+ Assert.AreEqual("192.168.240.0/20", subnets[15].ToString(), "subnet16");
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet7.
+ ///
+ [TestMethod]
+ public void TestSubnet7()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
+ byte cidr = 24;
+
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ Assert.AreEqual(256, subnets.Count, "count");
+ Assert.AreEqual("192.168.0.0/24", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("192.168.255.0/24", subnets[255].ToString(), "subnet16");
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet8.
+ ///
+ [TestMethod]
+ public void TestSubnet8()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
+ byte cidr = 24;
+
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ Assert.AreEqual(256, subnets.Count, "count");
+ Assert.AreEqual("192.168.0.0/24", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("192.168.255.0/24", subnets[255].ToString(), "subnet256");
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet9.
+ ///
+ [TestMethod]
+ public void TestSubnet9()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.0.0/24");
+ byte cidr = 32;
+
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ Assert.AreEqual(256, subnets.Count, "count");
+ Assert.AreEqual("192.168.0.0/32", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("192.168.0.255/32", subnets[255].ToString(), "subnet256");
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet_Example8.
+ ///
+ [TestMethod]
+ public void TestSubnet_Example8()
+ {
+ var wholeInternet = IPNetwork2.Parse("0.0.0.0/0");
+ byte newCidr = 2;
+ IPNetworkCollection subneted = wholeInternet.Subnet(newCidr);
+
+ Console.WriteLine("{0} was subnetted into {1} subnets", wholeInternet, subneted.Count);
+ Console.WriteLine("First: {0}", subneted[0]);
+ Console.WriteLine("Last : {0}", subneted[subneted.Count - 1]);
+ Console.WriteLine("All :");
+
+ foreach (IPNetwork2 ipnetwork in subneted)
+ {
+ Console.WriteLine("{0}", ipnetwork);
+ }
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet10.
+ ///
+ [TestMethod]
+ public void TestSubnet10()
+ {
+ var ipnetwork = IPNetwork2.Parse("0.0.0.0/0");
+ byte cidr = 32;
+
+ // Here I spawm a OOM dragon ! beware of the beast !
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ Assert.AreEqual(4294967296, subnets.Count, "count");
+ Assert.AreEqual("0.0.0.0/32", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("255.255.255.255/32", subnets[4294967295].ToString(), "subnet256");
+ }
+
+ ///
+ /// Tests Subnet functionality with Subnet12.
+ ///
+ [TestMethod]
+ public void TestSubnet12()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
+ byte cidr = 20;
+ int i = -1;
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ foreach (IPNetwork2 ipn in subnets)
+ {
+ i++;
+ Assert.AreEqual(subnets[i], ipn, "subnet");
+ }
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestSubnet13()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
+ byte cidr = 20;
+ IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
+ IPNetwork2 error = subnets[1000];
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkSupernetArrayTests.cs b/src/TestProject/IPNetworkTest/IPNetworkSupernetArrayTests.cs
new file mode 100644
index 00000000..2bb0d5a7
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkSupernetArrayTests.cs
@@ -0,0 +1,245 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkSupernetArrayTests
+{
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/24");
+ var ipnetwork2 = IPNetwork2.Parse("192.168.1.0/24");
+ var ipnetwork3 = IPNetwork2.Parse("192.168.2.0/24");
+ var ipnetwork4 = IPNetwork2.Parse("192.168.3.0/24");
+
+ IPNetwork2[] ipnetworks = { ipnetwork1, ipnetwork2, ipnetwork3, ipnetwork4 };
+ IPNetwork2[] expected = { IPNetwork2.Parse("192.168.0.0/22") };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], expected[0], "suppernet");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array1.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray1()
+ {
+ IPNetwork2[] ipnetworks = { };
+ IPNetwork2[] expected = { };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestTrySupernetArray2()
+ {
+ IPNetwork2[] ipnetworks = null;
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array3.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray3()
+ {
+ IPNetwork2 ipnetwork1 = null;
+ IPNetwork2 ipnetwork2 = null;
+ IPNetwork2 ipnetwork3 = null;
+ IPNetwork2 ipnetwork4 = null;
+
+ IPNetwork2[] ipnetworks = { ipnetwork1, ipnetwork2, ipnetwork3, ipnetwork4 };
+ IPNetwork2[] expected = { };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array4.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray4()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/24");
+ IPNetworkCollection subnetted = ipnetwork1.Subnet(32);
+ IPNetwork2[] ipnetworks = subnetted.ToArray();
+ Assert.AreEqual(256, ipnetworks.Length, "subnet");
+
+ IPNetwork2[] expected = { IPNetwork2.Parse("192.168.0.0/24") };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], ipnetwork1, "suppernet");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array5.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray5()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/16");
+ IPNetworkCollection subnetted = ipnetwork1.Subnet(24);
+ IPNetwork2[] ipnetworks = subnetted.ToArray();
+ Assert.AreEqual(256, ipnetworks.Length, "subnet");
+
+ IPNetwork2[] expected = { IPNetwork2.Parse("192.168.0.0/16") };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], ipnetwork1, "suppernet");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array6.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray6()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/8");
+ IPNetworkCollection subnetted = ipnetwork1.Subnet(24);
+ IPNetwork2[] ipnetworks = subnetted.ToArray();
+ Assert.AreEqual(65536, ipnetworks.Length, "subnet");
+
+ IPNetwork2[] expected = { IPNetwork2.Parse("192.0.0.0/8") };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], ipnetwork1, "suppernet");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array7.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray7()
+ {
+ IPNetwork2[] ipnetworks =
+ {
+ IPNetwork2.Parse("10.0.2.2/24"),
+ IPNetwork2.Parse("192.168.0.0/24"),
+ IPNetwork2.Parse("192.168.1.0/24"),
+ IPNetwork2.Parse("192.168.2.0/24"),
+ IPNetwork2.Parse("10.0.1.1/24"),
+ IPNetwork2.Parse("192.168.3.0/24")
+ };
+
+ IPNetwork2[] expected =
+ {
+ IPNetwork2.Parse("10.0.1.0/24"),
+ IPNetwork2.Parse("10.0.2.0/24"),
+ IPNetwork2.Parse("192.168.0/22")
+ };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], result[0], "suppernet");
+ Assert.AreEqual(expected[1], result[1], "suppernet1");
+ Assert.AreEqual(expected[2], result[2], "suppernet2");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array8.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray8()
+ {
+ IPNetwork2[] ipnetworks =
+ {
+ IPNetwork2.Parse("10.0.2.2/24"),
+ IPNetwork2.Parse("192.168.0.0/24"),
+ IPNetwork2.Parse("192.168.1.0/24"),
+ IPNetwork2.Parse("192.168.2.0/24"),
+ IPNetwork2.Parse("10.0.1.1/24"),
+ IPNetwork2.Parse("192.168.3.0/24"),
+ IPNetwork2.Parse("10.6.6.6/8")
+ };
+
+ IPNetwork2[] expected =
+ {
+ IPNetwork2.Parse("10.0.0.0/8"),
+ IPNetwork2.Parse("192.168.0/22")
+ };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], result[0], "suppernet");
+ Assert.AreEqual(expected[1], result[1], "suppernet1");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array9.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray9()
+ {
+ IPNetwork2[] ipnetworks =
+ {
+ IPNetwork2.Parse("10.0.2.2/24"),
+ IPNetwork2.Parse("192.168.0.0/24"),
+ IPNetwork2.Parse("192.168.1.0/24"),
+ IPNetwork2.Parse("192.168.2.0/24"),
+ IPNetwork2.Parse("10.0.1.1/24"),
+ IPNetwork2.Parse("192.168.3.0/24"),
+ IPNetwork2.Parse("10.6.6.6/8"),
+ IPNetwork2.Parse("11.6.6.6/8"),
+ IPNetwork2.Parse("12.6.6.6/8")
+ };
+
+ IPNetwork2[] expected =
+ {
+ IPNetwork2.Parse("10.0.0.0/7"),
+ IPNetwork2.Parse("12.0.0.0/8"),
+ IPNetwork2.Parse("192.168.0/22")
+ };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], result[0], "suppernet");
+ Assert.AreEqual(expected[1], result[1], "suppernet1");
+ Assert.AreEqual(expected[2], result[2], "suppernet2");
+ }
+
+ ///
+ /// Tests Supernet Array functionality with Try Supernet Array10.
+ ///
+ [TestMethod]
+ public void TestTrySupernetArray10()
+ {
+ IPNetwork2[] ipnetworks =
+ {
+ IPNetwork2.Parse("10.0.2.2/24"),
+ IPNetwork2.Parse("10.0.2.2/23")
+ };
+
+ IPNetwork2[] expected =
+ {
+ IPNetwork2.Parse("10.0.2.2/23")
+ };
+
+ IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
+
+ Assert.AreEqual(expected.Length, result.Length, "supernetarray");
+ Assert.AreEqual(expected[0], result[0], "suppernet");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkSupernetTests.cs b/src/TestProject/IPNetworkTest/IPNetworkSupernetTests.cs
new file mode 100644
index 00000000..04cd46f3
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkSupernetTests.cs
@@ -0,0 +1,206 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkSupernetTests
+{
+ ///
+ /// Tests Supernet functionality with Supernet Internal1.
+ ///
+ [TestMethod]
+ public void TestSupernetInternal1()
+ {
+ IPNetwork2 result;
+ IPNetwork2.InternalSupernet(true, null, null, out result);
+
+ Assert.AreEqual(null, result, "supernet");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestSupernetInternal2()
+ {
+ IPNetwork2 result;
+ IPNetwork2.InternalSupernet(false, null, null, out result);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void Issue33__TestSupernet__Bug_or_default_behavior()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.0/24");
+ var network2 = IPNetwork2.Parse("192.168.2.0/24");
+ var expected = IPNetwork2.Parse("192.168.0.0/23");
+ IPNetwork2 supernet = network1.Supernet(network2);
+
+ Assert.AreEqual(expected, supernet, "supernet");
+ }
+
+ ///
+ /// Tests Supernet functionality.
+ ///
+ [TestMethod]
+ public void Issue33__TestWideSubnet__Bug_or_default_behavior()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.0/24");
+ var network2 = IPNetwork2.Parse("192.168.2.0/24");
+ var expected = IPNetwork2.Parse("192.168.0.0/22");
+ var widenetwork = IPNetwork2.WideSubnet(new[] { network1, network2 });
+
+ Assert.AreEqual(expected, widenetwork, "widesubnet");
+ }
+
+ ///
+ /// Tests Supernet functionality.
+ ///
+ [TestMethod]
+ public void Issue162__Test_IPrangeToCIDRnotation()
+ {
+ string network1 = "172.64.0.0";
+ string network2 = "172.71.255.255";
+
+ var final = IPNetwork2.WideSubnet(network1, network2);
+ string result = final.ToString();
+
+ string expected = "172.64.0.0/13";
+ Assert.AreEqual(expected, result, "Supernet");
+ }
+
+ ///
+ /// Tests Supernet functionality with Supernet1.
+ ///
+ [TestMethod]
+ public void TestSupernet1()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.1.1/24");
+ var expected = IPNetwork2.Parse("192.168.0.0/23");
+ IPNetwork2 supernet = network1.Supernet(network2);
+
+ Assert.AreEqual(expected, supernet, "supernet");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(NullReferenceException))]
+ public void TestSupernet2()
+ {
+ IPNetwork2 network1 = null;
+ var network2 = IPNetwork2.Parse("192.168.1.1/24");
+ IPNetwork2 supernet = network1.Supernet(network2);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestSupernet3()
+ {
+ var network1 = IPNetwork2.Parse("192.168.1.1/24");
+ IPNetwork2 network2 = null;
+ IPNetwork2 supernet = network1.Supernet(network2);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestSupernet4()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.1.1/25");
+ IPNetwork2 supernet = network1.Supernet(network2);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestSupernet5()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.5.1/24");
+ IPNetwork2 supernet = network1.Supernet(network2);
+ }
+
+ ///
+ /// Tests Supernet functionality with Supernet6.
+ ///
+ [TestMethod]
+ public void TestSupernet6()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.0.1/25");
+ var expected = IPNetwork2.Parse("192.168.0.0/24");
+ IPNetwork2 supernet = network1.Supernet(network2);
+
+ Assert.AreEqual(expected, supernet, "supernet");
+ }
+
+ ///
+ /// Tests Supernet functionality with Supernet7.
+ ///
+ [TestMethod]
+ public void TestSupernet7()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/25");
+ var network2 = IPNetwork2.Parse("192.168.0.1/24");
+ var expected = IPNetwork2.Parse("192.168.0.0/24");
+ IPNetwork2 supernet = network1.Supernet(network2);
+
+ Assert.AreEqual(expected, supernet, "supernet");
+ }
+
+ ///
+ /// Tests Supernet functionality with Supernet Static1.
+ ///
+ [TestMethod]
+ public void TestSupernetStatic1()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/25");
+ var network2 = IPNetwork2.Parse("192.168.0.1/24");
+ var expected = IPNetwork2.Parse("192.168.0.0/24");
+#pragma warning disable CS0618 // Type or member is obsolete
+ var supernet = IPNetwork2.Supernet(network1, network2);
+#pragma warning restore CS0618 // Type or member is obsolete
+
+ Assert.AreEqual(expected, supernet, "supernet");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestSupernet8()
+ {
+ var network1 = IPNetwork2.Parse("192.168.1.1/24");
+ var network2 = IPNetwork2.Parse("192.168.2.1/24");
+ IPNetwork2 supernet = network1.Supernet(network2);
+ }
+
+ ///
+ /// Tests Supernet functionality with Supernet9.
+ ///
+ [TestMethod]
+ public void TestSupernet9()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("200.16.0.0/24");
+ var ipnetwork2 = IPNetwork2.Parse("200.16.1.0/24");
+ var ipnetwork3 = IPNetwork2.Parse("200.16.2.0/24");
+ var ipnetwork4 = IPNetwork2.Parse("200.16.3.0/24");
+
+ IPNetwork2 result = IPNetwork2.Supernet(new[] { ipnetwork1, ipnetwork2, ipnetwork3, ipnetwork4 })[0];
+ var expected = IPNetwork2.Parse("200.16.0.0/22");
+
+ Assert.AreEqual(expected, result, "supernet");
+ }
+
+ ///
+ /// Tests Supernet functionality with Supernet10.
+ ///
+ [TestMethod]
+ public void TestSupernet10()
+ {
+ var ipnetwork1 = IPNetwork2.Parse("1.1.0.0/24");
+ var ipnetwork2 = IPNetwork2.Parse("1.2.1.0/24");
+
+ IPNetwork2 result = IPNetwork2.Supernet(new[] { ipnetwork1, ipnetwork2 })[0];
+ var expected = IPNetwork2.Parse("1.1.0.0/24");
+
+ Assert.AreEqual(expected, result, "supernet");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkToBigIntegerTests.cs b/src/TestProject/IPNetworkTest/IPNetworkToBigIntegerTests.cs
new file mode 100644
index 00000000..838fcda1
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkToBigIntegerTests.cs
@@ -0,0 +1,178 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkToBigIntegerTests
+{
+ ///
+ /// Tests To Big Integer functionality with To Big Integer32.
+ ///
+ [TestMethod]
+ public void TestToBigInteger32()
+ {
+ var mask = IPAddress.Parse("255.255.255.255");
+ uint uintMask = 0xffffffff;
+ var result = IPNetwork2.ToBigInteger(mask);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer24.
+ ///
+ [TestMethod]
+ public void TestToBigInteger24()
+ {
+ var mask = IPAddress.Parse("255.255.255.0");
+ uint uintMask = 0xffffff00;
+ BigInteger? result = IPNetwork2.ToBigInteger(mask);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer16.
+ ///
+ [TestMethod]
+ public void TestToBigInteger16()
+ {
+ var mask = IPAddress.Parse("255.255.0.0");
+ uint uintMask = 0xffff0000;
+ BigInteger? result = IPNetwork2.ToBigInteger(mask);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer8.
+ ///
+ [TestMethod]
+ public void TestToBigInteger8()
+ {
+ var mask = IPAddress.Parse("255.0.0.0");
+ uint uintMask = 0xff000000;
+ BigInteger? result = IPNetwork2.ToBigInteger(mask);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer0.
+ ///
+ [TestMethod]
+ public void TestToBigInteger0()
+ {
+ var mask = IPAddress.Parse("0.0.0.0");
+ uint uintMask = 0x00000000;
+ BigInteger? result = IPNetwork2.ToBigInteger(mask);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestToBigIntegerAne()
+ {
+ BigInteger? result = IPNetwork2.ToBigInteger(null);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestToBigIntegerAne3()
+ {
+ IPAddress ip = null;
+ BigInteger? result = IPNetwork2.ToBigInteger(ip);
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer ANE2.
+ ///
+ [TestMethod]
+ public void TestToBigIntegerAne2()
+ {
+ BigInteger? result = IPNetwork2.ToBigInteger(IPAddress.IPv6Any);
+ uint expected = 0;
+ Assert.AreEqual(expected, result, "result");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestToBigIntegerByte()
+ {
+ BigInteger result = IPNetwork2.ToUint(33, AddressFamily.InterNetwork);
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer Byte2.
+ ///
+ [TestMethod]
+ public void TestToBigIntegerByte2()
+ {
+ BigInteger result = IPNetwork2.ToUint(32, AddressFamily.InterNetwork);
+ uint expected = 4294967295;
+ Assert.AreEqual(expected, result, "result");
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer Byte3.
+ ///
+ [TestMethod]
+ public void TestToBigIntegerByte3()
+ {
+ BigInteger result = IPNetwork2.ToUint(0, AddressFamily.InterNetwork);
+ uint expected = 0;
+ Assert.AreEqual(expected, result, "result");
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer Internal1.
+ ///
+ [TestMethod]
+ public void TestToBigIntegerInternal1()
+ {
+ BigInteger? result = null;
+ IPNetwork2.InternalToBigInteger(true, 33, AddressFamily.InterNetwork, out result);
+ Assert.AreEqual(null, result, "result");
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer Internal2.
+ ///
+ [TestMethod]
+ public void TestToBigIntegerInternal2()
+ {
+ BigInteger? result = null;
+ IPNetwork2.InternalToBigInteger(true, 129, AddressFamily.InterNetworkV6, out result);
+ Assert.AreEqual(null, result, "result");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestToBigIntegerInternal3()
+ {
+ BigInteger? result = null;
+ IPNetwork2.InternalToBigInteger(false, 129, AddressFamily.InterNetworkV6, out result);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(NotSupportedException))]
+ public void TestToBigIntegerInternal4()
+ {
+ BigInteger? result = null;
+ IPNetwork2.InternalToBigInteger(false, 32, AddressFamily.AppleTalk, out result);
+ }
+
+ ///
+ /// Tests To Big Integer functionality with To Big Integer Internal5.
+ ///
+ [TestMethod]
+ public void TestToBigIntegerInternal5()
+ {
+ BigInteger? result = null;
+ IPNetwork2.InternalToBigInteger(true, 32, AddressFamily.AppleTalk, out result);
+ Assert.AreEqual(null, result, "result");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkToCidrTests.cs b/src/TestProject/IPNetworkTest/IPNetworkToCidrTests.cs
new file mode 100644
index 00000000..38ecd0c0
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkToCidrTests.cs
@@ -0,0 +1,98 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkToCidrTests
+{
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestToCidrAne()
+ {
+ IPNetwork2.ToCidr(null);
+ }
+
+ ///
+ /// Tests To Cidr functionality with To Cidr AE.
+ ///
+ [TestMethod]
+ public void TestToCidrAe()
+ {
+ byte cidr = IPNetwork2.ToCidr(IPAddress.IPv6Any);
+ Assert.AreEqual(0, cidr, "cidr");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestToCidrAe2()
+ {
+ IPNetwork2.ToCidr(IPAddress.Parse("6.6.6.6"));
+ }
+
+ ///
+ /// Tests To Cidr functionality with To Cidr32.
+ ///
+ [TestMethod]
+ public void TestToCidr32()
+ {
+ var mask = IPAddress.Parse("255.255.255.255");
+ byte cidr = 32;
+ int result = IPNetwork2.ToCidr(mask);
+
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests To Cidr functionality with To Cidr24.
+ ///
+ [TestMethod]
+ public void TestToCidr24()
+ {
+ var mask = IPAddress.Parse("255.255.255.0");
+ byte cidr = 24;
+ int result = IPNetwork2.ToCidr(mask);
+
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests To Cidr functionality with To Cidr16.
+ ///
+ [TestMethod]
+ public void TestToCidr16()
+ {
+ var mask = IPAddress.Parse("255.255.0.0");
+ byte cidr = 16;
+ int result = IPNetwork2.ToCidr(mask);
+
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests To Cidr functionality with To Cidr8.
+ ///
+ [TestMethod]
+ public void TestToCidr8()
+ {
+ var mask = IPAddress.Parse("255.0.0.0");
+ byte cidr = 8;
+ int result = IPNetwork2.ToCidr(mask);
+
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests To Cidr functionality with To Cidr0.
+ ///
+ [TestMethod]
+ public void TestToCidr0()
+ {
+ var mask = IPAddress.Parse("0.0.0.0");
+ byte cidr = 0;
+ int result = IPNetwork2.ToCidr(mask);
+
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkToIPAddressTests.cs b/src/TestProject/IPNetworkTest/IPNetworkToIPAddressTests.cs
new file mode 100644
index 00000000..dab4d83a
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkToIPAddressTests.cs
@@ -0,0 +1,47 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkToIPAddressTests
+{
+ ///
+ /// Tests To IPAddress functionality with To IPAddress.
+ ///
+ [TestMethod]
+ public void TestToIPAddress()
+ {
+ var ip = new BigInteger(0);
+ var result = IPNetwork2.ToIPAddress(ip, AddressFamily.InterNetwork);
+ Assert.AreEqual(IPAddress.Any, result, "ToIPAddress");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestToIPAddress2()
+ {
+ var ip = new BigInteger(0);
+ var result = IPNetwork2.ToIPAddress(ip, AddressFamily.AppleTalk);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestToIPAddress3()
+ {
+ var ip = new BigInteger(new byte[]
+ {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+ });
+ var result = IPNetwork2.ToIPAddress(ip, AddressFamily.AppleTalk);
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkToNetmaskTests.cs b/src/TestProject/IPNetworkTest/IPNetworkToNetmaskTests.cs
new file mode 100644
index 00000000..26a797e6
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkToNetmaskTests.cs
@@ -0,0 +1,123 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkToNetmaskTests
+{
+ ///
+ /// Tests To Netmask functionality with a /32 network.
+ ///
+ [TestMethod]
+ public void ToNetmask32()
+ {
+ byte cidr = 32;
+ string netmask = "255.255.255.255";
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+
+ Assert.AreEqual(netmask, result, "netmask");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void ToNetmaskNonInet()
+ {
+ byte cidr = 0;
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.AppleTalk).ToString();
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void ToNetmaskNegative()
+ {
+ byte cidr = 0;
+ cidr--;
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+ }
+
+ ///
+ /// Tests To Netmask functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void ToNetmaskInternal1()
+ {
+ IPAddress result;
+ IPNetwork2.InternalToNetmask(true, 0, AddressFamily.AppleTalk, out result);
+ Assert.AreEqual(null, result);
+ }
+
+ ///
+ /// Tests To Netmask functionality with a /31 network.
+ ///
+ [TestMethod]
+ public void ToNetmask31()
+ {
+ byte cidr = 31;
+ string netmask = "255.255.255.254";
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+
+ Assert.AreEqual(netmask, result, "netmask");
+ }
+
+ ///
+ /// Tests To Netmask functionality with a /30 network.
+ ///
+ [TestMethod]
+ public void ToNetmask30()
+ {
+ byte cidr = 30;
+ string netmask = "255.255.255.252";
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+
+ Assert.AreEqual(netmask, result, "netmask");
+ }
+
+ ///
+ /// Tests To Netmask functionality with a /29 network.
+ ///
+ [TestMethod]
+ public void ToNetmask29()
+ {
+ byte cidr = 29;
+ string netmask = "255.255.255.248";
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+
+ Assert.AreEqual(netmask, result, "netmask");
+ }
+
+ ///
+ /// Tests To Netmask functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void ToNetmask1()
+ {
+ byte cidr = 1;
+ string netmask = "128.0.0.0";
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+
+ Assert.AreEqual(netmask, result, "netmask");
+ }
+
+ ///
+ /// Tests To Netmask functionality with a /0 network.
+ ///
+ [TestMethod]
+ public void ToNetmask0()
+ {
+ byte cidr = 0;
+ string netmask = "0.0.0.0";
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+
+ Assert.AreEqual(netmask, result, "netmask");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void ToNetmaskOore1()
+ {
+ byte cidr = 33;
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetwork).ToString();
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkToStringTests.cs b/src/TestProject/IPNetworkTest/IPNetworkToStringTests.cs
new file mode 100644
index 00000000..0298360d
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkToStringTests.cs
@@ -0,0 +1,126 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkToStringTests
+{
+ ///
+ /// Tests To String functionality with To String.
+ ///
+ [TestMethod]
+ public void TestToString()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/8");
+ string expected = "192.0.0.0/8";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String1.
+ ///
+ [TestMethod]
+ public void TestToString1()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/9");
+ string expected = "192.128.0.0/9";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String2.
+ ///
+ [TestMethod]
+ public void TestToString2()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/10");
+ string expected = "192.128.0.0/10";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String3.
+ ///
+ [TestMethod]
+ public void TestToString3()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/11");
+ string expected = "192.160.0.0/11";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String4.
+ ///
+ [TestMethod]
+ public void TestToString4()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/12");
+ string expected = "192.160.0.0/12";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String5.
+ ///
+ [TestMethod]
+ public void TestToString5()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/13");
+ string expected = "192.168.0.0/13";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String6.
+ ///
+ [TestMethod]
+ public void TestToString6()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/14");
+ string expected = "192.168.0.0/14";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String7.
+ ///
+ [TestMethod]
+ public void TestToString7()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/15");
+ string expected = "192.168.0.0/15";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+
+ ///
+ /// Tests To String functionality with To String8.
+ ///
+ [TestMethod]
+ public void TestToString8()
+ {
+ var ipnetwork = IPNetwork2.Parse("192.168.15.1/16");
+ string expected = "192.168.0.0/16";
+ string result = ipnetwork.ToString();
+
+ Assert.AreEqual(expected, result, "ToString");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryGuessCidrTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryGuessCidrTests.cs
new file mode 100644
index 00000000..92885841
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryGuessCidrTests.cs
@@ -0,0 +1,87 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryGuessCidrTests
+{
+ ///
+ /// Tests Try Guess Cidr functionality with Try Guess Cidr Null.
+ ///
+ [TestMethod]
+ public void TestTryGuessCidrNull()
+ {
+ byte cidr;
+ bool parsed = IPNetwork2.TryGuessCidr(null, out cidr);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(0, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try Guess Cidr functionality with Try Guess Cidr A.
+ ///
+ [TestMethod]
+ public void TestTryGuessCidrA()
+ {
+ byte cidr;
+ bool parsed = IPNetwork2.TryGuessCidr("10.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(8, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try Guess Cidr functionality with Try Guess Cidr B.
+ ///
+ [TestMethod]
+ public void TestTryGuessCidrB()
+ {
+ byte cidr;
+ bool parsed = IPNetwork2.TryGuessCidr("172.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(16, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try Guess Cidr functionality with Try Guess Cidr C.
+ ///
+ [TestMethod]
+ public void TestTryGuessCidrC()
+ {
+ byte cidr;
+ bool parsed = IPNetwork2.TryGuessCidr("192.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(24, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try Guess Cidr functionality with Try Guess Cidr D.
+ ///
+ [TestMethod]
+ public void TestTryGuessCidrD()
+ {
+ byte cidr;
+ bool parsed = IPNetwork2.TryGuessCidr("224.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(24, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try Guess Cidr functionality with Try Guess Cidr E.
+ ///
+ [TestMethod]
+ public void TestTryGuessCidrE()
+ {
+ byte cidr;
+ bool parsed = IPNetwork2.TryGuessCidr("240.0.0.0", out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(24, cidr, "cidr");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryParseCidrTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryParseCidrTests.cs
new file mode 100644
index 00000000..bbac6c70
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryParseCidrTests.cs
@@ -0,0 +1,56 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryParseCidrTests
+{
+ ///
+ /// Tests Try Parse Cidr functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void TryParseCidr1()
+ {
+ string sidr = "0";
+ byte? cidr;
+ byte? result = 0;
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetwork, out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(result, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try Parse Cidr functionality with a /2 network.
+ ///
+ [TestMethod]
+ public void TryParseCidr2()
+ {
+ string sidr = "sadsd";
+ byte? cidr;
+ byte? result = null;
+
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetwork, out cidr);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(result, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try Parse Cidr functionality with a /3 network.
+ ///
+ [TestMethod]
+ public void TryParseCidr3()
+ {
+ string sidr = "33";
+ byte? cidr;
+ byte? result = null;
+
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetwork, out cidr);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(result, cidr, "cidr");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryParseTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryParseTests.cs
new file mode 100644
index 00000000..690c7d9e
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryParseTests.cs
@@ -0,0 +1,344 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryParseTests
+{
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE2.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne2()
+ {
+ IPNetwork2 ipnet = null;
+ IPAddress ip = null;
+ bool parsed = IPNetwork2.TryParse(ip, ip, out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE3.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne3()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse(string.Empty, 0, out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE4.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne4()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse(null, 0, out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE5.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne5()
+ {
+ string n = null;
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse(n, n, out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE6.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne6()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse(IPAddress.Parse("10.10.10.10"), null, out ipnet);
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE7.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne7()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse("0.0.0.0", null, out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE8.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne8()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse("x.x.x.x", "x.x.x.x", out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE9.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne9()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse("0.0.0.0", "x.x.x.x", out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE10.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne10()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse("x.x.x.x", 0, out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask ANE11.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmaskAne11()
+ {
+ IPNetwork2 ipnet = null;
+ bool parsed = IPNetwork2.TryParse("0.0.0.0", 33, out ipnet);
+
+ Assert.AreEqual(false, parsed, "parsed");
+ Assert.AreEqual(null, ipnet, "ipnet");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse IPAddress Netmask.
+ ///
+ [TestMethod]
+ public void TestTryParseIPAddressNetmask()
+ {
+ IPNetwork2 ipnetwork = null;
+ string ipaddress = "192.168.168.100";
+ string netmask = "255.255.255.0";
+
+ string network = "192.168.168.0";
+ string broadcast = "192.168.168.255";
+ string firstUsable = "192.168.168.1";
+ string lastUsable = "192.168.168.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ bool parsed = IPNetwork2.TryParse(ipaddress, netmask, out ipnetwork);
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String1.
+ ///
+ [TestMethod]
+ public void TestTryParseString1()
+ {
+ IPNetwork2 ipnetwork = null;
+ string ipaddress = "192.168.168.100 255.255.255.0";
+
+ string network = "192.168.168.0";
+ string netmask = "255.255.255.0";
+ string broadcast = "192.168.168.255";
+ string firstUsable = "192.168.168.1";
+ string lastUsable = "192.168.168.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String2.
+ ///
+ [TestMethod]
+ public void TestTryParseString2()
+ {
+ IPNetwork2 ipnetwork = null;
+ string ipaddress = "192.168.168.100/24";
+
+ string network = "192.168.168.0";
+ string netmask = "255.255.255.0";
+ string broadcast = "192.168.168.255";
+ string firstUsable = "192.168.168.1";
+ string lastUsable = "192.168.168.254";
+ byte cidr = 24;
+ uint usable = 254;
+
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String3.
+ ///
+ [TestMethod]
+ public void TestTryParseString3()
+ {
+ IPNetwork2 ipnetwork = null;
+ string ipaddress = "0.0.0.0/0";
+
+ string network = "0.0.0.0";
+ string netmask = "0.0.0.0";
+ string broadcast = "255.255.255.255";
+ string firstUsable = "0.0.0.1";
+ string lastUsable = "255.255.255.254";
+ byte cidr = 0;
+ uint usable = 4294967294;
+
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String4.
+ ///
+ [TestMethod]
+ public void TestTryParseString4()
+ {
+ IPNetwork2 ipnetwork = null;
+ string ipaddress = "0.0.0.0/32";
+
+ string network = "0.0.0.0";
+ string netmask = "255.255.255.255";
+ string broadcast = "0.0.0.0";
+ string firstUsable = "0.0.0.0";
+ string lastUsable = "0.0.0.0";
+ byte cidr = 32;
+ uint usable = 0;
+
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String5.
+ ///
+ [TestMethod]
+ public void TestTryParseString5()
+ {
+ IPNetwork2 ipnetwork = null;
+ string ipaddress = "255.255.255.255/32";
+
+ string network = "255.255.255.255";
+ string netmask = "255.255.255.255";
+ string broadcast = "255.255.255.255";
+ string firstUsable = "255.255.255.255";
+ string lastUsable = "255.255.255.255";
+ byte cidr = 32;
+ uint usable = 0;
+
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
+ Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
+ Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
+ Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
+ Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
+ Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
+ Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String AE1.
+ ///
+ [TestMethod]
+ public void TestTryParseStringAe1()
+ {
+ string ipaddress = "garbage";
+ IPNetwork2 ipnetwork = null;
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String AE2.
+ ///
+ [TestMethod]
+ public void TestTryParseStringAe2()
+ {
+ string ipaddress = "0.0.0.0 0.0.1.0";
+ IPNetwork2 ipnetwork = null;
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try Parse functionality with Try Parse String ANE1.
+ ///
+ [TestMethod]
+ public void TestTryParseStringAne1()
+ {
+ string ipaddress = null;
+ IPNetwork2 ipnetwork = null;
+ bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTrySubnetTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTrySubnetTests.cs
new file mode 100644
index 00000000..54fb3414
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTrySubnetTests.cs
@@ -0,0 +1,136 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTrySubnetTests
+{
+ ///
+ /// Tests Try Subnet functionality with Internal Subnet1.
+ ///
+ [TestMethod]
+ public void TestInternalSubnet1()
+ {
+ IPNetworkCollection subnets = null;
+ IPNetwork2.InternalSubnet(true, null, 0, out subnets);
+ Assert.AreEqual(null, subnets, "subnets");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestInternalSubnet2()
+ {
+ IPNetworkCollection subnets = null;
+ IPNetwork2.InternalSubnet(false, null, 0, out subnets);
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestTrySubnet1()
+ {
+ IPNetwork2 ipnetwork = null;
+ byte cidr = 9;
+
+ IPNetworkCollection subnets = null;
+#pragma warning disable 0618
+ bool subnetted = IPNetwork2.TrySubnet(ipnetwork, cidr, out subnets);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests Try Subnet functionality with Try Subnet Static1.
+ ///
+ [TestMethod]
+ public void TestTrySubnetStatic1()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 9;
+
+ IPNetworkCollection subnets = null;
+#pragma warning disable 0618
+ bool subnetted = IPNetwork2.TrySubnet(ipnetwork, cidr, out subnets);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests Try Subnet functionality with Try Subnet3.
+ ///
+ [TestMethod]
+ public void TestTrySubnet3()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 55;
+
+ IPNetworkCollection subnets = null;
+ bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
+
+ Assert.AreEqual(false, subnetted, "subnetted");
+ }
+
+ ///
+ /// Tests Try Subnet functionality with Try Subnet4.
+ ///
+ [TestMethod]
+ public void TestTrySubnet4()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 1;
+
+ IPNetworkCollection subnets = null;
+ bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
+
+ Assert.AreEqual(false, subnetted, "subnetted");
+ }
+
+ ///
+ /// Tests Try Subnet functionality with Try Subnet5.
+ ///
+ [TestMethod]
+ public void TestTrySubnet5()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
+ byte cidr = 9;
+
+ IPNetworkCollection subnets = null;
+ bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
+
+ Assert.AreEqual(true, subnetted, "subnetted");
+ Assert.AreEqual(2, subnets.Count, "count");
+ Assert.AreEqual("10.0.0.0/9", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("10.128.0.0/9", subnets[1].ToString(), "subnet2");
+ }
+
+ ///
+ /// Tests Try Subnet functionality with Try Subnet6.
+ ///
+ [TestMethod]
+ public void TestTrySubnet6()
+ {
+ IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
+ byte cidr = 20;
+
+ IPNetworkCollection subnets = null;
+ bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
+
+ Assert.AreEqual(true, subnetted, "subnetted");
+ Assert.AreEqual(16, subnets.Count, "count");
+ Assert.AreEqual("192.168.0.0/20", subnets[0].ToString(), "subnet1");
+ Assert.AreEqual("192.168.16.0/20", subnets[1].ToString(), "subnet2");
+ Assert.AreEqual("192.168.32.0/20", subnets[2].ToString(), "subnet3");
+ Assert.AreEqual("192.168.48.0/20", subnets[3].ToString(), "subnet4");
+ Assert.AreEqual("192.168.64.0/20", subnets[4].ToString(), "subnet5");
+ Assert.AreEqual("192.168.80.0/20", subnets[5].ToString(), "subnet6");
+ Assert.AreEqual("192.168.96.0/20", subnets[6].ToString(), "subnet7");
+ Assert.AreEqual("192.168.112.0/20", subnets[7].ToString(), "subnet8");
+ Assert.AreEqual("192.168.128.0/20", subnets[8].ToString(), "subnet9");
+ Assert.AreEqual("192.168.144.0/20", subnets[9].ToString(), "subnet10");
+ Assert.AreEqual("192.168.160.0/20", subnets[10].ToString(), "subnet11");
+ Assert.AreEqual("192.168.176.0/20", subnets[11].ToString(), "subnet12");
+ Assert.AreEqual("192.168.192.0/20", subnets[12].ToString(), "subnet13");
+ Assert.AreEqual("192.168.208.0/20", subnets[13].ToString(), "subnet14");
+ Assert.AreEqual("192.168.224.0/20", subnets[14].ToString(), "subnet15");
+ Assert.AreEqual("192.168.240.0/20", subnets[15].ToString(), "subnet16");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTrySupernetTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTrySupernetTests.cs
new file mode 100644
index 00000000..0ff0df83
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTrySupernetTests.cs
@@ -0,0 +1,209 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTrySupernetTests
+{
+ ///
+ /// Tests Try Supernet functionality with Try Supernet1.
+ ///
+ [TestMethod]
+ public void TestTrySupernet1()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.1.1/24");
+ var supernetExpected = IPNetwork2.Parse("192.168.0.0/23");
+ IPNetwork2 supernet;
+ bool parsed = true;
+ bool result = network1.TrySupernet(network2, out supernet);
+
+ Assert.AreEqual(supernetExpected, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestTrySupernet2()
+ {
+ IPNetwork2 network1 = null;
+ var network2 = IPNetwork2.Parse("192.168.1.1/24");
+ IPNetwork2 supernet;
+
+#pragma warning disable 0618
+ bool result = IPNetwork2.TrySupernet(network1, network2, out supernet);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet Static2.
+ ///
+ [TestMethod]
+ public void TestTrySupernetStatic2()
+ {
+ IPNetwork2 network1 = IPNetwork2.IANA_ABLK_RESERVED1;
+ var network2 = IPNetwork2.Parse("192.168.1.1/24");
+ IPNetwork2 supernet;
+
+#pragma warning disable 0618
+ bool result = IPNetwork2.TrySupernet(network1, network2, out supernet);
+#pragma warning restore 0618
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet3.
+ ///
+ [TestMethod]
+ public void TestTrySupernet3()
+ {
+ var network1 = IPNetwork2.Parse("192.168.1.1/24");
+ IPNetwork2 network2 = null;
+ IPNetwork2 supernetExpected = null;
+ IPNetwork2 supernet;
+ bool parsed = false;
+ bool result = network1.TrySupernet(network2, out supernet);
+
+ Assert.AreEqual(supernetExpected, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet4.
+ ///
+ [TestMethod]
+ public void TestTrySupernet4()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.1.1/25");
+ IPNetwork2 supernetExpected = null;
+ IPNetwork2 supernet;
+ bool parsed = false;
+ bool result = network1.TrySupernet(network2, out supernet);
+
+ Assert.AreEqual(supernetExpected, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet5.
+ ///
+ [TestMethod]
+ public void TestTrySupernet5()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.5.1/24");
+ IPNetwork2 supernetExpected = null;
+ IPNetwork2 supernet;
+ bool parsed = false;
+ bool result = network1.TrySupernet(network2, out supernet);
+
+ Assert.AreEqual(supernetExpected, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet6.
+ ///
+ [TestMethod]
+ public void TestTrySupernet6()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.0.1/25");
+ var supernetExpected = IPNetwork2.Parse("192.168.0.0/24");
+ IPNetwork2 supernet;
+ bool parsed = true;
+ bool result = network1.TrySupernet(network2, out supernet);
+
+ Assert.AreEqual(supernetExpected, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet7.
+ ///
+ [TestMethod]
+ public void TestTrySupernet7()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/25");
+ var network2 = IPNetwork2.Parse("192.168.0.1/24");
+ var supernetExpected = IPNetwork2.Parse("192.168.0.0/24");
+ IPNetwork2 supernet;
+ bool parsed = true;
+ bool result = network1.TrySupernet(network2, out supernet);
+
+ Assert.AreEqual(supernetExpected, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet8.
+ ///
+ [TestMethod]
+ public void TestTrySupernet8()
+ {
+ var network1 = IPNetwork2.Parse("192.168.1.1/24");
+ var network2 = IPNetwork2.Parse("192.168.2.1/24");
+ IPNetwork2 supernetExpected = null;
+ IPNetwork2 supernet;
+ bool parsed = false;
+ bool result = network1.TrySupernet(network2, out supernet);
+
+ Assert.AreEqual(supernetExpected, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet9.
+ ///
+ [TestMethod]
+ public void TestTrySupernet9()
+ {
+ var network1 = IPNetwork2.Parse("192.168.1.1/24");
+ var network2 = IPNetwork2.Parse("192.168.2.1/24");
+ IPNetwork2[] network3 = { network1, network2 };
+ IPNetwork2[] supernetExpected = { network1, network2 };
+ IPNetwork2[] supernet;
+ bool parsed = true;
+ bool result = IPNetwork2.TrySupernet(network3, out supernet);
+
+ Assert.AreEqual(supernetExpected[0], supernet[0], "supernet");
+ Assert.AreEqual(supernetExpected[1], supernet[1], "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet10.
+ ///
+ [TestMethod]
+ public void TestTrySupernet10()
+ {
+ var network1 = IPNetwork2.Parse("192.168.0.1/24");
+ var network2 = IPNetwork2.Parse("192.168.1.1/24");
+ IPNetwork2[] network3 = { network1, network2 };
+ IPNetwork2[] supernetExpected = { IPNetwork2.Parse("192.168.0.0/23") };
+ IPNetwork2[] supernet;
+ bool parsed = true;
+ bool result = IPNetwork2.TrySupernet(network3, out supernet);
+
+ Assert.AreEqual(supernetExpected[0], supernet[0], "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+
+ ///
+ /// Tests Try Supernet functionality with Try Supernet11.
+ ///
+ [TestMethod]
+ public void TestTrySupernet11()
+ {
+ IPNetwork2[] network3 = null;
+ IPNetwork2[] supernetExpected = { IPNetwork2.Parse("192.168.0.0/23") };
+ IPNetwork2[] supernet;
+ bool parsed = false;
+ bool result = IPNetwork2.TrySupernet(network3, out supernet);
+
+ Assert.AreEqual(null, supernet, "supernet");
+ Assert.AreEqual(parsed, result, "parsed");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryToBigIntegerTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryToBigIntegerTests.cs
new file mode 100644
index 00000000..30587339
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryToBigIntegerTests.cs
@@ -0,0 +1,125 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryToBigIntegerTests
+{
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer32.
+ ///
+ [TestMethod]
+ public void TestTryToBigInteger32()
+ {
+ var mask = IPAddress.Parse("255.255.255.255");
+ uint uintMask = 0xffffffff;
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer24.
+ ///
+ [TestMethod]
+ public void TestTryToBigInteger24()
+ {
+ var mask = IPAddress.Parse("255.255.255.0");
+ uint uintMask = 0xffffff00;
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer16.
+ ///
+ [TestMethod]
+ public void TestTryToBigInteger16()
+ {
+ var mask = IPAddress.Parse("255.255.0.0");
+ uint uintMask = 0xffff0000;
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer8.
+ ///
+ [TestMethod]
+ public void TestTryToBigInteger8()
+ {
+ var mask = IPAddress.Parse("255.0.0.0");
+ uint uintMask = 0xff000000;
+
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer0.
+ ///
+ [TestMethod]
+ public void TestTryToBigInteger0()
+ {
+ var mask = IPAddress.Parse("0.0.0.0");
+ uint uintMask = 0x00000000;
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
+
+ Assert.AreEqual(uintMask, result, "uint");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer ANE.
+ ///
+ [TestMethod]
+ public void TestTryToBigIntegerAne()
+ {
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(null, out result);
+
+ Assert.AreEqual(null, result, "uint");
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer ANE3.
+ ///
+ [TestMethod]
+ public void TestTryToBigIntegerAne3()
+ {
+ IPAddress ip = null;
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(ip, out result);
+
+ Assert.AreEqual(null, result, "uint");
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Big Integer functionality with Try To Big Integer ANE2.
+ ///
+ [TestMethod]
+ public void TestTryToBigIntegerAne2()
+ {
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToBigInteger(IPAddress.IPv6Any, out result);
+
+ Assert.AreEqual(0, result, "result");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryToCidrTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryToCidrTests.cs
new file mode 100644
index 00000000..2b51b02e
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryToCidrTests.cs
@@ -0,0 +1,118 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryToCidrTests
+{
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr ANE.
+ ///
+ [TestMethod]
+ public void TestTryToCidrAne()
+ {
+ byte? cidr = null;
+ bool parsed = IPNetwork2.TryToCidr(null, out cidr);
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr AE.
+ ///
+ [TestMethod]
+ public void TestTryToCidrAe()
+ {
+ byte? cidr = null;
+ bool parsed = IPNetwork2.TryToCidr(IPAddress.IPv6Any, out cidr);
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual((byte)0, cidr, "cidr");
+ }
+
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr AE2.
+ ///
+ [TestMethod]
+ public void TestTryToCidrAe2()
+ {
+ byte? cidr = null;
+ bool parsed = IPNetwork2.TryToCidr(IPAddress.Parse("6.6.6.6"), out cidr);
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr32.
+ ///
+ [TestMethod]
+ public void TestTryToCidr32()
+ {
+ byte? cidr = null;
+ var mask = IPAddress.Parse("255.255.255.255");
+ byte result = 32;
+ bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr24.
+ ///
+ [TestMethod]
+ public void TestTryToCidr24()
+ {
+ byte? cidr = null;
+ var mask = IPAddress.Parse("255.255.255.0");
+ byte result = 24;
+ bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr16.
+ ///
+ [TestMethod]
+ public void TestTryToCidr16()
+ {
+ byte? cidr = null;
+ var mask = IPAddress.Parse("255.255.0.0");
+ byte result = 16;
+ bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr8.
+ ///
+ [TestMethod]
+ public void TestTryToCidr8()
+ {
+ byte? cidr = null;
+ var mask = IPAddress.Parse("255.0.0.0");
+ byte result = 8;
+ bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+
+ ///
+ /// Tests Try To Cidr functionality with Try To Cidr0.
+ ///
+ [TestMethod]
+ public void TestTryToCidr0()
+ {
+ byte? cidr = null;
+ var mask = IPAddress.Parse("0.0.0.0");
+ byte result = 0;
+ bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
+
+ Assert.AreEqual(true, parsed, "parsed");
+ Assert.AreEqual(cidr, result, "cidr");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryToNetmaskTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryToNetmaskTests.cs
new file mode 100644
index 00000000..b5ef7ba8
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryToNetmaskTests.cs
@@ -0,0 +1,37 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryToNetmaskTests
+{
+ ///
+ /// Tests Try To Netmask functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void TryToNetmask1()
+ {
+ IPAddress result = null;
+ bool parsed = IPNetwork2.TryToNetmask(0, AddressFamily.InterNetwork, out result);
+ var expected = IPAddress.Parse("0.0.0.0");
+
+ Assert.AreEqual(expected, result, "Netmask");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+
+ ///
+ /// Tests Try To Netmask functionality with a /2 network.
+ ///
+ [TestMethod]
+ public void TryToNetmask2()
+ {
+ IPAddress result = null;
+ bool parsed = IPNetwork2.TryToNetmask(33, AddressFamily.InterNetwork, out result);
+ IPAddress expected = null;
+
+ Assert.AreEqual(expected, result, "Netmask");
+ Assert.AreEqual(false, parsed, "parsed");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryToUintTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryToUintTests.cs
new file mode 100644
index 00000000..83503aba
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryToUintTests.cs
@@ -0,0 +1,22 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryToUintTests
+{
+ ///
+ /// Tests Try To Uint functionality with Try To Uint1.
+ ///
+ [TestMethod]
+ public void TestTryToUint1()
+ {
+ BigInteger? result = null;
+ bool parsed = IPNetwork2.TryToUint(32, AddressFamily.InterNetwork, out result);
+
+ Assert.IsNotNull(result, "uint");
+ Assert.AreEqual(true, parsed, "parsed");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkTryWideSubnetTests.cs b/src/TestProject/IPNetworkTest/IPNetworkTryWideSubnetTests.cs
new file mode 100644
index 00000000..27237fa7
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkTryWideSubnetTests.cs
@@ -0,0 +1,111 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkTryWideSubnetTests
+{
+ ///
+ /// Tests Try Wide Subnet functionality with a /1 network.
+ ///
+ [TestMethod]
+ public void TryWideSubnet1()
+ {
+ string[] ips = { "1.1.1.1", "255.255.255.255", "2.2.2.2", "0.0.0.0" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ IPNetwork2 ipnetwork = null;
+ bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
+ Assert.AreEqual(true, wide, "wide");
+ Assert.AreEqual("0.0.0.0/0", ipnetwork.ToString(), "ipnetwork");
+ }
+
+ ///
+ /// Tests Try Wide Subnet functionality with a /2 network.
+ ///
+ [TestMethod]
+ public void TryWideSubnet2()
+ {
+ string[] ips = { "1.1.1.1", "10.0.0.0", "2.2.2.2", "0.0.0.0" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ IPNetwork2 ipnetwork = null;
+ bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
+ Assert.AreEqual(true, wide, "wide");
+ Assert.AreEqual("0.0.0.0/4", ipnetwork.ToString(), "ipnetwork");
+ }
+
+ ///
+ /// Tests Try Wide Subnet functionality with a /3 network.
+ ///
+ [TestMethod]
+ public void TryWideSubnet3()
+ {
+ string[] ips = { "a", "b", "c", "d" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ IPNetwork2 ipnetwork = null;
+ bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
+ Assert.AreEqual(false, wide, "wide");
+ }
+
+ ///
+ /// Tests Try Wide Subnet functionality with a /4 network.
+ ///
+ [TestMethod]
+ public void TryWideSubnet4()
+ {
+ string[] ips = { "a", "b", "1.1.1.1", "d" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ IPNetwork2 ipnetwork = null;
+ bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
+ Assert.AreEqual(true, wide, "wide");
+ Assert.AreEqual("1.1.1.1/32", ipnetwork.ToString(), "ipnetwork");
+ }
+
+ ///
+ /// Tests Try Wide Subnet with null input to ensure proper null handling.
+ ///
+ [TestMethod]
+ public void TryWideSubnetNull()
+ {
+ IPNetwork2 ipnetwork = null;
+ bool wide = IPNetwork2.TryWideSubnet(null, out ipnetwork);
+ Assert.AreEqual(false, wide, "wide");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkUsableTests.cs b/src/TestProject/IPNetworkTest/IPNetworkUsableTests.cs
new file mode 100644
index 00000000..73272cbf
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkUsableTests.cs
@@ -0,0 +1,86 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkUsableTests
+{
+ ///
+ /// Tests Usable functionality with a /32 network.
+ ///
+ [TestMethod]
+ public void Usable32()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/32");
+ uint usable = 0;
+ Assert.AreEqual(usable, network.Usable, "Usable");
+ }
+
+ ///
+ /// Tests Usable functionality with a /31 network.
+ ///
+ [TestMethod]
+ public void Usable31()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/31");
+ uint usable = 0;
+ Assert.AreEqual(usable, network.Usable, "Usable");
+ }
+
+ ///
+ /// Tests Usable functionality with a /30 network.
+ ///
+ [TestMethod]
+ public void Usable30()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/30");
+ uint usable = 2;
+ Assert.AreEqual(usable, network.Usable, "Usable");
+ }
+
+ ///
+ /// Tests Usable functionality with a /24 network.
+ ///
+ [TestMethod]
+ public void Usable24()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/24");
+ uint usable = 254;
+ Assert.AreEqual(usable, network.Usable, "Usable");
+ }
+
+ ///
+ /// Tests Usable functionality with a /16 network.
+ ///
+ [TestMethod]
+ public void Usable16()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/16");
+ uint usable = 65534;
+ Assert.AreEqual(usable, network.Usable, "Usable");
+ }
+
+ ///
+ /// Tests Usable functionality with a /8 network.
+ ///
+ [TestMethod]
+ public void Usable8()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/8");
+ uint usable = 16777214;
+ Assert.AreEqual(usable, network.Usable, "Usable");
+ }
+
+ ///
+ /// Tests Usable functionality with a /0 network.
+ ///
+ [TestMethod]
+ public void Usable0()
+ {
+ var network = IPNetwork2.Parse("0.0.0.0/0");
+ uint usable = 4294967294;
+ Assert.AreEqual(usable, network.Usable, "Usable");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkValidNetmaskTests.cs b/src/TestProject/IPNetworkTest/IPNetworkValidNetmaskTests.cs
new file mode 100644
index 00000000..5f7e2acb
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkValidNetmaskTests.cs
@@ -0,0 +1,92 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+[TestClass]
+public class IPNetworkValidNetmaskTests
+{
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestValidNetmaskInvalid1()
+ {
+ bool resut = IPNetwork2.InternalValidNetmask(BigInteger.Zero, AddressFamily.AppleTalk);
+ }
+
+ ///
+ /// Tests Valid Netmask functionality with Valid Netmask0.
+ ///
+ [TestMethod]
+ public void TestValidNetmask0()
+ {
+ var mask = IPAddress.Parse("255.255.255.255");
+ bool expected = true;
+ bool result = IPNetwork2.ValidNetmask(mask);
+
+ Assert.AreEqual(expected, result, "ValidNetmask");
+ }
+
+ ///
+ /// Tests Valid Netmask functionality with Valid Netmask1.
+ ///
+ [TestMethod]
+ public void TestValidNetmask1()
+ {
+ var mask = IPAddress.Parse("255.255.255.0");
+ bool expected = true;
+ bool result = IPNetwork2.ValidNetmask(mask);
+
+ Assert.AreEqual(expected, result, "ValidNetmask");
+ }
+
+ ///
+ /// Tests Valid Netmask functionality with Valid Netmask2.
+ ///
+ [TestMethod]
+ public void TestValidNetmask2()
+ {
+ var mask = IPAddress.Parse("255.255.0.0");
+ bool expected = true;
+ bool result = IPNetwork2.ValidNetmask(mask);
+
+ Assert.AreEqual(expected, result, "ValidNetmask");
+ }
+
+ ///
+ /// Tests Valid Netmask functionality with Valid Netmask EAE1.
+ ///
+ [TestMethod]
+ public void TestValidNetmaskEae1()
+ {
+ var mask = IPAddress.Parse("0.255.0.0");
+ bool expected = false;
+ bool result = IPNetwork2.ValidNetmask(mask);
+
+ Assert.AreEqual(expected, result, "ValidNetmask");
+ }
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestValidNetmaskEae2()
+ {
+ IPAddress mask = null;
+ bool expected = true;
+ bool result = IPNetwork2.ValidNetmask(mask);
+
+ Assert.AreEqual(expected, result, "ValidNetmask");
+ }
+
+ ///
+ /// Tests Valid Netmask functionality with Valid Netmask EAE3.
+ ///
+ [TestMethod]
+ public void TestValidNetmaskEae3()
+ {
+ var mask = IPAddress.Parse("255.255.0.1");
+ bool expected = false;
+ bool result = IPNetwork2.ValidNetmask(mask);
+
+ Assert.AreEqual(expected, result, "ValidNetmask");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkTest/IPNetworkWideSubnetTests.cs b/src/TestProject/IPNetworkTest/IPNetworkWideSubnetTests.cs
new file mode 100644
index 00000000..1fc974a2
--- /dev/null
+++ b/src/TestProject/IPNetworkTest/IPNetworkWideSubnetTests.cs
@@ -0,0 +1,100 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject.IPNetworkTest;
+
+///
+/// Tests for the WideSubnet method in IPNetwork2.
+///
+[TestClass]
+public class IPNetworkWideSubnetTests
+{
+ ///
+ /// Tests WideSubnet with a diverse set of addresses, expecting a /0 network.
+ ///
+ [TestMethod]
+ public void WideSubnet1()
+ {
+ string[] ips = { "1.1.1.1", "255.255.255.255", "2.2.2.2", "0.0.0.0" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
+ Assert.AreEqual("0.0.0.0/0", ipnetwork.ToString(), "ipnetwork");
+ }
+
+ ///
+ /// Tests WideSubnet with addresses in same range, expecting a /4 network.
+ ///
+ [TestMethod]
+ public void WideSubnet2()
+ {
+ string[] ips = { "1.1.1.1", "10.0.0.0", "2.2.2.2", "0.0.0.0" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
+ Assert.AreEqual("0.0.0.0/4", ipnetwork.ToString(), "ipnetwork");
+ }
+
+ ///
+ /// Tests WideSubnet with null input to ensure it throws ArgumentNullException.
+ ///
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void WideSubnetNull()
+ {
+ var ipnetwork = IPNetwork2.WideSubnet(null);
+ }
+
+ ///
+ /// Tests WideSubnet with invalid IP addresses to ensure it throws ArgumentException.
+ ///
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void WideSubnetNull2()
+ {
+ string[] ips = { "a", "b", "e", "d" };
+ var ipns = new List();
+ foreach (string ip in ips)
+ {
+ IPNetwork2 ipn;
+ if (IPNetwork2.TryParse(ip, 32, out ipn))
+ {
+ ipns.Add(ipn);
+ }
+ }
+
+ var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
+ }
+
+ ///
+ /// Tests WideSubnet with mixed IPv4 and IPv6 addresses to ensure it throws ArgumentException.
+ ///
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void WideSubnetMixed()
+ {
+ var ipns = new List
+ {
+ IPNetwork2.IANA_ABLK_RESERVED1,
+ IPNetwork2.Parse("2001:0db8::/64")
+ };
+ var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/IPNetworkUnitTest.cs b/src/TestProject/IPNetworkUnitTest.cs
deleted file mode 100644
index b351c647..00000000
--- a/src/TestProject/IPNetworkUnitTest.cs
+++ /dev/null
@@ -1,3754 +0,0 @@
-//
-// Copyright (c) IPNetwork. All rights reserved.
-//
-
-namespace System.Net.TestProject
-{
- using System.Collections.Generic;
- using System.Linq;
- using System.Numerics;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- ///
- /// IPNetworkUnitTest test every single method.
- ///
- [TestClass]
- public class IPNetworkUnitTest
- {
- #region ctor
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestCtor1()
- {
- new IPNetwork2(BigInteger.Zero, Sockets.AddressFamily.InterNetwork, 33);
- }
- #endregion
-
- #region Parse
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseIPAddressNetmaskANE2()
- {
- IPAddress ip = null;
- IPNetwork2.Parse(ip, ip);
- }
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseIPAddressNetmaskANE3()
- {
- IPNetwork2.Parse(string.Empty, 0);
- }
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseIPAddressNetmaskANE4()
- {
- IPNetwork2.Parse((string)null, 0);
- }
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseIPAddressNetmaskANE5()
- {
- string n = null;
- IPNetwork2.Parse(n, n);
- }
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE8()
- {
- var ipnet = IPNetwork2.Parse("x.x.x.x", "x.x.x.x");
- }
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE9()
- {
- var ipnet = IPNetwork2.Parse("0.0.0.0", "x.x.x.x");
- }
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE10()
- {
- var ipnet = IPNetwork2.Parse("x.x.x.x", 0);
- }
-
- [TestMethod]
- [TestCategory("Parse")]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE11()
- {
- var ipnet = IPNetwork2.Parse("0.0.0.0", 33);
- }
-
- [TestCategory("Parse")]
- [TestMethod]
- public void TestParseIPAddressNetmask()
- {
- string ipaddress = "192.168.168.100";
- string netmask = "255.255.255.0";
-
- string network = "192.168.168.0";
- string broadcast = "192.168.168.255";
- string firstUsable = "192.168.168.1";
- string lastUsable = "192.168.168.254";
- byte cidr = 24;
- uint usable = 254;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestCategory("Parse")]
- [TestMethod]
- public void TestParseString1()
- {
- string ipaddress = "192.168.168.100 255.255.255.0";
-
- string network = "192.168.168.0";
- string netmask = "255.255.255.0";
- string broadcast = "192.168.168.255";
- string firstUsable = "192.168.168.1";
- string lastUsable = "192.168.168.254";
- byte cidr = 24;
- uint usable = 254;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestCategory("Parse")]
- [TestMethod]
- public void TestParseString2()
- {
- string ipaddress = "192.168.168.100/24";
-
- string network = "192.168.168.0";
- string netmask = "255.255.255.0";
- string broadcast = "192.168.168.255";
- string firstUsable = "192.168.168.1";
- string lastUsable = "192.168.168.254";
- byte cidr = 24;
- uint usable = 254;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestCategory("Parse")]
- [TestMethod]
- public void TestParseString3()
- {
- string ipaddress = "0.0.0.0/0";
-
- string network = "0.0.0.0";
- string netmask = "0.0.0.0";
- string broadcast = "255.255.255.255";
- string firstUsable = "0.0.0.1";
- string lastUsable = "255.255.255.254";
- byte cidr = 0;
- uint usable = 4294967294;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestCategory("Parse")]
- [TestMethod]
- public void TestParseString4()
- {
- string ipaddress = "0.0.0.0/32";
-
- string network = "0.0.0.0";
- string netmask = "255.255.255.255";
- string broadcast = "0.0.0.0";
- string firstUsable = "0.0.0.0";
- string lastUsable = "0.0.0.0";
- byte cidr = 32;
- uint usable = 0;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestCategory("Parse")]
- [TestMethod]
- public void TestParseString5()
- {
- string ipaddress = "255.255.255.255/32";
-
- string network = "255.255.255.255";
- string netmask = "255.255.255.255";
- string broadcast = "255.255.255.255";
- string firstUsable = "255.255.255.255";
- string lastUsable = "255.255.255.255";
- byte cidr = 32;
- uint usable = 0;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestCategory("Parse")]
- [TestMethod]
- public void TestParseIPAddressNoNetmask1()
- {
- string ipaddress = "10.0.0.0";
-
- string network = "10.0.0.0";
- string netmask = "255.0.0.0";
- string broadcast = "10.255.255.255";
- string firstUsable = "10.0.0.1";
- string lastUsable = "10.255.255.254";
- byte cidr = 8;
- uint usable = 16777214;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void When_Parse_254_128_0_0_Should_Succeed()
- {
- string ipaddress = "254.128.0.0";
-
- string network = "254.128.0.0";
- string netmask = "255.255.255.0";
- string broadcast = "254.128.0.255";
- string firstUsable = "254.128.0.1";
- string lastUsable = "254.128.0.254";
- byte cidr = 24;
- uint usable = 254;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask2()
- {
- string ipaddress = "172.0.0.0";
-
- string network = "172.0.0.0";
- string netmask = "255.255.0.0";
- string broadcast = "172.0.255.255";
- string firstUsable = "172.0.0.1";
- string lastUsable = "172.0.255.254";
- byte cidr = 16;
- uint usable = 65534;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask3()
- {
- string ipaddress = "192.0.0.0";
-
- string network = "192.0.0.0";
- string netmask = "255.255.255.0";
- string broadcast = "192.0.0.255";
- string firstUsable = "192.0.0.1";
- string lastUsable = "192.0.0.254";
- byte cidr = 24;
- uint usable = 254;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask1_ClassFull()
- {
- string ipaddress = "10.0.0.0";
- ICidrGuess guessCidr = CidrGuess.ClassFull;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
-
- string network = "10.0.0.0";
- string netmask = "255.0.0.0";
- string broadcast = "10.255.255.255";
- string firstUsable = "10.0.0.1";
- string lastUsable = "10.255.255.254";
- byte cidr = 8;
- uint usable = 16777214;
-
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask2_ClassFull()
- {
- string ipaddress = "172.0.0.0";
- ICidrGuess guessCidr = CidrGuess.ClassFull;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
-
- string network = "172.0.0.0";
- string netmask = "255.255.0.0";
- string broadcast = "172.0.255.255";
- string firstUsable = "172.0.0.1";
- string lastUsable = "172.0.255.254";
- byte cidr = 16;
- uint usable = 65534;
-
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask3_ClassFull()
- {
- string ipaddress = "192.0.0.0";
- ICidrGuess guessCidr = CidrGuess.ClassFull;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
-
- string network = "192.0.0.0";
- string netmask = "255.255.255.0";
- string broadcast = "192.0.0.255";
- string firstUsable = "192.0.0.1";
- string lastUsable = "192.0.0.254";
- byte cidr = 24;
- uint usable = 254;
-
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask1_ClassLess()
- {
- string ipaddress = "10.0.0.0";
- ICidrGuess guessCidr = CidrGuess.ClassLess;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
-
- string network = "10.0.0.0";
- string netmask = "255.255.255.255";
- string broadcast = "10.0.0.0";
- string firstUsable = "10.0.0.0";
- string lastUsable = "10.0.0.0";
- byte cidr = 32;
- uint usable = 0;
-
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask2_ClassLess()
- {
- string ipaddress = "172.0.0.0";
- ICidrGuess guessCidr = CidrGuess.ClassLess;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
-
- string network = "172.0.0.0";
- string netmask = "255.255.255.255";
- string broadcast = "172.0.0.0";
- string firstUsable = "172.0.0.0";
- string lastUsable = "172.0.0.0";
- byte cidr = 32;
- uint usable = 0;
-
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask3_ClassLess()
- {
- string ipaddress = "192.0.0.0";
- ICidrGuess guessCidr = CidrGuess.ClassLess;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, guessCidr);
-
- string network = "192.0.0.0";
- string netmask = "255.255.255.255";
- string broadcast = "192.0.0.0";
- string firstUsable = "192.0.0.0";
- string lastUsable = "192.0.0.0";
- byte cidr = 32;
- uint usable = 0;
-
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask4()
- {
- string ipaddress = "224.0.0.0";
- var ipnetwork = IPNetwork2.Parse(ipaddress);
-
- Assert.AreEqual("224.0.0.0/24", ipnetwork.ToString(), "Network");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask5()
- {
- string ipaddress = "240.0.0.0";
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- Assert.AreEqual("240.0.0.0/24", ipnetwork.ToString(), "Network");
- }
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask127001()
- {
- string ipaddress = "127.0.0.1";
- IPNetwork2 result = null;
- IPNetwork2.TryParse(ipaddress, out result);
- Assert.AreEqual(result.Cidr, 8);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseStringAE1()
- {
- string ipaddress = "garbage";
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseStringAE2()
- {
- string ipaddress = "0.0.0.0 0.0.1.0";
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringANE1()
- {
- string ipaddress = null;
- var ipnetwork = IPNetwork2.Parse(ipaddress);
- }
-
- #endregion
-
- #region TryParse
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE2()
- {
- IPNetwork2 ipnet = null;
- IPAddress ip = null;
- bool parsed = IPNetwork2.TryParse(ip, ip, out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE3()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse(string.Empty, 0, out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE4()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse(null, 0, out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE5()
- {
- string n = null;
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse(n, n, out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE6()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse(IPAddress.Parse("10.10.10.10"), null, out ipnet);
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE7()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse("0.0.0.0", netmask: null, out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE8()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse("x.x.x.x", "x.x.x.x", out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE9()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse("0.0.0.0", "x.x.x.x", out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE10()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse("x.x.x.x", 0, out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmaskANE11()
- {
- IPNetwork2 ipnet = null;
- bool parsed = IPNetwork2.TryParse("0.0.0.0", 33, out ipnet);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(null, ipnet, "ipnet");
- }
-
- [TestMethod]
- public void TestTryParseIPAddressNetmask()
- {
- IPNetwork2 ipnetwork = null;
- string ipaddress = "192.168.168.100";
- string netmask = "255.255.255.0";
-
- string network = "192.168.168.0";
- string broadcast = "192.168.168.255";
- string firstUsable = "192.168.168.1";
- string lastUsable = "192.168.168.254";
- byte cidr = 24;
- uint usable = 254;
-
- bool parsed = IPNetwork2.TryParse(ipaddress, netmask, out ipnetwork);
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestTryParseString1()
- {
- IPNetwork2 ipnetwork = null;
- string ipaddress = "192.168.168.100 255.255.255.0";
-
- string network = "192.168.168.0";
- string netmask = "255.255.255.0";
- string broadcast = "192.168.168.255";
- string firstUsable = "192.168.168.1";
- string lastUsable = "192.168.168.254";
- byte cidr = 24;
- uint usable = 254;
-
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestTryParseString2()
- {
- IPNetwork2 ipnetwork = null;
- string ipaddress = "192.168.168.100/24";
-
- string network = "192.168.168.0";
- string netmask = "255.255.255.0";
- string broadcast = "192.168.168.255";
- string firstUsable = "192.168.168.1";
- string lastUsable = "192.168.168.254";
- byte cidr = 24;
- uint usable = 254;
-
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestTryParseString3()
- {
- IPNetwork2 ipnetwork = null;
- string ipaddress = "0.0.0.0/0";
-
- string network = "0.0.0.0";
- string netmask = "0.0.0.0";
- string broadcast = "255.255.255.255";
- string firstUsable = "0.0.0.1";
- string lastUsable = "255.255.255.254";
- byte cidr = 0;
- uint usable = 4294967294;
-
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestTryParseString4()
- {
- IPNetwork2 ipnetwork = null;
- string ipaddress = "0.0.0.0/32";
-
- string network = "0.0.0.0";
- string netmask = "255.255.255.255";
- string broadcast = "0.0.0.0";
- string firstUsable = "0.0.0.0";
- string lastUsable = "0.0.0.0";
- byte cidr = 32;
- uint usable = 0;
-
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestTryParseString5()
- {
- IPNetwork2 ipnetwork = null;
- string ipaddress = "255.255.255.255/32";
-
- string network = "255.255.255.255";
- string netmask = "255.255.255.255";
- string broadcast = "255.255.255.255";
- string firstUsable = "255.255.255.255";
- string lastUsable = "255.255.255.255";
- byte cidr = 32;
- uint usable = 0;
-
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
- Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
- Assert.AreEqual(broadcast, ipnetwork.Broadcast.ToString(), "Broadcast");
- Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
- Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
- Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
- Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestTryParseStringAE1()
- {
- string ipaddress = "garbage";
- IPNetwork2 ipnetwork = null;
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryParseStringAE2()
- {
- string ipaddress = "0.0.0.0 0.0.1.0";
- IPNetwork2 ipnetwork = null;
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryParseStringANE1()
- {
- string ipaddress = null;
- IPNetwork2 ipnetwork = null;
- bool parsed = IPNetwork2.TryParse(ipaddress, out ipnetwork);
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- #endregion
-
- #region ParseStringString
-
- [TestMethod]
- public void TestParseStringString1()
- {
- string ipaddress = "192.168.168.100";
- string netmask = "255.255.255.0";
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
- Assert.AreEqual("192.168.168.0/24", ipnetwork.ToString(), "network");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringString2()
- {
- string ipaddress = null;
- string netmask = null;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringString3()
- {
- string ipaddress = "192.168.168.100";
- string netmask = null;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringString4()
- {
- string ipaddress = string.Empty;
- string netmask = string.Empty;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringString5()
- {
- string ipaddress = "192.168.168.100";
- string netmask = string.Empty;
-
- var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
- }
-
- #endregion
-
- #region ParseIpIp
-
- [TestMethod]
- public void ParseIpIp1()
- {
- string ipaddress = "192.168.168.100";
- string netmask = "255.255.255.0";
- var ip = IPAddress.Parse(ipaddress);
- var netm = IPAddress.Parse(netmask);
- var ipnetwork = IPNetwork2.Parse(ip, netm);
- Assert.AreEqual("192.168.168.0/24", ipnetwork.ToString(), "network");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void ParseIpIp2()
- {
- IPAddress ip = null;
- IPAddress netm = null;
- var ipnetwork = IPNetwork2.Parse(ip, netm);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void ParseIpIp3()
- {
- string ipaddress = "192.168.168.100";
- var ip = IPAddress.Parse(ipaddress);
- IPAddress netm = null;
- var ipnetwork = IPNetwork2.Parse(ip, netm);
- }
-
- #endregion
-
- #region CtorWithIpAndCidr
-
- [TestMethod]
- public void CtorWithIpAndCidr1()
- {
- string ipaddress = "192.168.168.100";
- var ip = IPAddress.Parse(ipaddress);
- var ipnetwork = new IPNetwork2(ip, 24);
- Assert.AreEqual("192.168.168.0/24", ipnetwork.ToString(), "network");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void CtorWithIpAndCidr2()
- {
- IPAddress ip = null;
- var ipnetwork = new IPNetwork2(ip, 24);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void CtorWithIpAndCidr3()
- {
- string ipaddress = "192.168.168.100";
- var ip = IPAddress.Parse(ipaddress);
- var ipnetwork = new IPNetwork2(ip, 33);
- }
-
- #endregion
-
- #region ToCidr
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestToCidrANE()
- {
- IPNetwork2.ToCidr(null);
- }
-
- [TestMethod]
- public void TestToCidrAE()
- {
- byte cidr = IPNetwork2.ToCidr(IPAddress.IPv6Any);
- Assert.AreEqual(0, cidr, "cidr");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestToCidrAE2()
- {
- IPNetwork2.ToCidr(IPAddress.Parse("6.6.6.6"));
- }
-
- [TestMethod]
- public void TestToCidr32()
- {
- var mask = IPAddress.Parse("255.255.255.255");
- byte cidr = 32;
- int result = IPNetwork2.ToCidr(mask);
-
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestToCidr24()
- {
- var mask = IPAddress.Parse("255.255.255.0");
- byte cidr = 24;
- int result = IPNetwork2.ToCidr(mask);
-
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestToCidr16()
- {
- var mask = IPAddress.Parse("255.255.0.0");
- byte cidr = 16;
- int result = IPNetwork2.ToCidr(mask);
-
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestToCidr8()
- {
- var mask = IPAddress.Parse("255.0.0.0");
- byte cidr = 8;
- int result = IPNetwork2.ToCidr(mask);
-
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestToCidr0()
- {
- var mask = IPAddress.Parse("0.0.0.0");
- byte cidr = 0;
- int result = IPNetwork2.ToCidr(mask);
-
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- #endregion
-
- #region TryToCidr
-
- [TestMethod]
- public void TestTryToCidrANE()
- {
- byte? cidr = null;
- bool parsed = IPNetwork2.TryToCidr(null, out cidr);
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToCidrAE()
- {
- byte? cidr = null;
- bool parsed = IPNetwork2.TryToCidr(IPAddress.IPv6Any, out cidr);
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual((byte)0, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryToCidrAE2()
- {
- byte? cidr = null;
- bool parsed = IPNetwork2.TryToCidr(IPAddress.Parse("6.6.6.6"), out cidr);
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToCidr32()
- {
- byte? cidr = null;
- var mask = IPAddress.Parse("255.255.255.255");
- byte result = 32;
- bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestTryToCidr24()
- {
- byte? cidr = null;
- var mask = IPAddress.Parse("255.255.255.0");
- byte result = 24;
- bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestTryToCidr16()
- {
- byte? cidr = null;
- var mask = IPAddress.Parse("255.255.0.0");
- byte result = 16;
- bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestTryToCidr8()
- {
- byte? cidr = null;
- var mask = IPAddress.Parse("255.0.0.0");
- byte result = 8;
- bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- [TestMethod]
- public void TestTryToCidr0()
- {
- byte? cidr = null;
- var mask = IPAddress.Parse("0.0.0.0");
- byte result = 0;
- bool parsed = IPNetwork2.TryToCidr(mask, out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(cidr, result, "cidr");
- }
-
- #endregion
-
- #region ToBigInteger
-
- [TestMethod]
- public void TestToBigInteger32()
- {
- var mask = IPAddress.Parse("255.255.255.255");
- uint uintMask = 0xffffffff;
- var result = IPNetwork2.ToBigInteger(mask);
-
- Assert.AreEqual(uintMask, result, "uint");
- }
-
- [TestMethod]
- public void TestToBigInteger24()
- {
- var mask = IPAddress.Parse("255.255.255.0");
- uint uintMask = 0xffffff00;
- BigInteger? result = IPNetwork2.ToBigInteger(mask);
-
- Assert.AreEqual(uintMask, result, "uint");
- }
-
- [TestMethod]
- public void TestToBigInteger16()
- {
- var mask = IPAddress.Parse("255.255.0.0");
- uint uintMask = 0xffff0000;
- BigInteger? result = IPNetwork2.ToBigInteger(mask);
-
- Assert.AreEqual(uintMask, result, "uint");
- }
-
- [TestMethod]
- public void TestToBigInteger8()
- {
- var mask = IPAddress.Parse("255.0.0.0");
- uint uintMask = 0xff000000;
- BigInteger? result = IPNetwork2.ToBigInteger(mask);
-
- Assert.AreEqual(uintMask, result, "uint");
- }
-
- [TestMethod]
- public void TestToBigInteger0()
- {
- var mask = IPAddress.Parse("0.0.0.0");
- uint uintMask = 0x00000000;
- BigInteger? result = IPNetwork2.ToBigInteger(mask);
-
- Assert.AreEqual(uintMask, result, "uint");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestToBigIntegerANE()
- {
- BigInteger? result = IPNetwork2.ToBigInteger(null);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestToBigIntegerANE3()
- {
- IPAddress ip = null;
- BigInteger? result = IPNetwork2.ToBigInteger(ip);
- }
-
- [TestMethod]
- public void TestToBigIntegerANE2()
- {
- BigInteger? result = IPNetwork2.ToBigInteger(IPAddress.IPv6Any);
- uint expected = 0;
- Assert.AreEqual(expected, result, "result");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestToBigIntegerByte()
- {
- BigInteger result = IPNetwork2.ToUint(33, Sockets.AddressFamily.InterNetwork);
- }
-
- [TestMethod]
- public void TestToBigIntegerByte2()
- {
- BigInteger result = IPNetwork2.ToUint(32, Sockets.AddressFamily.InterNetwork);
- uint expected = 4294967295;
- Assert.AreEqual(expected, result, "result");
- }
-
- [TestMethod]
- public void TestToBigIntegerByte3()
- {
- BigInteger result = IPNetwork2.ToUint(0, Sockets.AddressFamily.InterNetwork);
- uint expected = 0;
- Assert.AreEqual(expected, result, "result");
- }
-
- [TestMethod]
- public void TestToBigIntegerInternal1()
- {
- BigInteger? result = null;
- IPNetwork2.InternalToBigInteger(true, 33, Sockets.AddressFamily.InterNetwork, out result);
- Assert.AreEqual(null, result, "result");
- }
-
- [TestMethod]
- public void TestToBigIntegerInternal2()
- {
- BigInteger? result = null;
- IPNetwork2.InternalToBigInteger(true, 129, Sockets.AddressFamily.InterNetworkV6, out result);
- Assert.AreEqual(null, result, "result");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestToBigIntegerInternal3()
- {
- BigInteger? result = null;
- IPNetwork2.InternalToBigInteger(false, 129, Sockets.AddressFamily.InterNetworkV6, out result);
- }
-
- [TestMethod]
- [ExpectedException(typeof(NotSupportedException))]
- public void TestToBigIntegerInternal4()
- {
- BigInteger? result = null;
- IPNetwork2.InternalToBigInteger(false, 32, Sockets.AddressFamily.AppleTalk, out result);
- }
-
- [TestMethod]
- public void TestToBigIntegerInternal5()
- {
- BigInteger? result = null;
- IPNetwork2.InternalToBigInteger(true, 32, Sockets.AddressFamily.AppleTalk, out result);
- Assert.AreEqual(null, result, "result");
- }
-
- #endregion
-
- #region TryToUint
-
- [TestMethod]
- public void TestTryToUint1()
- {
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToUint(32, Sockets.AddressFamily.InterNetwork, out result);
-
- Assert.IsNotNull(result, "uint");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- #endregion
-
- #region TryToBigInteger
-
- [TestMethod]
- public void TestTryToBigInteger32()
- {
- var mask = IPAddress.Parse("255.255.255.255");
- uint uintMask = 0xffffffff;
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
-
- Assert.AreEqual(uintMask, result, "uint");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToBigInteger24()
- {
- var mask = IPAddress.Parse("255.255.255.0");
- uint uintMask = 0xffffff00;
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
-
- Assert.AreEqual(uintMask, result, "uint");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToBigInteger16()
- {
- var mask = IPAddress.Parse("255.255.0.0");
- uint uintMask = 0xffff0000;
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
-
- Assert.AreEqual(uintMask, result, "uint");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToBigInteger8()
- {
- var mask = IPAddress.Parse("255.0.0.0");
- uint uintMask = 0xff000000;
-
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
-
- Assert.AreEqual(uintMask, result, "uint");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToBigInteger0()
- {
- var mask = IPAddress.Parse("0.0.0.0");
- uint uintMask = 0x00000000;
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(mask, out result);
-
- Assert.AreEqual(uintMask, result, "uint");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToBigIntegerANE()
- {
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(null, out result);
-
- Assert.AreEqual(null, result, "uint");
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToBigIntegerANE3()
- {
- IPAddress ip = null;
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(ip, out result);
-
- Assert.AreEqual(null, result, "uint");
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- [TestMethod]
- public void TestTryToBigIntegerANE2()
- {
- BigInteger? result = null;
- bool parsed = IPNetwork2.TryToBigInteger(IPAddress.IPv6Any, out result);
-
- Assert.AreEqual(0, result, "result");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- #endregion
-
- #region TryToNetmask
- [TestMethod]
- public void TryToNetmask1()
- {
- IPAddress result = null;
- bool parsed = IPNetwork2.TryToNetmask(0, Sockets.AddressFamily.InterNetwork, out result);
- var expected = IPAddress.Parse("0.0.0.0");
-
- Assert.AreEqual(expected, result, "Netmask");
- Assert.AreEqual(true, parsed, "parsed");
- }
-
- [TestMethod]
- public void TryToNetmask2()
- {
- IPAddress result = null;
- bool parsed = IPNetwork2.TryToNetmask(33, Sockets.AddressFamily.InterNetwork, out result);
- IPAddress expected = null;
-
- Assert.AreEqual(expected, result, "Netmask");
- Assert.AreEqual(false, parsed, "parsed");
- }
-
- #endregion
-
- #region ToNetmask
-
- [TestMethod]
- public void ToNetmask32()
- {
- byte cidr = 32;
- string netmask = "255.255.255.255";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
-
- Assert.AreEqual(netmask, result, "netmask");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void ToNetmaskNonInet()
- {
- byte cidr = 0;
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.AppleTalk).ToString();
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void ToNetmaskNegative()
- {
- byte cidr = 0;
- cidr--;
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
- }
-
- [TestMethod]
- public void ToNetmaskInternal1()
- {
- IPAddress result;
- IPNetwork2.InternalToNetmask(true, 0, Sockets.AddressFamily.AppleTalk, out result);
- Assert.AreEqual(null, result);
- }
-
- [TestMethod]
- public void ToNetmask31()
- {
- byte cidr = 31;
- string netmask = "255.255.255.254";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
-
- Assert.AreEqual(netmask, result, "netmask");
- }
-
- [TestMethod]
- public void ToNetmask30()
- {
- byte cidr = 30;
- string netmask = "255.255.255.252";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
-
- Assert.AreEqual(netmask, result, "netmask");
- }
-
- [TestMethod]
- public void ToNetmask29()
- {
- byte cidr = 29;
- string netmask = "255.255.255.248";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
-
- Assert.AreEqual(netmask, result, "netmask");
- }
-
- [TestMethod]
- public void ToNetmask1()
- {
- byte cidr = 1;
- string netmask = "128.0.0.0";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
-
- Assert.AreEqual(netmask, result, "netmask");
- }
-
- [TestMethod]
- public void ToNetmask0()
- {
- byte cidr = 0;
- string netmask = "0.0.0.0";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
-
- Assert.AreEqual(netmask, result, "netmask");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void ToNetmaskOORE1()
- {
- byte cidr = 33;
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetwork).ToString();
- }
-
- #endregion
-
- #region ToIPAddress
-
- [TestMethod]
- public void TestToIPAddress()
- {
- var ip = new BigInteger(0);
- var result = IPNetwork2.ToIPAddress(ip, Sockets.AddressFamily.InterNetwork);
- Assert.AreEqual(IPAddress.Any, result, "ToIPAddress");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestToIPAddress2()
- {
- var ip = new BigInteger(0);
- var result = IPNetwork2.ToIPAddress(ip, Sockets.AddressFamily.AppleTalk);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestToIPAddress3()
- {
- var ip = new BigInteger(new byte[]
- {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- });
- var result = IPNetwork2.ToIPAddress(ip, Sockets.AddressFamily.AppleTalk);
- }
- #endregion
-
- #region ValidNetmask
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestValidNetmaskInvalid1()
- {
- bool resut = IPNetwork2.InternalValidNetmask(BigInteger.Zero, Sockets.AddressFamily.AppleTalk);
- }
-
- [TestMethod]
- public void TestValidNetmask0()
- {
- var mask = IPAddress.Parse("255.255.255.255");
- bool expected = true;
- bool result = IPNetwork2.ValidNetmask(mask);
-
- Assert.AreEqual(expected, result, "ValidNetmask");
- }
-
- [TestMethod]
- public void TestValidNetmask1()
- {
- var mask = IPAddress.Parse("255.255.255.0");
- bool expected = true;
- bool result = IPNetwork2.ValidNetmask(mask);
-
- Assert.AreEqual(expected, result, "ValidNetmask");
- }
-
- [TestMethod]
- public void TestValidNetmask2()
- {
- var mask = IPAddress.Parse("255.255.0.0");
- bool expected = true;
- bool result = IPNetwork2.ValidNetmask(mask);
-
- Assert.AreEqual(expected, result, "ValidNetmask");
- }
-
- [TestMethod]
- public void TestValidNetmaskEAE1()
- {
- var mask = IPAddress.Parse("0.255.0.0");
- bool expected = false;
- bool result = IPNetwork2.ValidNetmask(mask);
-
- Assert.AreEqual(expected, result, "ValidNetmask");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestValidNetmaskEAE2()
- {
- IPAddress mask = null;
- bool expected = true;
- bool result = IPNetwork2.ValidNetmask(mask);
-
- Assert.AreEqual(expected, result, "ValidNetmask");
- }
-
- [TestMethod]
- public void TestValidNetmaskEAE3()
- {
- var mask = IPAddress.Parse("255.255.0.1");
- bool expected = false;
- bool result = IPNetwork2.ValidNetmask(mask);
-
- Assert.AreEqual(expected, result, "ValidNetmask");
- }
-
- #endregion
-
- #region BitsSet
-
- [TestMethod]
- public void TestBitsSet32()
- {
- var ip = IPAddress.Parse("255.255.255.255");
- uint bits = 32;
- uint result = IPNetwork2.BitsSet(ip);
-
- Assert.AreEqual(bits, result, "BitsSet");
- }
-
- [TestMethod]
- public void TestBitsSet24()
- {
- var ip = IPAddress.Parse("255.255.255.0");
- uint bits = 24;
- uint result = IPNetwork2.BitsSet(ip);
-
- Assert.AreEqual(bits, result, "BitsSet");
- }
-
- [TestMethod]
- public void TestBitsSet16()
- {
- var ip = IPAddress.Parse("255.255.0.0");
- uint bits = 16;
- uint result = IPNetwork2.BitsSet(ip);
-
- Assert.AreEqual(bits, result, "BitsSet");
- }
-
- [TestMethod]
- public void TestBitsSet4()
- {
- var ip = IPAddress.Parse("128.128.128.128");
- uint bits = 4;
- uint result = IPNetwork2.BitsSet(ip);
-
- Assert.AreEqual(bits, result, "BitsSet");
- }
-
- #endregion
-
- #region Overlap
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestOverlap1()
- {
- IPNetwork2 network1 = null;
- IPNetwork2 network2 = null;
-
-#pragma warning disable 0618
- bool result = IPNetwork2.Overlap(network1, network2);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void TestOverlapStatic2()
- {
- IPNetwork2 network1 = IPNetwork2.IANA_ABLK_RESERVED1;
- IPNetwork2 network2 = IPNetwork2.IANA_ABLK_RESERVED1;
-
-#pragma warning disable 0618
- bool result = IPNetwork2.Overlap(network1, network2);
-#pragma warning restore 0618
-
- Assert.IsTrue(result, "result");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestOverlap2()
- {
- var network1 = IPNetwork2.Parse("10.0.0.0/0");
- IPNetwork2 network2 = null;
- network1.Overlap(network2);
- }
-
- [TestMethod]
- public void TestOverlap3()
- {
- var network1 = IPNetwork2.Parse("10.0.0.0/0");
- var network2 = IPNetwork2.Parse("10.0.0.0/0");
- bool result = network1.Overlap(network2);
- bool expected = true;
-
- Assert.AreEqual(expected, result, "overlap");
- }
-
- [TestMethod]
- public void TestOverlap4()
- {
- var network1 = IPNetwork2.Parse("10.10.0.0/16");
- var network2 = IPNetwork2.Parse("10.10.1.0/24");
- bool result = network1.Overlap(network2);
- bool expected = true;
-
- Assert.AreEqual(expected, result, "overlap");
- }
-
- [TestMethod]
- public void TestOverlap5()
- {
- var network1 = IPNetwork2.Parse("10.10.0.0/24");
- var network2 = IPNetwork2.Parse("10.10.1.0/24");
- bool result = network1.Overlap(network2);
- bool expected = false;
-
- Assert.AreEqual(expected, result, "overlap");
- }
-
- [TestMethod]
- public void TestOverlap6()
- {
- var network1 = IPNetwork2.Parse("10.10.1.0/24");
- var network2 = IPNetwork2.Parse("10.10.0.0/16");
- bool result = network1.Overlap(network2);
- bool expected = true;
-
- Assert.AreEqual(expected, result, "overlap");
- }
-
- #endregion
-
- #region Examples
-
- [TestMethod]
- public void Example1()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.168.100/24");
-
- Console.WriteLine("Network : {0}", ipnetwork.Network);
- Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
- Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
- Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
- Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
- Console.WriteLine("Usable : {0}", ipnetwork.Usable);
- Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
- }
-
- [TestMethod]
- public void Example2()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.0/24");
- var ipaddress = IPAddress.Parse("192.168.0.100");
- var ipaddress2 = IPAddress.Parse("192.168.1.100");
-
- var ipnetwork2 = IPNetwork2.Parse("192.168.0.128/25");
- var ipnetwork3 = IPNetwork2.Parse("192.168.1.1/24");
-
- bool contains1 = ipnetwork.Contains(ipaddress);
- bool contains2 = ipnetwork.Contains(ipaddress2);
- bool contains3 = ipnetwork.Contains(ipnetwork2);
- bool contains4 = ipnetwork.Contains(ipnetwork3);
-
- bool overlap1 = ipnetwork.Overlap(ipnetwork2);
- bool overlap2 = ipnetwork.Overlap(ipnetwork3);
-
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress, contains1);
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipnetwork2, contains3);
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipnetwork3, contains4);
-
- Console.WriteLine("{0} overlap {1} : {2}", ipnetwork, ipnetwork2, overlap1);
- Console.WriteLine("{0} overlap {1} : {2}", ipnetwork, ipnetwork3, overlap2);
- }
-
- [TestMethod]
- public void Example2b()
- {
- var ipnetwork1 = IPNetwork2.Parse("10.1.0.0/16");
- var ipnetwork2 = IPNetwork2.Parse("192.168.1.0/24");
-
- var ipaddress1 = IPAddress.Parse("192.168.1.1");
- var ipaddress2 = IPAddress.Parse("192.168.2.100");
- var ipaddress3 = IPAddress.Parse("10.1.2.3");
- var ipaddress4 = IPAddress.Parse("10.4.5.6");
-
- bool contains1 = ipnetwork2.Contains(ipaddress1);
- bool contains2 = ipnetwork2.Contains(ipaddress2);
- bool contains3 = ipnetwork1.Contains(ipaddress3);
- bool contains4 = ipnetwork1.Contains(ipaddress4);
-
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork1, ipaddress1, contains1);
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork1, ipaddress2, contains2);
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork2, ipaddress3, contains3);
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork2, ipaddress4, contains4);
- }
-
- [TestMethod]
- public void Example3()
- {
- IPNetwork2 iana_a_block = IPNetwork2.IANA_ABLK_RESERVED1;
- IPNetwork2 iana_b_block = IPNetwork2.IANA_BBLK_RESERVED1;
- IPNetwork2 iana_c_block = IPNetwork2.IANA_CBLK_RESERVED1;
-
- Console.WriteLine("IANA_ABLK_RESERVED1 is {0}", iana_a_block);
- Console.WriteLine("IANA_BBLK_RESERVED1 is {0}", iana_b_block);
- Console.WriteLine("IANA_CBLK_RESERVED1 is {0}", iana_c_block);
- }
-
- [TestMethod]
- public void Example4()
- {
- var wholeInternet = IPNetwork2.Parse("0.0.0.0/0");
- byte newCidr = 2;
- IPNetworkCollection subneted = wholeInternet.Subnet(newCidr);
-
- Console.WriteLine("{0} was subnetted into {1} subnets", wholeInternet, subneted.Count);
- Console.WriteLine("First: {0}", subneted[0]);
- Console.WriteLine("Last : {0}", subneted[subneted.Count - 1]);
- Console.WriteLine("All :");
-
- foreach (IPNetwork2 ipnetwork in subneted)
- {
- Console.WriteLine("{0}", ipnetwork);
- }
- }
-
- [TestMethod]
- public void Example5()
- {
- var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/24");
- var ipnetwork2 = IPNetwork2.Parse("192.168.1.0/24");
- IPNetwork2[] ipnetwork3 = IPNetwork2.Supernet(new[] { ipnetwork1, ipnetwork2 });
-
- Console.WriteLine("{0} + {1} = {2}", ipnetwork1, ipnetwork2, ipnetwork3[0]);
- }
-
- [TestMethod]
- public void Example7()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.168.100/24");
-
- var ipaddress = IPAddress.Parse("192.168.168.200");
- var ipaddress2 = IPAddress.Parse("192.168.0.200");
-
- bool contains1 = ipnetwork.Contains(ipaddress);
- bool contains2 = ipnetwork.Contains(ipaddress2);
-
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress, contains1);
- Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
- }
-
- [TestMethod]
- public void Example9()
- {
- var network = IPNetwork2.Parse("192.168.0.1");
- var network2 = IPNetwork2.Parse("192.168.0.254");
-
- IPNetwork2 ipnetwork = network.Supernet(network2);
-
- Console.WriteLine("Network : {0}", ipnetwork.Network);
- Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
- Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
- Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
- Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
- Console.WriteLine("Usable : {0}", ipnetwork.Usable);
- Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
- }
-
- [TestMethod]
- public void When_TrySupernet_192_168_0_0_cidr24_add_192_168_10_0_cidr24_Then_Should_Invalid()
- {
- var network = IPNetwork2.Parse("192.168.0.0/24");
- var network2 = IPNetwork2.Parse("192.168.10.0/24");
-
- bool supernetted = network.TrySupernet(network2, out IPNetwork2 ipnetwork);
- Assert.AreEqual(false, supernetted);
- }
-
- [TestMethod]
- public void When_TryWideSubnet_192_168_0_0_cidr24_add_192_168_10_0_cidr24_Then_Should_Invalid()
- {
- var network = IPNetwork2.Parse("192.168.0.0/24");
- var network2 = IPNetwork2.Parse("192.168.10.0/24");
-
- bool wideSubnetted = IPNetwork2.TryWideSubnet(new[] { network, network2 }, out IPNetwork2 ipnetwork);
- Assert.AreEqual(true, wideSubnetted);
- Assert.AreEqual("192.168.0.0/20", ipnetwork.ToString());
-
- Console.WriteLine("Network : {0}", ipnetwork.Network);
- Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
- Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
- Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
- Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
- Console.WriteLine("Usable : {0}", ipnetwork.Usable);
- Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
- }
-
- [TestMethod]
- public void Example10()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.1/25");
-
- Console.WriteLine("Network : {0}", ipnetwork.Network);
- Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
- Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
- Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
- Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
- Console.WriteLine("Usable : {0}", ipnetwork.Usable);
- Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
- }
-
- [TestMethod]
- public void Example11()
- {
- var defaultParse = IPNetwork2.Parse("192.168.0.0"); // default to ClassFull
- var classFullParse = IPNetwork2.Parse("192.168.0.0", CidrGuess.ClassFull);
- var classLessParse = IPNetwork2.Parse("192.168.0.0", CidrGuess.ClassLess);
-
- Console.WriteLine("IPV4 Default Parse : {0}", defaultParse);
- Console.WriteLine("IPV4 ClassFull Parse : {0}", classFullParse);
- Console.WriteLine("IPV4 ClassLess Parse : {0}", classLessParse);
- }
-
- #endregion
-
- #region IANA blocks
- [TestMethod]
- public void TestIANA1()
- {
- var ipaddress = IPAddress.Parse("192.168.66.66");
- bool expected = true;
- bool result = IPNetwork2.IsIANAReserved(ipaddress);
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- public void TestIANA2()
- {
- var ipaddress = IPAddress.Parse("10.0.0.0");
- bool expected = true;
- bool result = IPNetwork2.IsIANAReserved(ipaddress);
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- public void TestIANA3()
- {
- var ipaddress = IPAddress.Parse("172.17.10.10");
- bool expected = true;
- bool result = IPNetwork2.IsIANAReserved(ipaddress);
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- public void TestIANA4()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.66.66/24");
- bool expected = true;
- bool result = ipnetwork.IsIANAReserved();
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- public void TestIANA5()
- {
- var ipnetwork = IPNetwork2.Parse("10.10.10/18");
- bool expected = true;
- bool result = ipnetwork.IsIANAReserved();
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- public void TestIANA6()
- {
- var ipnetwork = IPNetwork2.Parse("172.31.10.10/24");
- bool expected = true;
- bool result = ipnetwork.IsIANAReserved();
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestIANA7()
- {
- IPAddress ipaddress = null;
- IPNetwork2.IsIANAReserved(ipaddress);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestIANA8()
- {
- IPNetwork2 ipnetwork = null;
-#pragma warning disable 0618
- bool result = IPNetwork2.IsIANAReserved(ipnetwork);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void TestIANABlk1()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
-#pragma warning disable 0618
- bool result = IPNetwork2.IsIANAReserved(ipnetwork);
-#pragma warning restore 0618
- Assert.IsTrue(result, "result");
- }
-
- [TestMethod]
- public void TestIANA9()
- {
- var ipaddress = IPAddress.Parse("1.2.3.4");
- bool expected = false;
- bool result = IPNetwork2.IsIANAReserved(ipaddress);
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- public void TestIANA10()
- {
- var ipnetwork = IPNetwork2.Parse("172.16.0.0/8");
- bool expected = false;
- bool result = ipnetwork.IsIANAReserved();
-
- Assert.AreEqual(expected, result, "IANA");
- }
-
- [TestMethod]
- public void TestIANA11()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/8");
- bool expected = false;
- bool result = ipnetwork.IsIANAReserved();
-
- Assert.AreEqual(expected, result, "IANA");
- }
- #endregion
-
- #region ToString
-
- [TestMethod]
- public void TestToString()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/8");
- string expected = "192.0.0.0/8";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString1()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/9");
- string expected = "192.128.0.0/9";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString2()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/10");
- string expected = "192.128.0.0/10";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString3()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/11");
- string expected = "192.160.0.0/11";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString4()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/12");
- string expected = "192.160.0.0/12";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString5()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/13");
- string expected = "192.168.0.0/13";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString6()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/14");
- string expected = "192.168.0.0/14";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString7()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/15");
- string expected = "192.168.0.0/15";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- [TestMethod]
- public void TestToString8()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.15.1/16");
- string expected = "192.168.0.0/16";
- string result = ipnetwork.ToString();
-
- Assert.AreEqual(expected, result, "ToString");
- }
-
- #endregion
-
- #region Subnet
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestSubnet1()
- {
- IPNetwork2 ipnetwork = null;
- byte cidr = 9;
-
-#pragma warning disable 0618
- IPNetworkCollection result = IPNetwork2.Subnet(ipnetwork, cidr);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void TestSubnetStatic1()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 9;
-
-#pragma warning disable 0618
- IPNetworkCollection result = IPNetwork2.Subnet(ipnetwork, cidr);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestSubnet3()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 55;
-
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestSubnet4()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 1;
-
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- }
-
- [TestMethod]
- public void TestSubnet5()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 9;
-
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- Assert.AreEqual(2, subnets.Count, "count");
- Assert.AreEqual("10.0.0.0/9", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("10.128.0.0/9", subnets[1].ToString(), "subnet2");
- }
-
- [TestMethod]
- public void TestSubnet6()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
- byte cidr = 20;
-
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- Assert.AreEqual(16, subnets.Count, "count");
- Assert.AreEqual("192.168.0.0/20", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("192.168.16.0/20", subnets[1].ToString(), "subnet2");
- Assert.AreEqual("192.168.32.0/20", subnets[2].ToString(), "subnet3");
- Assert.AreEqual("192.168.48.0/20", subnets[3].ToString(), "subnet4");
- Assert.AreEqual("192.168.64.0/20", subnets[4].ToString(), "subnet5");
- Assert.AreEqual("192.168.80.0/20", subnets[5].ToString(), "subnet6");
- Assert.AreEqual("192.168.96.0/20", subnets[6].ToString(), "subnet7");
- Assert.AreEqual("192.168.112.0/20", subnets[7].ToString(), "subnet8");
- Assert.AreEqual("192.168.128.0/20", subnets[8].ToString(), "subnet9");
- Assert.AreEqual("192.168.144.0/20", subnets[9].ToString(), "subnet10");
- Assert.AreEqual("192.168.160.0/20", subnets[10].ToString(), "subnet11");
- Assert.AreEqual("192.168.176.0/20", subnets[11].ToString(), "subnet12");
- Assert.AreEqual("192.168.192.0/20", subnets[12].ToString(), "subnet13");
- Assert.AreEqual("192.168.208.0/20", subnets[13].ToString(), "subnet14");
- Assert.AreEqual("192.168.224.0/20", subnets[14].ToString(), "subnet15");
- Assert.AreEqual("192.168.240.0/20", subnets[15].ToString(), "subnet16");
- }
-
- [TestMethod]
- public void TestSubnet7()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
- byte cidr = 24;
-
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- Assert.AreEqual(256, subnets.Count, "count");
- Assert.AreEqual("192.168.0.0/24", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("192.168.255.0/24", subnets[255].ToString(), "subnet16");
- }
-
- [TestMethod]
- public void TestSubnet8()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
- byte cidr = 24;
-
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- Assert.AreEqual(256, subnets.Count, "count");
- Assert.AreEqual("192.168.0.0/24", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("192.168.255.0/24", subnets[255].ToString(), "subnet256");
- }
-
- [TestMethod]
- public void TestSubnet9()
- {
- var ipnetwork = IPNetwork2.Parse("192.168.0.0/24");
- byte cidr = 32;
-
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- Assert.AreEqual(256, subnets.Count, "count");
- Assert.AreEqual("192.168.0.0/32", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("192.168.0.255/32", subnets[255].ToString(), "subnet256");
- }
-
- [TestMethod]
- public void TestSubnet_Example8()
- {
- var wholeInternet = IPNetwork2.Parse("0.0.0.0/0");
- byte newCidr = 2;
- IPNetworkCollection subneted = wholeInternet.Subnet(newCidr);
-
- Console.WriteLine("{0} was subnetted into {1} subnets", wholeInternet, subneted.Count);
- Console.WriteLine("First: {0}", subneted[0]);
- Console.WriteLine("Last : {0}", subneted[subneted.Count - 1]);
- Console.WriteLine("All :");
-
- foreach (IPNetwork2 ipnetwork in subneted)
- {
- Console.WriteLine("{0}", ipnetwork);
- }
- }
-
- [TestMethod]
- public void TestSubnet10()
- {
- var ipnetwork = IPNetwork2.Parse("0.0.0.0/0");
- byte cidr = 32;
-
- // Here I spawm a OOM dragon ! beware of the beast !
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- Assert.AreEqual(4294967296, subnets.Count, "count");
- Assert.AreEqual("0.0.0.0/32", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("255.255.255.255/32", subnets[4294967295].ToString(), "subnet256");
- }
-
- [TestMethod]
- public void TestSubnet12()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
- byte cidr = 20;
- int i = -1;
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- foreach (IPNetwork2 ipn in subnets)
- {
- i++;
- Assert.AreEqual(subnets[i], ipn, "subnet");
- }
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestSubnet13()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
- byte cidr = 20;
- IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- IPNetwork2 error = subnets[1000];
- }
-
- #endregion
-
- #region TrySubnet
-
- [TestMethod]
- public void TestInternalSubnet1()
- {
- IPNetworkCollection subnets = null;
- IPNetwork2.InternalSubnet(true, null, 0, out subnets);
- Assert.AreEqual(null, subnets, "subnets");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestInternalSubnet2()
- {
- IPNetworkCollection subnets = null;
- IPNetwork2.InternalSubnet(false, null, 0, out subnets);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestTrySubnet1()
- {
- IPNetwork2 ipnetwork = null;
- byte cidr = 9;
-
- IPNetworkCollection subnets = null;
-#pragma warning disable 0618
- bool subnetted = IPNetwork2.TrySubnet(ipnetwork, cidr, out subnets);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void TestTrySubnetStatic1()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 9;
-
- IPNetworkCollection subnets = null;
-#pragma warning disable 0618
- bool subnetted = IPNetwork2.TrySubnet(ipnetwork, cidr, out subnets);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void TestTrySubnet3()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 55;
-
- IPNetworkCollection subnets = null;
- bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
-
- Assert.AreEqual(false, subnetted, "subnetted");
- }
-
- [TestMethod]
- public void TestTrySubnet4()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 1;
-
- IPNetworkCollection subnets = null;
- bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
-
- Assert.AreEqual(false, subnetted, "subnetted");
- }
-
- [TestMethod]
- public void TestTrySubnet5()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_ABLK_RESERVED1;
- byte cidr = 9;
-
- IPNetworkCollection subnets = null;
- bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
-
- Assert.AreEqual(true, subnetted, "subnetted");
- Assert.AreEqual(2, subnets.Count, "count");
- Assert.AreEqual("10.0.0.0/9", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("10.128.0.0/9", subnets[1].ToString(), "subnet2");
- }
-
- [TestMethod]
- public void TestTrySubnet6()
- {
- IPNetwork2 ipnetwork = IPNetwork2.IANA_CBLK_RESERVED1;
- byte cidr = 20;
-
- IPNetworkCollection subnets = null;
- bool subnetted = ipnetwork.TrySubnet(cidr, out subnets);
-
- Assert.AreEqual(true, subnetted, "subnetted");
- Assert.AreEqual(16, subnets.Count, "count");
- Assert.AreEqual("192.168.0.0/20", subnets[0].ToString(), "subnet1");
- Assert.AreEqual("192.168.16.0/20", subnets[1].ToString(), "subnet2");
- Assert.AreEqual("192.168.32.0/20", subnets[2].ToString(), "subnet3");
- Assert.AreEqual("192.168.48.0/20", subnets[3].ToString(), "subnet4");
- Assert.AreEqual("192.168.64.0/20", subnets[4].ToString(), "subnet5");
- Assert.AreEqual("192.168.80.0/20", subnets[5].ToString(), "subnet6");
- Assert.AreEqual("192.168.96.0/20", subnets[6].ToString(), "subnet7");
- Assert.AreEqual("192.168.112.0/20", subnets[7].ToString(), "subnet8");
- Assert.AreEqual("192.168.128.0/20", subnets[8].ToString(), "subnet9");
- Assert.AreEqual("192.168.144.0/20", subnets[9].ToString(), "subnet10");
- Assert.AreEqual("192.168.160.0/20", subnets[10].ToString(), "subnet11");
- Assert.AreEqual("192.168.176.0/20", subnets[11].ToString(), "subnet12");
- Assert.AreEqual("192.168.192.0/20", subnets[12].ToString(), "subnet13");
- Assert.AreEqual("192.168.208.0/20", subnets[13].ToString(), "subnet14");
- Assert.AreEqual("192.168.224.0/20", subnets[14].ToString(), "subnet15");
- Assert.AreEqual("192.168.240.0/20", subnets[15].ToString(), "subnet16");
- }
-
- #endregion
-
- #region Supernet
-
- [TestMethod]
- public void TestSupernetInternal1()
- {
- IPNetwork2 result;
- IPNetwork2.InternalSupernet(true, null, null, out result);
-
- Assert.AreEqual(null, result, "supernet");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestSupernetInternal2()
- {
- IPNetwork2 result;
- IPNetwork2.InternalSupernet(false, null, null, out result);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
-
- public void Issue33__TestSupernet__Bug_or_default_behavior()
- {
- var network1 = IPNetwork2.Parse("192.168.0.0/24");
- var network2 = IPNetwork2.Parse("192.168.2.0/24");
- var expected = IPNetwork2.Parse("192.168.0.0/23");
- IPNetwork2 supernet = network1.Supernet(network2);
-
- Assert.AreEqual(expected, supernet, "supernet");
- }
-
- [TestMethod]
- public void Issue33__TestWideSubnet__Bug_or_default_behavior()
- {
- var network1 = IPNetwork2.Parse("192.168.0.0/24");
- var network2 = IPNetwork2.Parse("192.168.2.0/24");
- var expected = IPNetwork2.Parse("192.168.0.0/22");
- var widenetwork = IPNetwork2.WideSubnet(new[] { network1, network2 });
-
- Assert.AreEqual(expected, widenetwork, "widesubnet");
- }
-
- [TestMethod]
- public void Issue162__Test_IPrangeToCIDRnotation()
- {
- string network1 = "172.64.0.0";
- string network2 = "172.71.255.255";
-
- var final = IPNetwork2.WideSubnet(network1, network2);
- string result = final.ToString();
-
- string expected = "172.64.0.0/13";
- Assert.AreEqual(expected, result, "Supernet");
- }
-
- [TestMethod]
- public void TestSupernet1()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.1.1/24");
- var expected = IPNetwork2.Parse("192.168.0.0/23");
- IPNetwork2 supernet = network1.Supernet(network2);
-
- Assert.AreEqual(expected, supernet, "supernet");
- }
-
- [TestMethod]
- [ExpectedException(typeof(NullReferenceException))]
- public void TestSupernet2()
- {
- IPNetwork2 network1 = null;
- var network2 = IPNetwork2.Parse("192.168.1.1/24");
- IPNetwork2 supernet = network1.Supernet(network2);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestSupernet3()
- {
- var network1 = IPNetwork2.Parse("192.168.1.1/24");
- IPNetwork2 network2 = null;
- IPNetwork2 supernet = network1.Supernet(network2);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestSupernet4()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.1.1/25");
- IPNetwork2 supernet = network1.Supernet(network2);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestSupernet5()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.5.1/24");
- IPNetwork2 supernet = network1.Supernet(network2);
- }
-
- [TestMethod]
- public void TestSupernet6()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.0.1/25");
- var expected = IPNetwork2.Parse("192.168.0.0/24");
- IPNetwork2 supernet = network1.Supernet(network2);
-
- Assert.AreEqual(expected, supernet, "supernet");
- }
-
- [TestMethod]
- public void TestSupernet7()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/25");
- var network2 = IPNetwork2.Parse("192.168.0.1/24");
- var expected = IPNetwork2.Parse("192.168.0.0/24");
- IPNetwork2 supernet = network1.Supernet(network2);
-
- Assert.AreEqual(expected, supernet, "supernet");
- }
-
- [TestMethod]
- public void TestSupernetStatic1()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/25");
- var network2 = IPNetwork2.Parse("192.168.0.1/24");
- var expected = IPNetwork2.Parse("192.168.0.0/24");
-#pragma warning disable CS0618 // Type or member is obsolete
- var supernet = IPNetwork2.Supernet(network1, network2);
-#pragma warning restore CS0618 // Type or member is obsolete
-
- Assert.AreEqual(expected, supernet, "supernet");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestSupernet8()
- {
- var network1 = IPNetwork2.Parse("192.168.1.1/24");
- var network2 = IPNetwork2.Parse("192.168.2.1/24");
- IPNetwork2 supernet = network1.Supernet(network2);
- }
-
- [TestMethod]
- public void TestSupernet9()
- {
- var ipnetwork1 = IPNetwork2.Parse("200.16.0.0/24");
- var ipnetwork2 = IPNetwork2.Parse("200.16.1.0/24");
- var ipnetwork3 = IPNetwork2.Parse("200.16.2.0/24");
- var ipnetwork4 = IPNetwork2.Parse("200.16.3.0/24");
-
- IPNetwork2 result = IPNetwork2.Supernet(new[] { ipnetwork1, ipnetwork2, ipnetwork3, ipnetwork4 })[0];
- var expected = IPNetwork2.Parse("200.16.0.0/22");
-
- Assert.AreEqual(expected, result, "supernet");
- }
-
- [TestMethod]
- public void TestSupernet10()
- {
- var ipnetwork1 = IPNetwork2.Parse("1.1.0.0/24");
- var ipnetwork2 = IPNetwork2.Parse("1.2.1.0/24");
-
- IPNetwork2 result = IPNetwork2.Supernet(new[] { ipnetwork1, ipnetwork2 })[0];
- var expected = IPNetwork2.Parse("1.1.0.0/24");
-
- Assert.AreEqual(expected, result, "supernet");
- }
-
- #endregion
-
- #region TrySupernet
-
- [TestMethod]
- public void TestTrySupernet1()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.1.1/24");
- var supernetExpected = IPNetwork2.Parse("192.168.0.0/23");
- IPNetwork2 supernet;
- bool parsed = true;
- bool result = network1.TrySupernet(network2, out supernet);
-
- Assert.AreEqual(supernetExpected, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestTrySupernet2()
- {
- IPNetwork2 network1 = null;
- var network2 = IPNetwork2.Parse("192.168.1.1/24");
- IPNetwork2 supernet;
-
-#pragma warning disable 0618
- bool result = IPNetwork2.TrySupernet(network1, network2, out supernet);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void TestTrySupernetStatic2()
- {
- IPNetwork2 network1 = IPNetwork2.IANA_ABLK_RESERVED1;
- var network2 = IPNetwork2.Parse("192.168.1.1/24");
- IPNetwork2 supernet;
-
-#pragma warning disable 0618
- bool result = IPNetwork2.TrySupernet(network1, network2, out supernet);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void TestTrySupernet3()
- {
- var network1 = IPNetwork2.Parse("192.168.1.1/24");
- IPNetwork2 network2 = null;
- IPNetwork2 supernetExpected = null;
- IPNetwork2 supernet;
- bool parsed = false;
- bool result = network1.TrySupernet(network2, out supernet);
-
- Assert.AreEqual(supernetExpected, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet4()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.1.1/25");
- IPNetwork2 supernetExpected = null;
- IPNetwork2 supernet;
- bool parsed = false;
- bool result = network1.TrySupernet(network2, out supernet);
-
- Assert.AreEqual(supernetExpected, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet5()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.5.1/24");
- IPNetwork2 supernetExpected = null;
- IPNetwork2 supernet;
- bool parsed = false;
- bool result = network1.TrySupernet(network2, out supernet);
-
- Assert.AreEqual(supernetExpected, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet6()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.0.1/25");
- var supernetExpected = IPNetwork2.Parse("192.168.0.0/24");
- IPNetwork2 supernet;
- bool parsed = true;
- bool result = network1.TrySupernet(network2, out supernet);
-
- Assert.AreEqual(supernetExpected, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet7()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/25");
- var network2 = IPNetwork2.Parse("192.168.0.1/24");
- var supernetExpected = IPNetwork2.Parse("192.168.0.0/24");
- IPNetwork2 supernet;
- bool parsed = true;
- bool result = network1.TrySupernet(network2, out supernet);
-
- Assert.AreEqual(supernetExpected, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet8()
- {
- var network1 = IPNetwork2.Parse("192.168.1.1/24");
- var network2 = IPNetwork2.Parse("192.168.2.1/24");
- IPNetwork2 supernetExpected = null;
- IPNetwork2 supernet;
- bool parsed = false;
- bool result = network1.TrySupernet(network2, out supernet);
-
- Assert.AreEqual(supernetExpected, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet9()
- {
- var network1 = IPNetwork2.Parse("192.168.1.1/24");
- var network2 = IPNetwork2.Parse("192.168.2.1/24");
- IPNetwork2[] network3 = new[] { network1, network2 };
- IPNetwork2[] supernetExpected = new[] { network1, network2 };
- IPNetwork2[] supernet;
- bool parsed = true;
- bool result = IPNetwork2.TrySupernet(network3, out supernet);
-
- Assert.AreEqual(supernetExpected[0], supernet[0], "supernet");
- Assert.AreEqual(supernetExpected[1], supernet[1], "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet10()
- {
- var network1 = IPNetwork2.Parse("192.168.0.1/24");
- var network2 = IPNetwork2.Parse("192.168.1.1/24");
- IPNetwork2[] network3 = new[] { network1, network2 };
- IPNetwork2[] supernetExpected = new[] { IPNetwork2.Parse("192.168.0.0/23") };
- IPNetwork2[] supernet;
- bool parsed = true;
- bool result = IPNetwork2.TrySupernet(network3, out supernet);
-
- Assert.AreEqual(supernetExpected[0], supernet[0], "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- [TestMethod]
- public void TestTrySupernet11()
- {
- IPNetwork2[] network3 = null;
- IPNetwork2[] supernetExpected = new[] { IPNetwork2.Parse("192.168.0.0/23") };
- IPNetwork2[] supernet;
- bool parsed = false;
- bool result = IPNetwork2.TrySupernet(network3, out supernet);
-
- Assert.AreEqual(null, supernet, "supernet");
- Assert.AreEqual(parsed, result, "parsed");
- }
-
- #endregion
-
- #region SupernetArray
-
- [TestMethod]
- public void TestTrySupernetArray()
- {
- var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/24");
- var ipnetwork2 = IPNetwork2.Parse("192.168.1.0/24");
- var ipnetwork3 = IPNetwork2.Parse("192.168.2.0/24");
- var ipnetwork4 = IPNetwork2.Parse("192.168.3.0/24");
-
- IPNetwork2[] ipnetworks = { ipnetwork1, ipnetwork2, ipnetwork3, ipnetwork4 };
- IPNetwork2[] expected = { IPNetwork2.Parse("192.168.0.0/22") };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], expected[0], "suppernet");
- }
-
- [TestMethod]
- public void TestTrySupernetArray1()
- {
- IPNetwork2[] ipnetworks = { };
- IPNetwork2[] expected = { };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestTrySupernetArray2()
- {
- IPNetwork2[] ipnetworks = null;
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
- }
-
- [TestMethod]
- public void TestTrySupernetArray3()
- {
- IPNetwork2 ipnetwork1 = null;
- IPNetwork2 ipnetwork2 = null;
- IPNetwork2 ipnetwork3 = null;
- IPNetwork2 ipnetwork4 = null;
-
- IPNetwork2[] ipnetworks = { ipnetwork1, ipnetwork2, ipnetwork3, ipnetwork4 };
- IPNetwork2[] expected = { };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- }
-
- [TestMethod]
- public void TestTrySupernetArray4()
- {
- var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/24");
- IPNetworkCollection subnetted = ipnetwork1.Subnet(32);
- IPNetwork2[] ipnetworks = subnetted.ToArray();
- Assert.AreEqual(256, ipnetworks.Length, "subnet");
-
- IPNetwork2[] expected = { IPNetwork2.Parse("192.168.0.0/24") };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], ipnetwork1, "suppernet");
- }
-
- [TestMethod]
- public void TestTrySupernetArray5()
- {
- var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/16");
- IPNetworkCollection subnetted = ipnetwork1.Subnet(24);
- IPNetwork2[] ipnetworks = subnetted.ToArray();
- Assert.AreEqual(256, ipnetworks.Length, "subnet");
-
- IPNetwork2[] expected = { IPNetwork2.Parse("192.168.0.0/16") };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], ipnetwork1, "suppernet");
- }
-
- [TestMethod]
- public void TestTrySupernetArray6()
- {
- var ipnetwork1 = IPNetwork2.Parse("192.168.0.0/8");
- IPNetworkCollection subnetted = ipnetwork1.Subnet(24);
- IPNetwork2[] ipnetworks = subnetted.ToArray();
- Assert.AreEqual(65536, ipnetworks.Length, "subnet");
-
- IPNetwork2[] expected = { IPNetwork2.Parse("192.0.0.0/8") };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], ipnetwork1, "suppernet");
- }
-
- [TestMethod]
- public void TestTrySupernetArray7()
- {
- IPNetwork2[] ipnetworks =
- {
- IPNetwork2.Parse("10.0.2.2/24"),
- IPNetwork2.Parse("192.168.0.0/24"),
- IPNetwork2.Parse("192.168.1.0/24"),
- IPNetwork2.Parse("192.168.2.0/24"),
- IPNetwork2.Parse("10.0.1.1/24"),
- IPNetwork2.Parse("192.168.3.0/24"),
- };
-
- IPNetwork2[] expected =
- {
- IPNetwork2.Parse("10.0.1.0/24"),
- IPNetwork2.Parse("10.0.2.0/24"),
- IPNetwork2.Parse("192.168.0/22"),
- };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], result[0], "suppernet");
- Assert.AreEqual(expected[1], result[1], "suppernet1");
- Assert.AreEqual(expected[2], result[2], "suppernet2");
- }
-
- [TestMethod]
- public void TestTrySupernetArray8()
- {
- IPNetwork2[] ipnetworks =
- {
- IPNetwork2.Parse("10.0.2.2/24"),
- IPNetwork2.Parse("192.168.0.0/24"),
- IPNetwork2.Parse("192.168.1.0/24"),
- IPNetwork2.Parse("192.168.2.0/24"),
- IPNetwork2.Parse("10.0.1.1/24"),
- IPNetwork2.Parse("192.168.3.0/24"),
- IPNetwork2.Parse("10.6.6.6/8"),
- };
-
- IPNetwork2[] expected =
- {
- IPNetwork2.Parse("10.0.0.0/8"),
- IPNetwork2.Parse("192.168.0/22"),
- };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], result[0], "suppernet");
- Assert.AreEqual(expected[1], result[1], "suppernet1");
- }
-
- [TestMethod]
- public void TestTrySupernetArray9()
- {
- IPNetwork2[] ipnetworks =
- {
- IPNetwork2.Parse("10.0.2.2/24"),
- IPNetwork2.Parse("192.168.0.0/24"),
- IPNetwork2.Parse("192.168.1.0/24"),
- IPNetwork2.Parse("192.168.2.0/24"),
- IPNetwork2.Parse("10.0.1.1/24"),
- IPNetwork2.Parse("192.168.3.0/24"),
- IPNetwork2.Parse("10.6.6.6/8"),
- IPNetwork2.Parse("11.6.6.6/8"),
- IPNetwork2.Parse("12.6.6.6/8"),
- };
-
- IPNetwork2[] expected =
- {
- IPNetwork2.Parse("10.0.0.0/7"),
- IPNetwork2.Parse("12.0.0.0/8"),
- IPNetwork2.Parse("192.168.0/22"),
- };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], result[0], "suppernet");
- Assert.AreEqual(expected[1], result[1], "suppernet1");
- Assert.AreEqual(expected[2], result[2], "suppernet2");
- }
-
- [TestMethod]
- public void TestTrySupernetArray10()
- {
- IPNetwork2[] ipnetworks =
- {
- IPNetwork2.Parse("10.0.2.2/24"),
- IPNetwork2.Parse("10.0.2.2/23"),
- };
-
- IPNetwork2[] expected =
- {
- IPNetwork2.Parse("10.0.2.2/23"),
- };
-
- IPNetwork2[] result = IPNetwork2.Supernet(ipnetworks);
-
- Assert.AreEqual(expected.Length, result.Length, "supernetarray");
- Assert.AreEqual(expected[0], result[0], "suppernet");
- }
-
- #endregion
-
- #region WideSubnet
-
- [TestMethod]
- public void TestWideSubnet1()
- {
- string start = "192.168.168.0";
- string end = "192.168.168.255";
- var expected = IPNetwork2.Parse("192.168.168.0/24");
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- Assert.AreEqual(expected, wideSubnet, "wideSubnet");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestWideSubnet2()
- {
- string start = null;
- string end = "192.168.168.255";
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestWideSubnet3()
- {
- string start = "192.168.168.255";
- string end = null;
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- }
-
- [TestMethod]
- public void TestWideSubnet4()
- {
- string start = "192.168.168.255";
- string end = "192.168.168.0";
-
- var expected = IPNetwork2.Parse("192.168.168.0/24");
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- Assert.AreEqual(expected, wideSubnet, "wideSubnet");
- }
-
- [TestMethod]
- public void TestWideSubnet7()
- {
- string start = "0.0.0.0";
- string end = "0.255.255.255";
-
- var expected = IPNetwork2.Parse("0.0.0.0/8");
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- Assert.AreEqual(expected, wideSubnet, "wideSubnet");
- }
-
- [TestMethod]
- public void TestWideSubnet8()
- {
- string start = "1.2.3.4";
- string end = "5.6.7.8";
-
- var expected = IPNetwork2.Parse("0.0.0.0/5");
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- Assert.AreEqual(expected, wideSubnet, "wideSubnet");
- }
-
- [TestMethod]
- public void TestWideSubnet9()
- {
- string start = "200.16.0.0/24";
- string end = "200.16.3.0/24";
- string firt = IPNetwork2.Parse(start).FirstUsable.ToString();
- string last = IPNetwork2.Parse(end).LastUsable.ToString();
-
- var expected = IPNetwork2.Parse("200.16.0.0/22");
-
- var wideSubnet = IPNetwork2.WideSubnet(firt, last);
- Assert.AreEqual(expected, wideSubnet, "wideSubnet");
- }
-
- [TestMethod]
- public void TestWideSubnet10()
- {
- string start = "200.16.0.0";
- string end = "200.16.3.255";
-
- var expected = IPNetwork2.Parse("200.16.0.0/22");
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- Assert.AreEqual(expected, wideSubnet, "wideSubnet");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestWideSubnetInvalid1()
- {
- string start = "invalid";
- string end = "5.6.7.8";
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestWideSubnetInvalid2()
- {
- string start = "1.2.3.4";
- string end = "invalid";
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- }
-
- [TestMethod]
- [ExpectedException(typeof(NotSupportedException))]
- public void TestWideSubnetMixed1()
- {
- string start = "1.2.3.4";
- string end = "2001:0db8::";
-
- var wideSubnet = IPNetwork2.WideSubnet(start, end);
- }
-
- #endregion
-
- #region TryGuessCidr
-
- [TestMethod]
- public void TestTryGuessCidrNull()
- {
- byte cidr;
- bool parsed = IPNetwork2.TryGuessCidr(null, out cidr);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(0, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrA()
- {
- byte cidr;
- bool parsed = IPNetwork2.TryGuessCidr("10.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(8, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrB()
- {
- byte cidr;
- bool parsed = IPNetwork2.TryGuessCidr("172.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(16, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrC()
- {
- byte cidr;
- bool parsed = IPNetwork2.TryGuessCidr("192.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(24, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrD()
- {
- byte cidr;
- bool parsed = IPNetwork2.TryGuessCidr("224.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(24, cidr, "cidr");
- }
-
- [TestMethod]
- public void TestTryGuessCidrE()
- {
- byte cidr;
- bool parsed = IPNetwork2.TryGuessCidr("240.0.0.0", out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(24, cidr, "cidr");
- }
-
- #endregion
-
- #region Print
-
- [TestMethod]
- public void Print()
- {
- var ipn = IPNetwork2.Parse("0.0.0.0/0");
- string print = ipn.Print().Replace("\r", string.Empty);
- string expected = @"IPNetwork : 0.0.0.0/0
-Network : 0.0.0.0
-Netmask : 0.0.0.0
-Cidr : 0
-Broadcast : 255.255.255.255
-FirstUsable : 0.0.0.1
-LastUsable : 255.255.255.254
-Usable : 4294967294
-".Replace("\r", string.Empty);
-
- Assert.AreEqual(expected, print, "Print");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void PrintNull()
- {
- IPNetwork2 ipn = null;
-#pragma warning disable 0618
- string print = IPNetwork2.Print(ipn);
-#pragma warning restore 0618
- }
-
- [TestMethod]
- public void PrintStatic()
- {
- IPNetwork2 ipn = IPNetwork2.IANA_ABLK_RESERVED1;
-#pragma warning disable 0618
- string print = IPNetwork2.Print(ipn);
-#pragma warning restore 0618
- }
-
- #endregion
-
- #region Sort
-
- [TestMethod]
- public void TestSort1()
- {
- string[] ips = new[] { "1.1.1.1", "255.255.255.255", "2.2.2.2", "0.0.0.0" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- ipns.Sort();
- Assert.AreEqual("0.0.0.0/32", ipns[0].ToString(), "0");
- Assert.AreEqual("1.1.1.1/32", ipns[1].ToString(), "1");
- Assert.AreEqual("2.2.2.2/32", ipns[2].ToString(), "2");
- Assert.AreEqual("255.255.255.255/32", ipns[3].ToString(), "3");
- }
-
- [TestMethod]
- public void TestSort2()
- {
- string[] ips = new[] { "0.0.0.100/32", "0.0.0.0/24" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- ipns.Sort();
- Assert.AreEqual("0.0.0.0/24", ipns[0].ToString(), "0");
- Assert.AreEqual("0.0.0.100/32", ipns[1].ToString(), "1");
- }
-
- #endregion
-
- #region TryWideSubnet
-
- [TestMethod]
- public void TryWideSubnet1()
- {
- string[] ips = new[] { "1.1.1.1", "255.255.255.255", "2.2.2.2", "0.0.0.0" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- IPNetwork2 ipnetwork = null;
- bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
- Assert.AreEqual(true, wide, "wide");
- Assert.AreEqual("0.0.0.0/0", ipnetwork.ToString(), "ipnetwork");
- }
-
- [TestMethod]
- public void TryWideSubnet2()
- {
- string[] ips = new[] { "1.1.1.1", "10.0.0.0", "2.2.2.2", "0.0.0.0" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- IPNetwork2 ipnetwork = null;
- bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
- Assert.AreEqual(true, wide, "wide");
- Assert.AreEqual("0.0.0.0/4", ipnetwork.ToString(), "ipnetwork");
- }
-
- [TestMethod]
- public void TryWideSubnet3()
- {
- string[] ips = new[] { "a", "b", "c", "d" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- IPNetwork2 ipnetwork = null;
- bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
- Assert.AreEqual(false, wide, "wide");
- }
-
- [TestMethod]
- public void TryWideSubnet4()
- {
- string[] ips = new[] { "a", "b", "1.1.1.1", "d" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- IPNetwork2 ipnetwork = null;
- bool wide = IPNetwork2.TryWideSubnet(ipns.ToArray(), out ipnetwork);
- Assert.AreEqual(true, wide, "wide");
- Assert.AreEqual("1.1.1.1/32", ipnetwork.ToString(), "ipnetwork");
- }
-
- [TestMethod]
- public void TryWideSubnetNull()
- {
- IPNetwork2 ipnetwork = null;
- bool wide = IPNetwork2.TryWideSubnet(null, out ipnetwork);
- Assert.AreEqual(false, wide, "wide");
- }
-
- #endregion
-
- #region WideSubnet
-
- [TestMethod]
- public void WideSubnet1()
- {
- string[] ips = new[] { "1.1.1.1", "255.255.255.255", "2.2.2.2", "0.0.0.0" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
- Assert.AreEqual("0.0.0.0/0", ipnetwork.ToString(), "ipnetwork");
- }
-
- [TestMethod]
- public void WideSubnet2()
- {
- string[] ips = new[] { "1.1.1.1", "10.0.0.0", "2.2.2.2", "0.0.0.0" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
- Assert.AreEqual("0.0.0.0/4", ipnetwork.ToString(), "ipnetwork");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void WideSubnetNull()
- {
- var ipnetwork = IPNetwork2.WideSubnet(null);
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void WideSubnetNull2()
- {
- string[] ips = new[] { "a", "b", "e", "d" };
- var ipns = new List();
- foreach (string ip in ips)
- {
- IPNetwork2 ipn;
- if (IPNetwork2.TryParse(ip, 32, out ipn))
- {
- ipns.Add(ipn);
- }
- }
-
- var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void WideSubnetMixed()
- {
- var ipns = new List
- {
- IPNetwork2.IANA_ABLK_RESERVED1,
- IPNetwork2.Parse("2001:0db8::/64"),
- };
- var ipnetwork = IPNetwork2.WideSubnet(ipns.ToArray());
- }
-
- #endregion
-
- #region resize
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestResize1()
- {
- byte[] resut = IPNetwork2.Resize(new byte[33], Sockets.AddressFamily.InterNetwork);
- }
-
- #endregion
-
- #region Count
- [TestMethod]
- public void TestTotal32()
- {
- var network = IPNetwork2.Parse("0.0.0.0/32");
- int total = 1;
- Assert.AreEqual(total, network.Total, "Total");
- }
-
- [TestMethod]
- public void TestTotal31()
- {
- var network = IPNetwork2.Parse("0.0.0.0/31");
- int total = 2;
- Assert.AreEqual(total, network.Total, "Total");
- }
-
- [TestMethod]
- public void TestTotal30()
- {
- var network = IPNetwork2.Parse("0.0.0.0/30");
- int total = 4;
- Assert.AreEqual(total, network.Total, "Total");
- }
-
- [TestMethod]
- public void TestTotal24()
- {
- var network = IPNetwork2.Parse("0.0.0.0/24");
- int total = 256;
- Assert.AreEqual(total, network.Total, "Total");
- }
-
- [TestMethod]
- public void TestTotal16()
- {
- var network = IPNetwork2.Parse("0.0.0.0/16");
- int total = 65536;
- Assert.AreEqual(total, network.Total, "Total");
- }
-
- [TestMethod]
- public void TestTotal8()
- {
- var network = IPNetwork2.Parse("0.0.0.0/8");
- int total = 16777216;
- Assert.AreEqual(total, network.Total, "Total");
- }
-
- [TestMethod]
- public void TestTotal0()
- {
- var network = IPNetwork2.Parse("0.0.0.0/0");
- long total = 4294967296;
- Assert.AreEqual(total, network.Total, "Total");
- }
-
- #endregion
-
- #region Usable
-
- [TestMethod]
- public void Usable32()
- {
- var network = IPNetwork2.Parse("0.0.0.0/32");
- uint usable = 0;
- Assert.AreEqual(usable, network.Usable, "Usable");
- }
-
- [TestMethod]
- public void Usable31()
- {
- var network = IPNetwork2.Parse("0.0.0.0/31");
- uint usable = 0;
- Assert.AreEqual(usable, network.Usable, "Usable");
- }
-
- [TestMethod]
- public void Usable30()
- {
- var network = IPNetwork2.Parse("0.0.0.0/30");
- uint usable = 2;
- Assert.AreEqual(usable, network.Usable, "Usable");
- }
-
- [TestMethod]
- public void Usable24()
- {
- var network = IPNetwork2.Parse("0.0.0.0/24");
- uint usable = 254;
- Assert.AreEqual(usable, network.Usable, "Usable");
- }
-
- [TestMethod]
- public void Usable16()
- {
- var network = IPNetwork2.Parse("0.0.0.0/16");
- uint usable = 65534;
- Assert.AreEqual(usable, network.Usable, "Usable");
- }
-
- [TestMethod]
- public void Usable8()
- {
- var network = IPNetwork2.Parse("0.0.0.0/8");
- uint usable = 16777214;
- Assert.AreEqual(usable, network.Usable, "Usable");
- }
-
- [TestMethod]
- public void Usable0()
- {
- var network = IPNetwork2.Parse("0.0.0.0/0");
- uint usable = 4294967294;
- Assert.AreEqual(usable, network.Usable, "Usable");
- }
-
- #endregion
-
- #region TryParseCidr
-
- [TestMethod]
- public void TryParseCidr1()
- {
- string sidr = "0";
- byte? cidr;
- byte? result = 0;
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetwork, out cidr);
-
- Assert.AreEqual(true, parsed, "parsed");
- Assert.AreEqual(result, cidr, "cidr");
- }
-
- [TestMethod]
- public void TryParseCidr2()
- {
- string sidr = "sadsd";
- byte? cidr;
- byte? result = null;
-
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetwork, out cidr);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(result, cidr, "cidr");
- }
-
- [TestMethod]
- public void TryParseCidr3()
- {
- string sidr = "33";
- byte? cidr;
- byte? result = null;
-
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetwork, out cidr);
-
- Assert.AreEqual(false, parsed, "parsed");
- Assert.AreEqual(result, cidr, "cidr");
- }
-
- #endregion
-
- #region Compare
-
- [TestMethod]
- public void TestCompareTo1()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- var ipn2 = IPNetwork2.Parse("10.0.0.2/16");
-
- int comparison = ipn1.CompareTo(ipn2);
-
- Assert.AreEqual(0, comparison, "compare");
- }
-
- [TestMethod]
- public void TestCompareTo2()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- object ipn2 = (object)IPNetwork2.Parse("10.0.0.2/16");
-
- int comparison = ipn1.CompareTo(ipn2);
-
- Assert.AreEqual(0, comparison, "compare");
- }
-
- [TestMethod]
- public void TestCompareTo3()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- object ipn2 = null;
-
- int comparison = ipn1.CompareTo(ipn2);
-
- Assert.AreEqual(1, comparison, "compare");
- }
-
- [TestMethod]
- public void TestCompareTo4()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- IPNetwork2 ipn2 = null;
-
- int comparison = ipn1.CompareTo(ipn2);
-
- Assert.AreEqual(1, comparison, "compare");
- }
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestCompareTo5()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- string ipn2 = string.Empty;
-
- int comparison = ipn1.CompareTo(ipn2);
- }
-
- [TestMethod]
- public void TestCompareTo6()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- int comparison = ipn1.CompareTo(ipn1);
-
- Assert.AreEqual(0, comparison, "compare");
- }
-
- [TestMethod]
- public void TestCompare1()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- int comparison = IPNetwork2.Compare(null, ipn1);
-
- Assert.AreEqual(-1, comparison, "compare");
- }
-
- [TestMethod]
- public void TestCompare2()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/16");
- var ipn2 = IPNetwork2.Parse("20.0.0.1/16");
- int comparison = IPNetwork2.Compare(ipn1, ipn2);
-
- Assert.AreEqual(-1, comparison, "compare");
- }
-
- #endregion
-
- #region Operator
-
- [TestMethod]
- public void TestOperatorGreater1()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
-
- bool greater = ipn1 > ipn2;
-
- Assert.AreEqual(false, greater, "greater");
- }
-
- [TestMethod]
- public void TestOperatorGreater2()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
-
- bool greater = ipn1 > ipn2;
-
- Assert.AreEqual(true, greater, "greater");
- }
-
- [TestMethod]
- public void TestOperatorLower1()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
-
- bool lower = ipn1 < ipn2;
-
- Assert.AreEqual(true, lower, "lower");
- }
-
- [TestMethod]
- public void TestOperatorLower2()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
-
- bool lower = ipn1 < ipn2;
-
- Assert.AreEqual(false, lower, "lower");
- }
-
- [TestMethod]
- public void TestOperatorDifferent1()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
-
- bool different = ipn1 != ipn2;
-
- Assert.AreEqual(true, different, "different");
- }
-
- [TestMethod]
- public void TestOperatorDifferent2()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.1/32");
-
- bool different = ipn1 != ipn2;
-
- Assert.AreEqual(false, different, "different");
- }
-
- [TestMethod]
- public void TestOperatorEqual1()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.100/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.2/32");
-
- bool eq = ipn1 == ipn2;
-
- Assert.AreEqual(false, eq, "eq");
- }
-
- [TestMethod]
- public void TestOperatorEqual2()
- {
- var ipn1 = IPNetwork2.Parse("10.0.0.1/32");
- var ipn2 = IPNetwork2.Parse("10.0.0.1/32");
-
- bool eq = ipn1 == ipn2;
-
- Assert.AreEqual(true, eq, "eq");
- }
-
- #endregion
- }
-}
diff --git a/src/TestProject/IPNetworkV6UnitTest.cs b/src/TestProject/IPNetworkV6UnitTest.cs
index 6df57cd7..8663b532 100644
--- a/src/TestProject/IPNetworkV6UnitTest.cs
+++ b/src/TestProject/IPNetworkV6UnitTest.cs
@@ -1,55 +1,52 @@
-//
-// Copyright (c) IPNetwork. All rights reserved.
-//
-
-namespace System.Net.TestProject
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class IPNetworkV6UnitTest
{
- using System.Numerics;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- [TestClass]
- public class IPNetworkV6UnitTest
- {
- #region Parse
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE8()
- {
+ #region Parse
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne8()
+ {
var ipnet = IPNetwork2.Parse("xxxx::", "xxxx::");
}
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE9()
- {
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne9()
+ {
var ipnet = IPNetwork2.Parse("::", "xxxx::");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE10()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne10()
+ {
var ipnet = IPNetwork2.Parse("xxxx::", 0);
}
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseIPAddressNetmaskANE11()
- {
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseIPAddressNetmaskAne11()
+ {
var ipnet = IPNetwork2.Parse("::", 129);
}
- [TestMethod]
- public void TestParsev6_128()
- {
+ [TestMethod]
+ public void TestParsev6_128()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "2001:db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
string network = "2001:db8::";
string netmask2 = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
-
+
// string broadcast = "2001:db8::";
string firstUsable = "2001:db8::";
string lastUsable = "2001:db8::";
@@ -65,18 +62,18 @@ public void TestParsev6_128()
Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
- }
-
- [TestMethod]
- public void TestParsev6_127()
- {
+ }
+
+ [TestMethod]
+ public void TestParsev6_127()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "2001:db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe";
string network = "2001:db8::";
string netmask2 = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe";
-
+
// string broadcast = "2001:db8::1";
string firstUsable = "2001:db8::";
string lastUsable = "2001:db8::1";
@@ -94,16 +91,16 @@ public void TestParsev6_127()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParsev6_126()
- {
+ [TestMethod]
+ public void TestParsev6_126()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "2001:db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffc";
string network = "2001:db8::";
string netmask2 = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffc";
-
+
// string broadcast = "2001:db8::3";
string firstUsable = "2001:db8::";
string lastUsable = "2001:db8::3";
@@ -121,16 +118,16 @@ public void TestParsev6_126()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParsev6_125()
- {
+ [TestMethod]
+ public void TestParsev6_125()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "2001:db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff8";
string network = "2001:db8::";
string netmask2 = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff8";
-
+
// string broadcast = "2001:db8::7";
string firstUsable = "2001:db8::";
string lastUsable = "2001:db8::7";
@@ -148,16 +145,16 @@ public void TestParsev6_125()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParsev6_124()
- {
+ [TestMethod]
+ public void TestParsev6_124()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "2001:db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0";
string network = "2001:db8::";
string netmask2 = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0";
-
+
// string broadcast = "2001:db8::f";
string firstUsable = "2001:db8::";
string lastUsable = "2001:db8::f";
@@ -174,17 +171,17 @@ public void TestParsev6_124()
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParsev6_123()
- {
+
+ [TestMethod]
+ public void TestParsev6_123()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "2001:0db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffe0";
string network = "2001:db8::";
string netmask2 = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffe0";
-
+
// string broadcast = "2001:db8::1f";
string firstUsable = "2001:db8::";
string lastUsable = "2001:db8::1f";
@@ -201,17 +198,17 @@ public void TestParsev6_123()
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParsev6_112()
- {
+
+ [TestMethod]
+ public void TestParsev6_112()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0000";
string network = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0";
string netmask2 = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0";
-
+
// string broadcast = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
string firstUsable = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0";
string lastUsable = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
@@ -229,16 +226,16 @@ public void TestParsev6_112()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParsev6_64()
- {
+ [TestMethod]
+ public void TestParsev6_64()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "ffff:ffff:ffff:ffff:1234:1234:1234:1234";
string netmask = "ffff:ffff:ffff:ffff:0000:0000:0000:0000";
string network = "ffff:ffff:ffff:ffff::";
string netmask2 = "ffff:ffff:ffff:ffff::";
-
+
// string broadcast = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
string firstUsable = "ffff:ffff:ffff:ffff::";
string lastUsable = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
@@ -256,16 +253,16 @@ public void TestParsev6_64()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParsev6_16()
- {
+ [TestMethod]
+ public void TestParsev6_16()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
string netmask = "ffff:0000:0000:0000:0000:0000:0000:0000";
string network = "ffff::";
string netmask2 = "ffff::";
-
+
// string broadcast = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
string firstUsable = "ffff::";
string lastUsable = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
@@ -282,10 +279,10 @@ public void TestParsev6_16()
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParsev6_EDGE()
- {
+
+ [TestMethod]
+ public void TestParsev6_EDGE()
+ {
IPNetwork2 ipnetwork = null;
string ipaddress = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
@@ -308,13 +305,13 @@ public void TestParsev6_EDGE()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- #endregion
+ #endregion
- #region ParseString
+ #region ParseString
- [TestMethod]
- public void TestParseString1()
- {
+ [TestMethod]
+ public void TestParseString1()
+ {
string ipaddress = "2001:0db8:: ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0";
string network = "2001:db8::";
@@ -334,9 +331,9 @@ public void TestParseString1()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseString3()
- {
+ [TestMethod]
+ public void TestParseString3()
+ {
string ipaddress = ":: ::";
string network = "::";
@@ -356,9 +353,9 @@ public void TestParseString3()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseString4()
- {
+ [TestMethod]
+ public void TestParseString4()
+ {
string ipaddress = "::/0";
string network = "::";
@@ -377,10 +374,10 @@ public void TestParseString4()
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParseString5()
- {
+
+ [TestMethod]
+ public void TestParseString5()
+ {
string ipaddress = "::/32";
string network = "::";
@@ -399,10 +396,10 @@ public void TestParseString5()
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParseString6()
- {
+
+ [TestMethod]
+ public void TestParseString6()
+ {
string ipaddress = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128";
string network = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
@@ -421,10 +418,10 @@ public void TestParseString6()
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParseString7_Uppercase_ipv6_must_parse()
- {
+
+ [TestMethod]
+ public void TestParseString7_Uppercase_ipv6_must_parse()
+ {
string ipaddress = "2FFF:FFFF:123::/60";
string network = "2fff:ffff:123::";
@@ -432,22 +429,22 @@ public void TestParseString7_Uppercase_ipv6_must_parse()
string firstUsable = "2fff:ffff:123::";
string lastUsable = "2fff:ffff:123:f:ffff:ffff:ffff:ffff";
byte cidr = 60;
-
+
// BigInteger usable = 295147905179352825856;
var ipnetwork = IPNetwork2.Parse(ipaddress);
Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
Assert.AreEqual(null, ipnetwork.Broadcast, "Broadcast");
Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
-
+
// Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseString8_Uppercase_ipv6_must_parse()
- {
+ [TestMethod]
+ public void TestParseString8_Uppercase_ipv6_must_parse()
+ {
string ipaddress = "2FFF:FFFE:123::/60";
string network = "2fff:fffe:123::";
@@ -455,22 +452,22 @@ public void TestParseString8_Uppercase_ipv6_must_parse()
string firstUsable = "2fff:fffe:123::";
string lastUsable = "2fff:fffe:123:f:ffff:ffff:ffff:ffff";
byte cidr = 60;
-
+
// BigInteger usable = 295147905179352825856;
var ipnetwork = IPNetwork2.Parse(ipaddress);
Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
Assert.AreEqual(null, ipnetwork.Broadcast, "Broadcast");
Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
-
+
// Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseString9_Uppercase_ipv6_must_parse()
- {
+ [TestMethod]
+ public void TestParseString9_Uppercase_ipv6_must_parse()
+ {
string ipaddress = "2FFF:FFFC:123::/60";
string network = "2fff:fffc:123::";
@@ -478,22 +475,22 @@ public void TestParseString9_Uppercase_ipv6_must_parse()
string firstUsable = "2fff:fffc:123::";
string lastUsable = "2fff:fffc:123:f:ffff:ffff:ffff:ffff";
byte cidr = 60;
-
+
// BigInteger usable = 295147905179352825856;
var ipnetwork = IPNetwork2.Parse(ipaddress);
Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
Assert.AreEqual(null, ipnetwork.Broadcast, "Broadcast");
Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
-
+
// Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParseString10_Uppercase_ipv6_must_parse()
- {
+
+ [TestMethod]
+ public void TestParseString10_Uppercase_ipv6_must_parse()
+ {
string ipaddress = "2FFF:FFFA:123::/60";
string network = "2fff:fffa:123::";
@@ -501,22 +498,22 @@ public void TestParseString10_Uppercase_ipv6_must_parse()
string firstUsable = "2fff:fffa:123::";
string lastUsable = "2fff:fffa:123:f:ffff:ffff:ffff:ffff";
byte cidr = 60;
-
+
// BigInteger usable = 295147905179352825856;
var ipnetwork = IPNetwork2.Parse(ipaddress);
Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
Assert.AreEqual(null, ipnetwork.Broadcast, "Broadcast");
Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
-
+
// Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParseString11_Uppercase_ipv6_must_parse()
- {
+
+ [TestMethod]
+ public void TestParseString11_Uppercase_ipv6_must_parse()
+ {
string ipaddress = "FFFF:FFF1:123::/60";
string network = "ffff:fff1:123::";
@@ -524,25 +521,25 @@ public void TestParseString11_Uppercase_ipv6_must_parse()
string firstUsable = "ffff:fff1:123::";
string lastUsable = "ffff:fff1:123:f:ffff:ffff:ffff:ffff";
byte cidr = 60;
-
+
// BigInteger usable = 295147905179352825856;
var ipnetwork = IPNetwork2.Parse(ipaddress);
Assert.AreEqual(network, ipnetwork.Network.ToString(), "Network");
Assert.AreEqual(netmask, ipnetwork.Netmask.ToString(), "Netmask");
Assert.AreEqual(null, ipnetwork.Broadcast, "Broadcast");
Assert.AreEqual(cidr, ipnetwork.Cidr, "Cidr");
-
+
// Assert.AreEqual(usable, ipnetwork.Usable, "Usable");
Assert.AreEqual(firstUsable, ipnetwork.FirstUsable.ToString(), "FirstUsable");
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
-
- [TestMethod]
- public void TestParseIPAddressNoNetmask1()
- {
+
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask1()
+ {
string ipaddress = "2001:0db8::";
var ipnetwork = IPNetwork2.Parse(ipaddress);
-
+
string network = "2001:db8::";
string netmask = "ffff:ffff:ffff:ffff::";
string firstUsable = "2001:db8::";
@@ -559,12 +556,12 @@ public void TestParseIPAddressNoNetmask1()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask4()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask4()
+ {
string ipaddress = "::";
var ipnetwork = IPNetwork2.Parse(ipaddress);
-
+
string network = "::";
string netmask = "ffff:ffff:ffff:ffff::";
string firstUsable = "::";
@@ -581,9 +578,9 @@ public void TestParseIPAddressNoNetmask4()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask5()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask5()
+ {
string ipaddress = "2001:0db8::1";
var ipnetwork = IPNetwork2.Parse(ipaddress);
@@ -603,14 +600,14 @@ public void TestParseIPAddressNoNetmask5()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask1_ClassFull()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask1_ClassFull()
+ {
string ipaddress = "2001:0db8::";
ICidrGuess cidrGess = CidrGuess.ClassFull;
var ipnetwork = IPNetwork2.Parse(ipaddress, cidrGess);
-
+
string network = "2001:db8::";
string netmask = "ffff:ffff:ffff:ffff::";
string firstUsable = "2001:db8::";
@@ -627,14 +624,14 @@ public void TestParseIPAddressNoNetmask1_ClassFull()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask4_ClassFull()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask4_ClassFull()
+ {
string ipaddress = "::";
- ICidrGuess cidrGess = CidrGuess.ClassFull;
-
+ ICidrGuess cidrGess = CidrGuess.ClassFull;
+
var ipnetwork = IPNetwork2.Parse(ipaddress, cidrGess);
-
+
string network = "::";
string netmask = "ffff:ffff:ffff:ffff::";
string firstUsable = "::";
@@ -651,12 +648,12 @@ public void TestParseIPAddressNoNetmask4_ClassFull()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask5_ClassFull()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask5_ClassFull()
+ {
string ipaddress = "2001:0db8::1";
- ICidrGuess cidrGess = CidrGuess.ClassFull;
-
+ ICidrGuess cidrGess = CidrGuess.ClassFull;
+
var ipnetwork = IPNetwork2.Parse(ipaddress, cidrGess);
string network = "2001:db8::";
@@ -675,9 +672,9 @@ public void TestParseIPAddressNoNetmask5_ClassFull()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask1_ClassLess()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask1_ClassLess()
+ {
string ipaddress = "2001:0db8::";
ICidrGuess cidrGess = CidrGuess.ClassLess;
@@ -699,12 +696,12 @@ public void TestParseIPAddressNoNetmask1_ClassLess()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask4_ClassLess()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask4_ClassLess()
+ {
string ipaddress = "::";
- ICidrGuess cidrGess = CidrGuess.ClassLess;
-
+ ICidrGuess cidrGess = CidrGuess.ClassLess;
+
var ipnetwork = IPNetwork2.Parse(ipaddress, cidrGess);
string network = "::";
@@ -723,12 +720,12 @@ public void TestParseIPAddressNoNetmask4_ClassLess()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- public void TestParseIPAddressNoNetmask5_ClassLess()
- {
+ [TestMethod]
+ public void TestParseIPAddressNoNetmask5_ClassLess()
+ {
string ipaddress = "2001:0db8::1";
- ICidrGuess cidrGess = CidrGuess.ClassLess;
-
+ ICidrGuess cidrGess = CidrGuess.ClassLess;
+
var ipnetwork = IPNetwork2.Parse(ipaddress, cidrGess);
string network = "2001:db8::1";
@@ -747,37 +744,37 @@ public void TestParseIPAddressNoNetmask5_ClassLess()
Assert.AreEqual(lastUsable, ipnetwork.LastUsable.ToString(), "LastUsable");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseStringAE1()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseStringAe1()
+ {
string ipaddress = "garbage";
var ipnetwork = IPNetwork2.Parse(ipaddress);
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestParseStringAE2()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestParseStringAe2()
+ {
string ipaddress = "0:0:0:0:0:0:1:0:0 0:1:2:3:4:5:6:7:8";
var ipnetwork = IPNetwork2.Parse(ipaddress);
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringANE1()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringAne1()
+ {
string ipaddress = null;
var ipnetwork = IPNetwork2.Parse(ipaddress);
}
-
- #endregion
- #region ParseStringString
+ #endregion
+
+ #region ParseStringString
- [TestMethod]
- public void TestParseStringString1()
- {
+ [TestMethod]
+ public void TestParseStringString1()
+ {
string ipaddress = "2001:0db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0";
@@ -785,33 +782,33 @@ public void TestParseStringString1()
Assert.AreEqual("2001:db8::/124", ipnetwork.ToString(), "network");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringString3()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringString3()
+ {
string ipaddress = "2001:0db8::";
string netmask = null;
var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
}
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestParseStringString5()
- {
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestParseStringString5()
+ {
string ipaddress = "2001:0db8::";
string netmask = string.Empty;
var ipnetwork = IPNetwork2.Parse(ipaddress, netmask);
}
- #endregion
+ #endregion
- #region ParseIpIp
+ #region ParseIpIp
- [TestMethod]
- public void ParseIpIp1()
- {
+ [TestMethod]
+ public void ParseIpIp1()
+ {
string ipaddress = "2001:0db8::";
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0";
var ip = IPAddress.Parse(ipaddress);
@@ -820,58 +817,59 @@ public void ParseIpIp1()
Assert.AreEqual("2001:db8::/124", ipnetwork.ToString(), "network");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void ParseIpIp3()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void ParseIpIp3()
+ {
string ipaddress = "2001:0db8::";
var ip = IPAddress.Parse(ipaddress);
IPAddress netm = null;
var ipnetwork = IPNetwork2.Parse(ip, netm);
}
- #endregion
+ #endregion
- #region CtorWithIpAndCidr
+ #region CtorWithIpAndCidr
- [TestMethod]
- public void CtorWithIpAndCidr1()
- {
+ [TestMethod]
+ public void CtorWithIpAndCidr1()
+ {
string ipaddress = "2001:0db8::";
var ip = IPAddress.Parse(ipaddress);
var ipnetwork = new IPNetwork2(ip, 124);
Assert.AreEqual("2001:db8::/124", ipnetwork.ToString(), "network");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void CtorWithIpAndCidr2()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void CtorWithIpAndCidr2()
+ {
string ipaddress = "2001:db8::";
var ip = IPAddress.Parse(ipaddress);
var ipnetwork = new IPNetwork2(ip, 129);
}
- #endregion
-
- #region ToCidr
-
- [TestMethod]
- public void TestToCidrAE()
- {
+
+ #endregion
+
+ #region ToCidr
+
+ [TestMethod]
+ public void TestToCidrAe()
+ {
byte cidr = IPNetwork2.ToCidr(IPAddress.IPv6Any);
Assert.AreEqual(0, cidr, "cidr");
}
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestToCidrAE2()
- {
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestToCidrAe2()
+ {
IPNetwork2.ToCidr(IPAddress.Parse("2001:db8:3:4:5:6:7:8"));
}
-
- [TestMethod]
- public void TestToCidr128()
- {
+
+ [TestMethod]
+ public void TestToCidr128()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff");
byte cidr = 128;
int result = IPNetwork2.ToCidr(mask);
@@ -879,9 +877,9 @@ public void TestToCidr128()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr127()
- {
+ [TestMethod]
+ public void TestToCidr127()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe");
byte cidr = 127;
int result = IPNetwork2.ToCidr(mask);
@@ -889,9 +887,9 @@ public void TestToCidr127()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr126()
- {
+ [TestMethod]
+ public void TestToCidr126()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffc");
byte cidr = 126;
int result = IPNetwork2.ToCidr(mask);
@@ -899,19 +897,19 @@ public void TestToCidr126()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr125()
- {
+ [TestMethod]
+ public void TestToCidr125()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff8");
byte cidr = 125;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr124()
- {
+
+ [TestMethod]
+ public void TestToCidr124()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0");
byte cidr = 124;
int result = IPNetwork2.ToCidr(mask);
@@ -919,9 +917,9 @@ public void TestToCidr124()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr123()
- {
+ [TestMethod]
+ public void TestToCidr123()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffe0");
byte cidr = 123;
int result = IPNetwork2.ToCidr(mask);
@@ -929,9 +927,9 @@ public void TestToCidr123()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr122()
- {
+ [TestMethod]
+ public void TestToCidr122()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffc0");
byte cidr = 122;
int result = IPNetwork2.ToCidr(mask);
@@ -939,19 +937,19 @@ public void TestToCidr122()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr121()
- {
+ [TestMethod]
+ public void TestToCidr121()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff80");
byte cidr = 121;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr120()
- {
+
+ [TestMethod]
+ public void TestToCidr120()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00");
byte cidr = 120;
int result = IPNetwork2.ToCidr(mask);
@@ -959,9 +957,9 @@ public void TestToCidr120()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr119()
- {
+ [TestMethod]
+ public void TestToCidr119()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fe00");
byte cidr = 119;
int result = IPNetwork2.ToCidr(mask);
@@ -969,9 +967,9 @@ public void TestToCidr119()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr118()
- {
+ [TestMethod]
+ public void TestToCidr118()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fc00");
byte cidr = 118;
int result = IPNetwork2.ToCidr(mask);
@@ -979,19 +977,19 @@ public void TestToCidr118()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr117()
- {
+ [TestMethod]
+ public void TestToCidr117()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:f800");
byte cidr = 117;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr116()
- {
+
+ [TestMethod]
+ public void TestToCidr116()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:f000");
byte cidr = 116;
int result = IPNetwork2.ToCidr(mask);
@@ -999,9 +997,9 @@ public void TestToCidr116()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr115()
- {
+ [TestMethod]
+ public void TestToCidr115()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:e000");
byte cidr = 115;
int result = IPNetwork2.ToCidr(mask);
@@ -1009,9 +1007,9 @@ public void TestToCidr115()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr114()
- {
+ [TestMethod]
+ public void TestToCidr114()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:c000");
byte cidr = 114;
int result = IPNetwork2.ToCidr(mask);
@@ -1019,29 +1017,29 @@ public void TestToCidr114()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr113()
- {
+ [TestMethod]
+ public void TestToCidr113()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:8000");
byte cidr = 113;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr112()
- {
+
+ [TestMethod]
+ public void TestToCidr112()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:0000");
byte cidr = 112;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr111()
- {
+
+ [TestMethod]
+ public void TestToCidr111()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fffe:0");
byte cidr = 111;
int result = IPNetwork2.ToCidr(mask);
@@ -1049,9 +1047,9 @@ public void TestToCidr111()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr110()
- {
+ [TestMethod]
+ public void TestToCidr110()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fffc:0");
byte cidr = 110;
int result = IPNetwork2.ToCidr(mask);
@@ -1059,53 +1057,53 @@ public void TestToCidr110()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestToCidr109()
- {
+ [TestMethod]
+ public void TestToCidr109()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fff8:0");
byte cidr = 109;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr108()
- {
+
+ [TestMethod]
+ public void TestToCidr108()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fff0:0");
byte cidr = 108;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr001()
- {
+
+ [TestMethod]
+ public void TestToCidr001()
+ {
var mask = IPAddress.Parse("8000::");
byte cidr = 1;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestToCidr000()
- {
+
+ [TestMethod]
+ public void TestToCidr000()
+ {
var mask = IPAddress.Parse("::");
byte cidr = 0;
int result = IPNetwork2.ToCidr(mask);
Assert.AreEqual(cidr, result, "cidr");
- }
-
- #endregion
-
- #region TryToCidr
-
- [TestMethod]
- public void TestTryToCidr128()
- {
+ }
+
+ #endregion
+
+ #region TryToCidr
+
+ [TestMethod]
+ public void TestTryToCidr128()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff");
byte cidr = 128;
byte? result = 0;
@@ -1115,9 +1113,9 @@ public void TestTryToCidr128()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr127()
- {
+ [TestMethod]
+ public void TestTryToCidr127()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe");
byte cidr = 127;
byte? result = 0;
@@ -1127,9 +1125,9 @@ public void TestTryToCidr127()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr126()
- {
+ [TestMethod]
+ public void TestTryToCidr126()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffc");
byte cidr = 126;
byte? result = 0;
@@ -1139,9 +1137,9 @@ public void TestTryToCidr126()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr125()
- {
+ [TestMethod]
+ public void TestTryToCidr125()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff8");
byte cidr = 125;
byte? result = 0;
@@ -1150,10 +1148,10 @@ public void TestTryToCidr125()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr124()
- {
+
+ [TestMethod]
+ public void TestTryToCidr124()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0");
byte cidr = 124;
byte? result = 0;
@@ -1163,9 +1161,9 @@ public void TestTryToCidr124()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr123()
- {
+ [TestMethod]
+ public void TestTryToCidr123()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffe0");
byte cidr = 123;
byte? result = 0;
@@ -1175,9 +1173,9 @@ public void TestTryToCidr123()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr122()
- {
+ [TestMethod]
+ public void TestTryToCidr122()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffc0");
byte cidr = 122;
byte? result = 0;
@@ -1187,9 +1185,9 @@ public void TestTryToCidr122()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr121()
- {
+ [TestMethod]
+ public void TestTryToCidr121()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff80");
byte cidr = 121;
byte? result = 0;
@@ -1198,10 +1196,10 @@ public void TestTryToCidr121()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr120()
- {
+
+ [TestMethod]
+ public void TestTryToCidr120()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00");
byte cidr = 120;
byte? result = 0;
@@ -1211,9 +1209,9 @@ public void TestTryToCidr120()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr119()
- {
+ [TestMethod]
+ public void TestTryToCidr119()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fe00");
byte cidr = 119;
byte? result = 0;
@@ -1223,9 +1221,9 @@ public void TestTryToCidr119()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr118()
- {
+ [TestMethod]
+ public void TestTryToCidr118()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fc00");
byte cidr = 118;
byte? result = 0;
@@ -1235,9 +1233,9 @@ public void TestTryToCidr118()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr117()
- {
+ [TestMethod]
+ public void TestTryToCidr117()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:f800");
byte cidr = 117;
byte? result = 0;
@@ -1246,10 +1244,10 @@ public void TestTryToCidr117()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr116()
- {
+
+ [TestMethod]
+ public void TestTryToCidr116()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:f000");
byte cidr = 116;
byte? result = 0;
@@ -1259,9 +1257,9 @@ public void TestTryToCidr116()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr115()
- {
+ [TestMethod]
+ public void TestTryToCidr115()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:e000");
byte cidr = 115;
byte? result = 0;
@@ -1271,9 +1269,9 @@ public void TestTryToCidr115()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr114()
- {
+ [TestMethod]
+ public void TestTryToCidr114()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:c000");
byte cidr = 114;
byte? result = 0;
@@ -1283,9 +1281,9 @@ public void TestTryToCidr114()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr113()
- {
+ [TestMethod]
+ public void TestTryToCidr113()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:8000");
byte cidr = 113;
byte? result = 0;
@@ -1294,10 +1292,10 @@ public void TestTryToCidr113()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr112()
- {
+
+ [TestMethod]
+ public void TestTryToCidr112()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:0000");
byte cidr = 112;
byte? result = 0;
@@ -1306,10 +1304,10 @@ public void TestTryToCidr112()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr111()
- {
+
+ [TestMethod]
+ public void TestTryToCidr111()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fffe:0");
byte cidr = 111;
byte? result = 0;
@@ -1319,9 +1317,9 @@ public void TestTryToCidr111()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr110()
- {
+ [TestMethod]
+ public void TestTryToCidr110()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fffc:0");
byte cidr = 110;
byte? result = 0;
@@ -1331,9 +1329,9 @@ public void TestTryToCidr110()
Assert.AreEqual(cidr, result, "cidr");
}
- [TestMethod]
- public void TestTryToCidr109()
- {
+ [TestMethod]
+ public void TestTryToCidr109()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fff8:0");
byte cidr = 109;
byte? result = 0;
@@ -1342,10 +1340,10 @@ public void TestTryToCidr109()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr108()
- {
+
+ [TestMethod]
+ public void TestTryToCidr108()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:fff0:0");
byte cidr = 108;
byte? result = 0;
@@ -1354,10 +1352,10 @@ public void TestTryToCidr108()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr001()
- {
+
+ [TestMethod]
+ public void TestTryToCidr001()
+ {
var mask = IPAddress.Parse("8000::");
byte cidr = 1;
byte? result = 0;
@@ -1366,10 +1364,10 @@ public void TestTryToCidr001()
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(cidr, result, "cidr");
}
-
- [TestMethod]
- public void TestTryToCidr000()
- {
+
+ [TestMethod]
+ public void TestTryToCidr000()
+ {
var mask = IPAddress.Parse("::");
byte cidr = 0;
byte? result = 0;
@@ -1379,67 +1377,67 @@ public void TestTryToCidr000()
Assert.AreEqual(cidr, result, "cidr");
}
- #endregion
+ #endregion
- #region ToBigInteger
+ #region ToBigInteger
- [TestMethod]
- public void TestToBigInteger32()
- {
+ [TestMethod]
+ public void TestToBigInteger32()
+ {
var mask = IPAddress.Parse("::f");
uint uintMask = 0xf;
var result = IPNetwork2.ToBigInteger(mask);
Assert.AreEqual(uintMask, result, "uint");
}
-
- [TestMethod]
- public void TestToBigInteger24()
- {
+
+ [TestMethod]
+ public void TestToBigInteger24()
+ {
var mask = IPAddress.Parse("::fff");
uint uintMask = 0xfff;
BigInteger? result = IPNetwork2.ToBigInteger(mask);
Assert.AreEqual(uintMask, result, "uint");
}
-
- [TestMethod]
- public void TestToBigInteger16()
- {
+
+ [TestMethod]
+ public void TestToBigInteger16()
+ {
var mask = IPAddress.Parse("::ff");
uint uintMask = 0xff;
BigInteger? result = IPNetwork2.ToBigInteger(mask);
Assert.AreEqual(uintMask, result, "uint");
}
-
- [TestMethod]
- public void TestToBigInteger8()
- {
+
+ [TestMethod]
+ public void TestToBigInteger8()
+ {
var mask = IPAddress.Parse("::ff00:0");
uint uintMask = 0xff000000;
BigInteger? result = IPNetwork2.ToBigInteger(mask);
Assert.AreEqual(uintMask, result, "uint");
}
-
- [TestMethod]
- public void TestToBigInteger0()
- {
+
+ [TestMethod]
+ public void TestToBigInteger0()
+ {
var mask = IPAddress.Parse("::");
uint uintMask = 0x00000000;
BigInteger? result = IPNetwork2.ToBigInteger(mask);
Assert.AreEqual(uintMask, result, "uint");
- }
-
- #endregion
-
- #region TryToBigInteger
-
- [TestMethod]
- public void TestTryToBigInteger32()
- {
+ }
+
+ #endregion
+
+ #region TryToBigInteger
+
+ [TestMethod]
+ public void TestTryToBigInteger32()
+ {
var mask = IPAddress.Parse("::ffff:ffff");
uint uintMask = 0xffffffff;
BigInteger? result = null;
@@ -1448,10 +1446,10 @@ public void TestTryToBigInteger32()
Assert.AreEqual(uintMask, result, "uint");
Assert.AreEqual(true, parsed, "parsed");
}
-
- [TestMethod]
- public void TestTryToBigInteger24()
- {
+
+ [TestMethod]
+ public void TestTryToBigInteger24()
+ {
var mask = IPAddress.Parse("::ffff:ff00");
uint uintMask = 0xffffff00;
BigInteger? result = null;
@@ -1460,10 +1458,10 @@ public void TestTryToBigInteger24()
Assert.AreEqual(uintMask, result, "uint");
Assert.AreEqual(true, parsed, "parsed");
}
-
- [TestMethod]
- public void TestTryToBigInteger16()
- {
+
+ [TestMethod]
+ public void TestTryToBigInteger16()
+ {
var mask = IPAddress.Parse("::ffff:0");
uint uintMask = 0xffff0000;
BigInteger? result = null;
@@ -1472,10 +1470,10 @@ public void TestTryToBigInteger16()
Assert.AreEqual(uintMask, result, "uint");
Assert.AreEqual(true, parsed, "parsed");
}
-
- [TestMethod]
- public void TestTryToBigInteger8()
- {
+
+ [TestMethod]
+ public void TestTryToBigInteger8()
+ {
var mask = IPAddress.Parse("::ff00:0");
uint uintMask = 0xff000000;
@@ -1485,10 +1483,10 @@ public void TestTryToBigInteger8()
Assert.AreEqual(uintMask, result, "uint");
Assert.AreEqual(true, parsed, "parsed");
}
-
- [TestMethod]
- public void TestTryToBigInteger0()
- {
+
+ [TestMethod]
+ public void TestTryToBigInteger0()
+ {
var mask = IPAddress.Parse("::");
uint uintMask = 0x00000000;
BigInteger? result = null;
@@ -1498,100 +1496,101 @@ public void TestTryToBigInteger0()
Assert.AreEqual(true, parsed, "parsed");
}
- #endregion
+ #endregion
+
+ #region TryToNetmask
- #region TryToNetmask
- [TestMethod]
- public void TryToNetmask1()
- {
+ [TestMethod]
+ public void TryToNetmask1()
+ {
IPAddress result = null;
- bool parsed = IPNetwork2.TryToNetmask(0, Sockets.AddressFamily.InterNetworkV6, out result);
+ bool parsed = IPNetwork2.TryToNetmask(0, AddressFamily.InterNetworkV6, out result);
var expected = IPAddress.Parse("::");
Assert.AreEqual(expected, result, "Netmask");
Assert.AreEqual(true, parsed, "parsed");
}
- [TestMethod]
- public void TryToNetmask2()
- {
+ [TestMethod]
+ public void TryToNetmask2()
+ {
IPAddress result = null;
- bool parsed = IPNetwork2.TryToNetmask(33, Sockets.AddressFamily.InterNetworkV6, out result);
+ bool parsed = IPNetwork2.TryToNetmask(33, AddressFamily.InterNetworkV6, out result);
var expected = IPAddress.Parse("ffff:ffff:8000::");
Assert.AreEqual(expected, result, "Netmask");
Assert.AreEqual(true, parsed, "parsed");
}
- #endregion
+ #endregion
- #region ToNetmask
+ #region ToNetmask
- [TestMethod]
- public void ToNetmask128()
- {
+ [TestMethod]
+ public void ToNetmask128()
+ {
byte cidr = 128;
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetworkV6).ToString();
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetworkV6).ToString();
Assert.AreEqual(netmask, result, "netmask");
}
- [TestMethod]
- public void ToNetmask31()
- {
+ [TestMethod]
+ public void ToNetmask31()
+ {
byte cidr = 127;
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetworkV6).ToString();
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetworkV6).ToString();
Assert.AreEqual(netmask, result, "netmask");
}
- [TestMethod]
- public void ToNetmask30()
- {
+ [TestMethod]
+ public void ToNetmask30()
+ {
byte cidr = 126;
string netmask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffc";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetworkV6).ToString();
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetworkV6).ToString();
Assert.AreEqual(netmask, result, "netmask");
}
- [TestMethod]
- public void ToNetmask1()
- {
+ [TestMethod]
+ public void ToNetmask1()
+ {
byte cidr = 1;
string netmask = "8000::";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetworkV6).ToString();
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetworkV6).ToString();
Assert.AreEqual(netmask, result, "netmask");
}
-
- [TestMethod]
- public void ToNetmask0()
- {
+
+ [TestMethod]
+ public void ToNetmask0()
+ {
byte cidr = 0;
string netmask = "::";
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetworkV6).ToString();
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetworkV6).ToString();
Assert.AreEqual(netmask, result, "netmask");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void ToNetmaskOORE1()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void ToNetmaskOore1()
+ {
byte cidr = 129;
- string result = IPNetwork2.ToNetmask(cidr, Sockets.AddressFamily.InterNetworkV6).ToString();
+ string result = IPNetwork2.ToNetmask(cidr, AddressFamily.InterNetworkV6).ToString();
}
- #endregion
+ #endregion
- #region ValidNetmask
+ #region ValidNetmask
- [TestMethod]
- public void TestValidNetmask0()
- {
+ [TestMethod]
+ public void TestValidNetmask0()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff");
bool expected = true;
bool result = IPNetwork2.ValidNetmask(mask);
@@ -1599,9 +1598,9 @@ public void TestValidNetmask0()
Assert.AreEqual(expected, result, "ValidNetmask");
}
- [TestMethod]
- public void TestValidNetmask1()
- {
+ [TestMethod]
+ public void TestValidNetmask1()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0");
bool expected = true;
bool result = IPNetwork2.ValidNetmask(mask);
@@ -1609,19 +1608,19 @@ public void TestValidNetmask1()
Assert.AreEqual(expected, result, "ValidNetmask");
}
- [TestMethod]
- public void TestValidNetmask2()
- {
+ [TestMethod]
+ public void TestValidNetmask2()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:0000");
bool expected = true;
bool result = IPNetwork2.ValidNetmask(mask);
Assert.AreEqual(expected, result, "ValidNetmask");
}
-
- [TestMethod]
- public void TestValidNetmaskEAE1()
- {
+
+ [TestMethod]
+ public void TestValidNetmaskEae1()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:0000:ffff");
bool expected = false;
bool result = IPNetwork2.ValidNetmask(mask);
@@ -1629,9 +1628,9 @@ public void TestValidNetmaskEAE1()
Assert.AreEqual(expected, result, "ValidNetmask");
}
- [TestMethod]
- public void TestValidNetmaskEAE3()
- {
+ [TestMethod]
+ public void TestValidNetmaskEae3()
+ {
var mask = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:0000:0001");
bool expected = false;
bool result = IPNetwork2.ValidNetmask(mask);
@@ -1639,43 +1638,43 @@ public void TestValidNetmaskEAE3()
Assert.AreEqual(expected, result, "ValidNetmask");
}
- #endregion
+ #endregion
- #region BitsSet
+ #region BitsSet
- [TestMethod]
- public void TestBitsSet128()
- {
+ [TestMethod]
+ public void TestBitsSet128()
+ {
var ip = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff");
uint bits = 128;
uint result = IPNetwork2.BitsSet(ip);
Assert.AreEqual(bits, result, "BitsSet");
}
-
- [TestMethod]
- public void TestBitsSet120()
- {
+
+ [TestMethod]
+ public void TestBitsSet120()
+ {
var ip = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0");
uint bits = 124;
uint result = IPNetwork2.BitsSet(ip);
Assert.AreEqual(bits, result, "BitsSet");
}
-
- [TestMethod]
- public void TestBitsSet16()
- {
+
+ [TestMethod]
+ public void TestBitsSet16()
+ {
var ip = IPAddress.Parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:0000");
uint bits = 112;
uint result = IPNetwork2.BitsSet(ip);
Assert.AreEqual(bits, result, "BitsSet");
}
-
- [TestMethod]
- public void TestBitsSet4()
- {
+
+ [TestMethod]
+ public void TestBitsSet4()
+ {
var ip = IPAddress.Parse("f0f0:f0f0:f0f0:f0f0:f0f0:f0f0:f0f0:f0f0");
uint bits = 64;
uint result = IPNetwork2.BitsSet(ip);
@@ -1683,13 +1682,13 @@ public void TestBitsSet4()
Assert.AreEqual(bits, result, "BitsSet");
}
- #endregion
+ #endregion
- #region Contains
+ #region Contains
- [TestMethod]
- public void TestContains1()
- {
+ [TestMethod]
+ public void TestContains1()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
var ipaddress = IPAddress.Parse("2001:0db8::1");
@@ -1699,9 +1698,9 @@ public void TestContains1()
Assert.AreEqual(expected, result, "contains");
}
- [TestMethod]
- public void TestContains2()
- {
+ [TestMethod]
+ public void TestContains2()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
var ipaddress = IPAddress.Parse("2001:0db8:0:1::");
@@ -1711,9 +1710,9 @@ public void TestContains2()
Assert.AreEqual(expected, result, "contains");
}
- [TestMethod]
- public void TestContains3()
- {
+ [TestMethod]
+ public void TestContains3()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
var ipnetwork2 = IPNetwork2.Parse("2001:0db8::/64");
@@ -1723,9 +1722,9 @@ public void TestContains3()
Assert.AreEqual(expected, result, "contains");
}
- [TestMethod]
- public void TestContains4()
- {
+ [TestMethod]
+ public void TestContains4()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
var ipnetwork2 = IPNetwork2.Parse("2001:0db8::/65");
@@ -1735,9 +1734,9 @@ public void TestContains4()
Assert.AreEqual(expected, result, "contains");
}
- [TestMethod]
- public void TestContains5()
- {
+ [TestMethod]
+ public void TestContains5()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
var ipnetwork2 = IPNetwork2.Parse("2001:0db8:1::/65");
@@ -1746,10 +1745,10 @@ public void TestContains5()
Assert.AreEqual(expected, result, "contains");
}
-
- [TestMethod]
- public void TestContains6()
- {
+
+ [TestMethod]
+ public void TestContains6()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
var ipnetwork2 = IPNetwork2.Parse("2001:0db8::/63");
@@ -1759,19 +1758,19 @@ public void TestContains6()
Assert.AreEqual(expected, result, "contains");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestContains10()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestContains10()
+ {
var ipnetwork = IPNetwork2.Parse("::/0");
IPAddress ipaddress = null;
bool result = ipnetwork.Contains(ipaddress);
}
- [TestMethod]
- public void TestContains11_different_address_family_returns_false()
- {
+ [TestMethod]
+ public void TestContains11_different_address_family_returns_false()
+ {
var ipnetwork = IPNetwork2.Parse("::1"); // IPv6
var ipaddress = IPAddress.Parse("127.0.0.1"); // IPv4
@@ -1779,22 +1778,22 @@ public void TestContains11_different_address_family_returns_false()
Assert.AreEqual(false, result, "contains");
}
- #endregion
+ #endregion
- #region Overlap
+ #region Overlap
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestOverlap2()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestOverlap2()
+ {
var network1 = IPNetwork2.Parse("2001:0db8::/0");
IPNetwork2 network2 = null;
network1.Overlap(network2);
}
- [TestMethod]
- public void TestOverlap3()
- {
+ [TestMethod]
+ public void TestOverlap3()
+ {
var network1 = IPNetwork2.Parse("2001:0db8::/64");
var network2 = IPNetwork2.Parse("2001:0db8::/64");
bool result = network1.Overlap(network2);
@@ -1803,9 +1802,9 @@ public void TestOverlap3()
Assert.AreEqual(expected, result, "overlap");
}
- [TestMethod]
- public void TestOverlap4()
- {
+ [TestMethod]
+ public void TestOverlap4()
+ {
var network1 = IPNetwork2.Parse("2001:0db8::/64");
var network2 = IPNetwork2.Parse("2001:0db8:0:0:1::/65");
bool result = network1.Overlap(network2);
@@ -1814,9 +1813,9 @@ public void TestOverlap4()
Assert.AreEqual(expected, result, "overlap");
}
- [TestMethod]
- public void TestOverlap5()
- {
+ [TestMethod]
+ public void TestOverlap5()
+ {
var network1 = IPNetwork2.Parse("2001:0db8:0:1::/68");
var network2 = IPNetwork2.Parse("2001:0db8:0:2::/68");
bool result = network1.Overlap(network2);
@@ -1825,9 +1824,9 @@ public void TestOverlap5()
Assert.AreEqual(expected, result, "overlap");
}
- [TestMethod]
- public void TestOverlap6()
- {
+ [TestMethod]
+ public void TestOverlap6()
+ {
var network1 = IPNetwork2.Parse("2001:0db8:0:1::/68");
var network2 = IPNetwork2.Parse("2001:0db8:0:2::/62");
bool result = network1.Overlap(network2);
@@ -1836,13 +1835,13 @@ public void TestOverlap6()
Assert.AreEqual(expected, result, "overlap");
}
- #endregion
+ #endregion
- #region Examples
+ #region Examples
- [TestMethod]
- public void Example1()
- {
+ [TestMethod]
+ public void Example1()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
Console.WriteLine("Network : {0}", ipnetwork.Network);
@@ -1854,9 +1853,9 @@ public void Example1()
Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);
}
- [TestMethod]
- public void Example2()
- {
+ [TestMethod]
+ public void Example2()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8::/64");
var ipaddress = IPAddress.Parse("2001:0db8::1");
@@ -1877,14 +1876,14 @@ public void Example2()
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipnetwork2, contains3);
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipnetwork3, contains4);
-
+
Console.WriteLine("{0} overlap {1} : {2}", ipnetwork, ipnetwork2, overlap1);
Console.WriteLine("{0} overlap {1} : {2}", ipnetwork, ipnetwork3, overlap2);
}
- [TestMethod]
- public void Example4()
- {
+ [TestMethod]
+ public void Example4()
+ {
var wholeInternet = IPNetwork2.Parse("::/0");
byte newCidr = 2;
IPNetworkCollection subneted = wholeInternet.Subnet(newCidr);
@@ -1894,15 +1893,15 @@ public void Example4()
Console.WriteLine("Last : {0}", subneted[subneted.Count - 1]);
Console.WriteLine("All :");
- foreach (IPNetwork2 ipnetwork in subneted)
+ foreach (IPNetwork2 ipnetwork in subneted)
{
Console.WriteLine("{0}", ipnetwork);
}
- }
-
- [TestMethod]
- public void Example5()
- {
+ }
+
+ [TestMethod]
+ public void Example5()
+ {
var ipnetwork1 = IPNetwork2.Parse("2001:0db8::/64");
var ipnetwork2 = IPNetwork2.Parse("2001:0db9::/64");
IPNetwork2[] ipnetwork3 = IPNetwork2.Supernet(new[] { ipnetwork1, ipnetwork2 });
@@ -1910,9 +1909,9 @@ public void Example5()
Console.WriteLine("{0} + {1} = {2}", ipnetwork1, ipnetwork2, ipnetwork3[0]);
}
- [TestMethod]
- public void Example6()
- {
+ [TestMethod]
+ public void Example6()
+ {
var ipnetwork = IPNetwork2.Parse("fe80::202:b3ff:fe1e:8329/24");
var ipaddress = IPAddress.Parse("2001:db8::");
@@ -1925,21 +1924,21 @@ public void Example6()
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
}
- [TestMethod]
- public void Example8()
- {
+ [TestMethod]
+ public void Example8()
+ {
var network = IPNetwork2.Parse("::/124");
IPNetworkCollection ips = network.Subnet(128);
- foreach (IPNetwork2 ip in ips)
+ foreach (IPNetwork2 ip in ips)
{
Console.WriteLine("{0}", ip);
}
}
- [TestMethod]
- public void Example11()
- {
+ [TestMethod]
+ public void Example11()
+ {
var defaultParse = IPNetwork2.Parse("::1");
var classFullParse = IPNetwork2.Parse("::1", CidrGuess.ClassFull);
var classLessParse = IPNetwork2.Parse("::1", CidrGuess.ClassLess);
@@ -1947,15 +1946,15 @@ public void Example11()
Console.WriteLine("IPV6 Default Parse : {0}", defaultParse);
Console.WriteLine("IPV6 ClassFull Parse : {0}", classFullParse);
Console.WriteLine("IPV6 ClassLess Parse : {0}", classLessParse);
- }
-
- #endregion
-
- #region ToString
-
- [TestMethod]
- public void TestToString()
- {
+ }
+
+ #endregion
+
+ #region ToString
+
+ [TestMethod]
+ public void TestToString()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8:0000:0000:0000:0000:0000:0000/32");
string expected = "2001:db8::/32";
string result = ipnetwork.ToString();
@@ -1963,9 +1962,9 @@ public void TestToString()
Assert.AreEqual(expected, result, "ToString");
}
- [TestMethod]
- public void TestToString1()
- {
+ [TestMethod]
+ public void TestToString1()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8:1:2:3:4:5:6/32");
string expected = "2001:db8::/32";
string result = ipnetwork.ToString();
@@ -1973,9 +1972,9 @@ public void TestToString1()
Assert.AreEqual(expected, result, "ToString");
}
- [TestMethod]
- public void TestToString2()
- {
+ [TestMethod]
+ public void TestToString2()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8:1:2:3:4:5:6/64");
string expected = "2001:db8:1:2::/64";
string result = ipnetwork.ToString();
@@ -1983,9 +1982,9 @@ public void TestToString2()
Assert.AreEqual(expected, result, "ToString");
}
- [TestMethod]
- public void TestToString3()
- {
+ [TestMethod]
+ public void TestToString3()
+ {
var ipnetwork = IPNetwork2.Parse("2001:0db8:1:2:3:4:5:6/100");
string expected = "2001:db8:1:2:3:4::/100";
string result = ipnetwork.ToString();
@@ -1993,33 +1992,33 @@ public void TestToString3()
Assert.AreEqual(expected, result, "ToString");
}
- #endregion
-
- #region Subnet
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestSubnet3()
- {
+ #endregion
+
+ #region Subnet
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestSubnet3()
+ {
var ipnetwork = IPNetwork2.Parse("::");
byte cidr = 129;
IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
}
-
- [TestMethod]
- [ExpectedException(typeof(ArgumentException))]
- public void TestSubnet4()
- {
+
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentException))]
+ public void TestSubnet4()
+ {
var ipnetwork = IPNetwork2.Parse("::");
byte cidr = 1;
IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
}
-
- [TestMethod]
- public void TestSubnet5()
- {
+
+ [TestMethod]
+ public void TestSubnet5()
+ {
var ipnetwork = IPNetwork2.Parse("1:1:1:1:1:1:1:1");
byte cidr = 65;
@@ -2028,10 +2027,10 @@ public void TestSubnet5()
Assert.AreEqual("1:1:1:1::/65", subnets[0].ToString(), "subnet1");
Assert.AreEqual("1:1:1:1:8000::/65", subnets[1].ToString(), "subnet2");
}
-
- [TestMethod]
- public void TestSubnet6()
- {
+
+ [TestMethod]
+ public void TestSubnet6()
+ {
var ipnetwork = IPNetwork2.Parse("1:1:1:1:1:1:1:1");
byte cidr = 68;
@@ -2054,10 +2053,10 @@ public void TestSubnet6()
Assert.AreEqual("1:1:1:1:e000::/68", subnets[14].ToString(), "subnet15");
Assert.AreEqual("1:1:1:1:f000::/68", subnets[15].ToString(), "subnet16");
}
-
- [TestMethod]
- public void TestSubnet7()
- {
+
+ [TestMethod]
+ public void TestSubnet7()
+ {
var ipnetwork = IPNetwork2.Parse("1:1:1:1:1:1:1:1");
byte cidr = 72;
@@ -2066,10 +2065,10 @@ public void TestSubnet7()
Assert.AreEqual("1:1:1:1::/72", subnets[0].ToString(), "subnet1");
Assert.AreEqual("1:1:1:1:ff00::/72", subnets[255].ToString(), "subnet256");
}
-
- [TestMethod]
- public void TestSubnet9()
- {
+
+ [TestMethod]
+ public void TestSubnet9()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db08:1:1:1:1:1:1");
byte cidr = 128;
var count = BigInteger.Pow(2, ipnetwork.Cidr);
@@ -2079,10 +2078,10 @@ public void TestSubnet9()
Assert.AreEqual("2001:db08:1:1::ff/128", subnets[255].ToString(), "subnet256");
Assert.AreEqual("2001:db08:1:1:ffff:ffff:ffff:ffff/128", subnets[count - 1].ToString(), "last");
}
-
- [TestMethod]
- public void TestSubnet10()
- {
+
+ [TestMethod]
+ public void TestSubnet10()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db08::/0");
byte cidr = 128;
var count = BigInteger.Pow(2, 128 - ipnetwork.Cidr);
@@ -2093,36 +2092,36 @@ public void TestSubnet10()
Assert.AreEqual("::/128", subnets[0].ToString(), "subnet1");
Assert.AreEqual("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128", subnets[count - 1].ToString(), "last");
}
-
- [TestMethod]
- public void TestSubnet12()
- {
+
+ [TestMethod]
+ public void TestSubnet12()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db08::/64");
byte cidr = 70;
int i = -1;
IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
- foreach (IPNetwork2 ipn in subnets)
+ foreach (IPNetwork2 ipn in subnets)
{
i++;
Assert.AreEqual(subnets[i], ipn, "subnet");
}
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void TestSubnet13()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestSubnet13()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db08::/64");
byte cidr = 70;
IPNetworkCollection subnets = ipnetwork.Subnet(cidr);
IPNetwork2 error = subnets[1000];
}
-
- [TestMethod]
- public void TestSubnet14()
- {
+
+ [TestMethod]
+ public void TestSubnet14()
+ {
var network = IPNetwork2.Parse("15.0.0.0/8");
- IPNetworkCollection subnets = network.Subnet((byte)12);
+ IPNetworkCollection subnets = network.Subnet(12);
Assert.AreEqual(subnets[0].ToString(), "15.0.0.0/12", "subnets[0]");
Assert.AreEqual(subnets[1].ToString(), "15.16.0.0/12", "subnets[1]");
Assert.AreEqual(subnets[2].ToString(), "15.32.0.0/12", "subnets[2]");
@@ -2133,14 +2132,14 @@ public void TestSubnet14()
Console.WriteLine(ipn);
}
}
-
- #endregion
- #region TrySubnet
-
- [TestMethod]
- public void TestTrySubnet3()
- {
+ #endregion
+
+ #region TrySubnet
+
+ [TestMethod]
+ public void TestTrySubnet3()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db08::/64");
byte cidr = 255;
@@ -2149,10 +2148,10 @@ public void TestTrySubnet3()
Assert.AreEqual(false, subnetted, "subnetted");
}
-
- [TestMethod]
- public void TestTrySubnet4()
- {
+
+ [TestMethod]
+ public void TestTrySubnet4()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db08::/64");
byte cidr = 63;
@@ -2161,10 +2160,10 @@ public void TestTrySubnet4()
Assert.AreEqual(false, subnetted, "subnetted");
}
-
- [TestMethod]
- public void TestTrySubnet5()
- {
+
+ [TestMethod]
+ public void TestTrySubnet5()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db8::/64");
byte cidr = 65;
@@ -2176,10 +2175,10 @@ public void TestTrySubnet5()
Assert.AreEqual("2001:db8::/65", subnets[0].ToString(), "subnet1");
Assert.AreEqual("2001:db8:0:0:8000::/65", subnets[1].ToString(), "subnet2");
}
-
- [TestMethod]
- public void TestTrySubnet6()
- {
+
+ [TestMethod]
+ public void TestTrySubnet6()
+ {
var ipnetwork = IPNetwork2.Parse("2001:db8::/64");
byte cidr = 68;
@@ -2204,15 +2203,15 @@ public void TestTrySubnet6()
Assert.AreEqual("2001:db8:0:0:d000::/68", subnets[13].ToString(), "subnet14");
Assert.AreEqual("2001:db8:0:0:e000::/68", subnets[14].ToString(), "subnet15");
Assert.AreEqual("2001:db8:0:0:f000::/68", subnets[15].ToString(), "subnet16");
- }
-
- #endregion
-
- #region TrySupernet
-
- [TestMethod]
- public void TestTrySupernet1()
- {
+ }
+
+ #endregion
+
+ #region TrySupernet
+
+ [TestMethod]
+ public void TestTrySupernet1()
+ {
var network1 = IPNetwork2.Parse("2001:db8::/65");
var network2 = IPNetwork2.Parse("2001:db8:0:0:8000::/65");
var supernetExpected = IPNetwork2.Parse("2001:db8::/64");
@@ -2224,10 +2223,10 @@ public void TestTrySupernet1()
Assert.AreEqual(supernetExpected, supernet, "supernet");
}
- [TestMethod]
- [ExpectedException(typeof(ArgumentNullException))]
- public void TestTrySupernet2()
- {
+ [TestMethod]
+ [ExpectedException(typeof(ArgumentNullException))]
+ public void TestTrySupernet2()
+ {
IPNetwork2 network1 = null;
var network2 = IPNetwork2.Parse("2001:db8::/64");
IPNetwork2 supernet;
@@ -2236,9 +2235,9 @@ public void TestTrySupernet2()
#pragma warning restore 0618
}
- [TestMethod]
- public void TestTrySupernet3()
- {
+ [TestMethod]
+ public void TestTrySupernet3()
+ {
var network1 = IPNetwork2.Parse("2001:db8::/64");
IPNetwork2 network2 = null;
IPNetwork2 supernetExpected = null;
@@ -2250,9 +2249,9 @@ public void TestTrySupernet3()
Assert.AreEqual(parsed, result, "parsed");
}
- [TestMethod]
- public void TestTrySupernet4()
- {
+ [TestMethod]
+ public void TestTrySupernet4()
+ {
var network1 = IPNetwork2.Parse("2001:db8::/64");
var network2 = IPNetwork2.Parse("2001:db9::/65");
IPNetwork2 supernetExpected = null;
@@ -2264,9 +2263,9 @@ public void TestTrySupernet4()
Assert.AreEqual(parsed, result, "parsed");
}
- [TestMethod]
- public void TestTrySupernet5()
- {
+ [TestMethod]
+ public void TestTrySupernet5()
+ {
var network1 = IPNetwork2.Parse("2001:db8::/64");
var network2 = IPNetwork2.Parse("2001:dba::/64");
IPNetwork2 supernetExpected = null;
@@ -2278,9 +2277,9 @@ public void TestTrySupernet5()
Assert.AreEqual(parsed, result, "parsed");
}
- [TestMethod]
- public void TestTrySupernet6()
- {
+ [TestMethod]
+ public void TestTrySupernet6()
+ {
var network1 = IPNetwork2.Parse("2001:db8::/64");
var network2 = IPNetwork2.Parse("2001:db8::1/65");
var supernetExpected = IPNetwork2.Parse("2001:db8::/64");
@@ -2292,9 +2291,9 @@ public void TestTrySupernet6()
Assert.AreEqual(parsed, result, "parsed");
}
- [TestMethod]
- public void TestTrySupernet8()
- {
+ [TestMethod]
+ public void TestTrySupernet8()
+ {
var network1 = IPNetwork2.Parse("2001:db0::/64");
var network2 = IPNetwork2.Parse("2001:dbf::/64");
IPNetwork2 supernetExpected = null;
@@ -2306,13 +2305,13 @@ public void TestTrySupernet8()
Assert.AreEqual(parsed, result, "parsed");
}
- [TestMethod]
- public void TestTrySupernet9()
- {
+ [TestMethod]
+ public void TestTrySupernet9()
+ {
var network1 = IPNetwork2.Parse("192.168.1.1/24");
var network2 = IPNetwork2.Parse("192.168.2.1/24");
- IPNetwork2[] network3 = new[] { network1, network2 };
- IPNetwork2[] supernetExpected = new[] { network1, network2 };
+ IPNetwork2[] network3 = { network1, network2 };
+ IPNetwork2[] supernetExpected = { network1, network2 };
IPNetwork2[] supernet;
bool parsed = true;
bool result = IPNetwork2.TrySupernet(network3, out supernet);
@@ -2321,14 +2320,14 @@ public void TestTrySupernet9()
Assert.AreEqual(supernetExpected[1], supernet[1], "supernet");
Assert.AreEqual(parsed, result, "parsed");
}
-
- [TestMethod]
- public void TestTrySupernet10()
- {
+
+ [TestMethod]
+ public void TestTrySupernet10()
+ {
var network1 = IPNetwork2.Parse("2001:db8:0000::/65");
var network2 = IPNetwork2.Parse("2001:db8:0:0:8000::/65");
- IPNetwork2[] network3 = new[] { network1, network2 };
- IPNetwork2[] supernetExpected = new[] { IPNetwork2.Parse("2001:db8::/64") };
+ IPNetwork2[] network3 = { network1, network2 };
+ IPNetwork2[] supernetExpected = { IPNetwork2.Parse("2001:db8::/64") };
IPNetwork2[] supernet;
bool parsed = true;
bool result = IPNetwork2.TrySupernet(network3, out supernet);
@@ -2336,12 +2335,12 @@ public void TestTrySupernet10()
Assert.AreEqual(supernetExpected[0], supernet[0], "supernet");
Assert.AreEqual(parsed, result, "parsed");
}
-
- [TestMethod]
- public void TestTrySupernet11()
- {
+
+ [TestMethod]
+ public void TestTrySupernet11()
+ {
IPNetwork2[] network3 = null;
- IPNetwork2[] supernetExpected = new[] { IPNetwork2.Parse("2001:db8::/64") };
+ IPNetwork2[] supernetExpected = { IPNetwork2.Parse("2001:db8::/64") };
IPNetwork2[] supernet;
bool parsed = false;
bool result = IPNetwork2.TrySupernet(network3, out supernet);
@@ -2349,14 +2348,14 @@ public void TestTrySupernet11()
Assert.AreEqual(null, supernet, "supernet");
Assert.AreEqual(parsed, result, "parsed");
}
-
- #endregion
-
- #region TryGuessCidr
- [TestMethod]
- public void TestTryGuessCidrNull()
- {
+ #endregion
+
+ #region TryGuessCidr
+
+ [TestMethod]
+ public void TestTryGuessCidrNull()
+ {
byte cidr;
bool parsed = IPNetwork2.TryGuessCidr(null, out cidr);
@@ -2364,9 +2363,9 @@ public void TestTryGuessCidrNull()
Assert.AreEqual(0, cidr, "cidr");
}
- [TestMethod]
- public void TestTryGuessCidr1()
- {
+ [TestMethod]
+ public void TestTryGuessCidr1()
+ {
byte cidr;
bool parsed = IPNetwork2.TryGuessCidr("::", out cidr);
@@ -2374,204 +2373,203 @@ public void TestTryGuessCidr1()
Assert.AreEqual(64, cidr, "cidr");
}
- [TestMethod]
- public void TestTryGuessCidr2()
- {
+ [TestMethod]
+ public void TestTryGuessCidr2()
+ {
byte cidr;
bool parsed = IPNetwork2.TryGuessCidr("2001:0db8::", out cidr);
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(64, cidr, "cidr");
}
-
- #endregion
-
- #region Count
- [TestMethod]
- public void Total32()
- {
+ #endregion
+
+ #region Count
+
+ [TestMethod]
+ public void Total32()
+ {
var network = IPNetwork2.Parse("::/128");
int total = 1;
Assert.AreEqual(total, network.Total, "Total");
}
- [TestMethod]
- public void Total31()
- {
+ [TestMethod]
+ public void Total31()
+ {
var network = IPNetwork2.Parse("::/127");
int total = 2;
Assert.AreEqual(total, network.Total, "Total");
}
- [TestMethod]
- public void Total30()
- {
+ [TestMethod]
+ public void Total30()
+ {
var network = IPNetwork2.Parse("::/126");
int total = 4;
Assert.AreEqual(total, network.Total, "Total");
}
- [TestMethod]
- public void Total24()
- {
+ [TestMethod]
+ public void Total24()
+ {
var network = IPNetwork2.Parse("::/120");
int total = 256;
Assert.AreEqual(total, network.Total, "Total");
}
- [TestMethod]
- public void Total16()
- {
+ [TestMethod]
+ public void Total16()
+ {
var network = IPNetwork2.Parse("::/112");
int total = 65536;
Assert.AreEqual(total, network.Total, "Total");
}
- [TestMethod]
- public void Total8()
- {
+ [TestMethod]
+ public void Total8()
+ {
var network = IPNetwork2.Parse("::/104");
int total = 16777216;
Assert.AreEqual(total, network.Total, "Total");
}
- [TestMethod]
- public void Total0()
- {
+ [TestMethod]
+ public void Total0()
+ {
var network = IPNetwork2.Parse("::/0");
var total = BigInteger.Pow(2, 128);
Assert.AreEqual(total, network.Total, "Total");
}
- #endregion
+ #endregion
- #region Usable
+ #region Usable
- [TestMethod]
- public void Usable32()
- {
+ [TestMethod]
+ public void Usable32()
+ {
var network = IPNetwork2.Parse("::/128");
uint usable = 1;
Assert.AreEqual(usable, network.Usable, "Usable");
}
- [TestMethod]
- public void Usable31()
- {
+ [TestMethod]
+ public void Usable31()
+ {
var network = IPNetwork2.Parse("::/127");
uint usable = 2;
Assert.AreEqual(usable, network.Usable, "Usable");
}
- [TestMethod]
- public void Usable30()
- {
+ [TestMethod]
+ public void Usable30()
+ {
var network = IPNetwork2.Parse("::/126");
uint usable = 4;
Assert.AreEqual(usable, network.Usable, "Usable");
}
- [TestMethod]
- public void Usable24()
- {
+ [TestMethod]
+ public void Usable24()
+ {
var network = IPNetwork2.Parse("::/120");
uint usable = 256;
Assert.AreEqual(usable, network.Usable, "Usable");
}
- [TestMethod]
- public void Usable16()
- {
+ [TestMethod]
+ public void Usable16()
+ {
var network = IPNetwork2.Parse("::/112");
uint usable = 65536;
Assert.AreEqual(usable, network.Usable, "Usable");
}
- [TestMethod]
- public void Usable8()
- {
+ [TestMethod]
+ public void Usable8()
+ {
var network = IPNetwork2.Parse("::/104");
uint usable = 16777216;
Assert.AreEqual(usable, network.Usable, "Usable");
}
- [TestMethod]
- public void Usable0()
- {
+ [TestMethod]
+ public void Usable0()
+ {
var network = IPNetwork2.Parse("::/0");
var usable = BigInteger.Pow(2, 128);
Assert.AreEqual(usable, network.Usable, "Usable");
}
- #endregion
+ #endregion
- #region TryParseCidr
+ #region TryParseCidr
- [TestMethod]
- public void TryParseCidr1()
- {
+ [TestMethod]
+ public void TryParseCidr1()
+ {
string sidr = "0";
byte? cidr;
byte? result = 0;
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetworkV6, out cidr);
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetworkV6, out cidr);
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(result, cidr, "cidr");
}
- [TestMethod]
- public void TryParseCidr2()
- {
+ [TestMethod]
+ public void TryParseCidr2()
+ {
string sidr = "sadsd";
byte? cidr;
byte? result = null;
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetworkV6, out cidr);
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetworkV6, out cidr);
Assert.AreEqual(false, parsed, "parsed");
Assert.AreEqual(result, cidr, "cidr");
}
- [TestMethod]
- public void TryParseCidr33()
- {
+ [TestMethod]
+ public void TryParseCidr33()
+ {
string sidr = "33";
byte? cidr;
byte result = 33;
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetworkV6, out cidr);
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetworkV6, out cidr);
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(result, cidr, "cidr");
}
- [TestMethod]
- public void TryParseCidr128()
- {
+ [TestMethod]
+ public void TryParseCidr128()
+ {
string sidr = "128";
byte? cidr;
byte result = 128;
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetworkV6, out cidr);
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetworkV6, out cidr);
Assert.AreEqual(true, parsed, "parsed");
Assert.AreEqual(result, cidr, "cidr");
}
-
- [TestMethod]
- public void TryParseCidr129()
- {
+
+ [TestMethod]
+ public void TryParseCidr129()
+ {
string sidr = "129";
byte? cidr;
byte? result = null;
- bool parsed = IPNetwork2.TryParseCidr(sidr, Sockets.AddressFamily.InterNetworkV6, out cidr);
+ bool parsed = IPNetwork2.TryParseCidr(sidr, AddressFamily.InterNetworkV6, out cidr);
Assert.AreEqual(false, parsed, "parsed");
Assert.AreEqual(result, cidr, "cidr");
}
- #endregion
- }
-}
+ #endregion
+}
\ No newline at end of file
diff --git a/src/TestProject/SerializeBinaryFormatterTest.cs b/src/TestProject/SerializeBinaryFormatterTest.cs
index 48ccae3f..c41e61d1 100644
--- a/src/TestProject/SerializeBinaryFormatterTest.cs
+++ b/src/TestProject/SerializeBinaryFormatterTest.cs
@@ -2,21 +2,19 @@
// Copyright (c) IPNetwork. All rights reserved.
//
+
#pragma warning disable SYSLIB0011 // Type or member is obsolete
-namespace System.Net.TestSerialization
-{
- using System.IO;
- using System.Runtime.Serialization.Formatters.Binary;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
+using System.Runtime.Serialization.Formatters.Binary;
- [TestClass]
- public class SerializeBinaryFormatterTest
+[TestClass]
+public class SerializeBinaryFormatterTest
+{
+ [TestMethod]
+ [Ignore] // ("Assembly version is writen in binary serilaization.")
+ public void Test_Serialize_BinaryFormatter()
{
- [TestMethod]
- [Ignore] // ("Assembly version is writen in binary serilaization.")
- public void Test_Serialize_BinaryFormatter()
- {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var serializer = new BinaryFormatter();
@@ -25,15 +23,17 @@ public void Test_Serialize_BinaryFormatter()
serializer.Serialize(mem, ipnetwork);
string result = Convert.ToBase64String(mem.ToArray());
- string expected = "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjUuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABVTeXN0ZW0uTmV0LklQTmV0d29yazIBAAAACUlQTmV0d29yawECAAAABgMAAAAKMTAuMC4wLjAvOAs=";
+ string expected =
+ "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjUuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABVTeXN0ZW0uTmV0LklQTmV0d29yazIBAAAACUlQTmV0d29yawECAAAABgMAAAAKMTAuMC4wLjAvOAs=";
Assert.AreEqual(expected, result);
}
- [TestMethod]
- public void Test_Deserialize_BinaryFormatter()
- {
- string base64 = "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjUuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABVTeXN0ZW0uTmV0LklQTmV0d29yazIBAAAACUlQTmV0d29yawECAAAABgMAAAAKMTAuMC4wLjAvOAs=";
+ [TestMethod]
+ public void Test_Deserialize_BinaryFormatter()
+ {
+ string base64 =
+ "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjUuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABVTeXN0ZW0uTmV0LklQTmV0d29yazIBAAAACUlQTmV0d29yawECAAAABgMAAAAKMTAuMC4wLjAvOAs=";
byte[] bytes = Convert.FromBase64String(base64);
var mem = new MemoryStream(bytes);
@@ -44,9 +44,9 @@ public void Test_Deserialize_BinaryFormatter()
Assert.AreEqual(expected, result);
}
- [TestMethod]
- public void Test_Serialize_Deserialize_BinaryFormatter()
- {
+ [TestMethod]
+ public void Test_Serialize_Deserialize_BinaryFormatter()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var serializer = new BinaryFormatter();
@@ -60,10 +60,10 @@ public void Test_Serialize_Deserialize_BinaryFormatter()
Assert.AreEqual(ipnetwork, ipnetwork2);
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Serialize_BinaryFormatter()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Serialize_BinaryFormatter()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var serializer = new BinaryFormatter();
@@ -78,11 +78,12 @@ public void Test_1_000_000_Serialize_BinaryFormatter()
// 5.13 seconds(Ad hoc).
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Deserialize_BinaryFormatter()
- {
- string base64 = "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjUuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABVTeXN0ZW0uTmV0LklQTmV0d29yazIBAAAACUlQTmV0d29yawECAAAABgMAAAAKMTAuMC4wLjAvOAs=";
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Deserialize_BinaryFormatter()
+ {
+ string base64 =
+ "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjUuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABVTeXN0ZW0uTmV0LklQTmV0d29yazIBAAAACUlQTmV0d29yawECAAAABgMAAAAKMTAuMC4wLjAvOAs=";
byte[] bytes = Convert.FromBase64String(base64);
var mem = new MemoryStream(bytes);
@@ -97,10 +98,10 @@ public void Test_1_000_000_Deserialize_BinaryFormatter()
// 11.949 seconds(Ad hoc).
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Serialize_Deserialize_BinaryFormatter()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Serialize_Deserialize_BinaryFormatter()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var serializer = new BinaryFormatter();
@@ -118,6 +119,5 @@ public void Test_1_000_000_Serialize_Deserialize_BinaryFormatter()
// 17.48 seconds(Ad hoc).
}
- }
}
-#pragma warning restore SYSLIB0011 // Type or member is obsolete
+#pragma warning restore SYSLIB0011 // Type or member is obsolete
\ No newline at end of file
diff --git a/src/TestProject/SerializeDataContractTest.cs b/src/TestProject/SerializeDataContractTest.cs
index 0dfa1cda..c68ec720 100644
--- a/src/TestProject/SerializeDataContractTest.cs
+++ b/src/TestProject/SerializeDataContractTest.cs
@@ -2,26 +2,25 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestSerialization.NetFramework
-{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
- [TestClass]
- public class SerializeDataContractTest
+[TestClass]
+public class SerializeDataContractTest
+{
+ [TestMethod]
+ public void Test_Serialize_DataContract()
{
- [TestMethod]
- public void Test_Serialize_DataContract()
- {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
string result = DataContractSerializeHelper.Serialize(ipnetwork);
- string expected = $"{Environment.NewLine} 10.0.0.0/8{Environment.NewLine}";
+ string expected =
+ $"{Environment.NewLine} 10.0.0.0/8{Environment.NewLine}";
Assert.AreEqual(expected, result);
}
- [TestMethod]
- public void Test_Deserialize_DataContract()
- {
+ [TestMethod]
+ public void Test_Deserialize_DataContract()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
string serialized = DataContractSerializeHelper.Serialize(ipnetwork);
@@ -30,11 +29,10 @@ public void Test_Deserialize_DataContract()
Assert.AreEqual(ipnetwork, result);
}
- [TestMethod]
- public void Test_Empty_Constructor()
- {
+ [TestMethod]
+ public void Test_Empty_Constructor()
+ {
var ipnetwork = new IPNetwork2();
Assert.AreEqual("0.0.0.0/0", ipnetwork.ToString());
}
- }
}
\ No newline at end of file
diff --git a/src/TestProject/SerializeJsonTest.cs b/src/TestProject/SerializeJsonTest.cs
index 9122606c..613d5272 100644
--- a/src/TestProject/SerializeJsonTest.cs
+++ b/src/TestProject/SerializeJsonTest.cs
@@ -2,17 +2,15 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestSerialization.NetFramework
-{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using Newtonsoft.Json;
- [TestClass]
- public class SerializeJsonTest
+namespace TestProject;
+
+[TestClass]
+public class SerializeJsonTest
+{
+ [TestMethod]
+ public void Test_Serialize_Json()
{
- [TestMethod]
- public void Test_Serialize_Json()
- {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
string result = JsonConvert.SerializeObject(ipnetwork);
@@ -21,9 +19,9 @@ public void Test_Serialize_Json()
Assert.AreEqual(expected, result);
}
- [TestMethod]
- public void Test_Deserialize_Json()
- {
+ [TestMethod]
+ public void Test_Deserialize_Json()
+ {
string json = "{\"IPNetwork\":\"10.0.0.0/8\"}";
IPNetwork2 result = JsonConvert.DeserializeObject(json);
@@ -32,9 +30,9 @@ public void Test_Deserialize_Json()
Assert.AreEqual(expected, result);
}
- [TestMethod]
- public void Test_Serialize_Deserialize_Json()
- {
+ [TestMethod]
+ public void Test_Serialize_Deserialize_Json()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
string json = JsonConvert.SerializeObject(ipnetwork);
@@ -43,10 +41,10 @@ public void Test_Serialize_Deserialize_Json()
Assert.AreEqual(ipnetwork, result);
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Serialize_Json()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Serialize_Json()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
for (int i = 0; i < 1000000; i++)
@@ -57,10 +55,10 @@ public void Test_1_000_000_Serialize_Json()
// 3.06 seconds(Ad hoc).
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Deserialize_Json()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Deserialize_Json()
+ {
string json = "{\"IPNetwork\":\"10.0.0.0/8\"}";
for (int i = 0; i < 1000000; i++)
@@ -71,10 +69,10 @@ public void Test_1_000_000_Deserialize_Json()
// 10.20 seconds(Ad hoc).
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Serialize_Deserialize_Json()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Serialize_Deserialize_Json()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
for (int i = 0; i < 1000000; i++)
@@ -85,5 +83,4 @@ public void Test_1_000_000_Serialize_Deserialize_Json()
// 13.49 seconds(Ad hoc).
}
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/SerializeXmlTest.cs b/src/TestProject/SerializeXmlTest.cs
index 7a64e899..5a3725f3 100644
--- a/src/TestProject/SerializeXmlTest.cs
+++ b/src/TestProject/SerializeXmlTest.cs
@@ -2,19 +2,14 @@
// Copyright (c) IPNetwork. All rights reserved.
//
-namespace System.Net.TestSerialization.NetFramework
-{
- using System.IO;
- using System.Text;
- using System.Xml.Serialization;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace TestProject;
- [TestClass]
- public class SerializeXmlTest
+[TestClass]
+public class SerializeXmlTest
+{
+ [TestMethod]
+ public void Test_Serialize_Xml()
{
- [TestMethod]
- public void Test_Serialize_Xml()
- {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var mem = new MemoryStream();
@@ -30,9 +25,9 @@ public void Test_Serialize_Xml()
Assert.IsTrue(ok, result);
}
- [TestMethod]
- public void Test_Deserialize_Xml()
- {
+ [TestMethod]
+ public void Test_Deserialize_Xml()
+ {
string xml = @"
10.0.0.0/8
@@ -47,9 +42,9 @@ public void Test_Deserialize_Xml()
Assert.AreEqual(expected, result);
}
- [TestMethod]
- public void Test_Serialize_Deserialize_Xml()
- {
+ [TestMethod]
+ public void Test_Serialize_Deserialize_Xml()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var mem = new MemoryStream();
@@ -66,10 +61,10 @@ public void Test_Serialize_Deserialize_Xml()
Assert.AreEqual(ipnetwork, ipnetwork2);
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Serialize_Xml()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Serialize_Xml()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var serializer = new XmlSerializer(typeof(IPNetwork2));
@@ -84,10 +79,10 @@ public void Test_1_000_000_Serialize_Xml()
// 5.13 seconds(Ad hoc).
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Deserialize_Xml()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Deserialize_Xml()
+ {
string xml = @"
10.0.0.0/8
@@ -106,10 +101,10 @@ public void Test_1_000_000_Deserialize_Xml()
// 17.98 seconds(Ad hoc).
}
- [TestMethod]
- [TestCategory("LongRunning")]
- public void Test_1_000_000_Serialize_Deserialize_Xml()
- {
+ [TestMethod]
+ [TestCategory("LongRunning")]
+ public void Test_1_000_000_Serialize_Deserialize_Xml()
+ {
var ipnetwork = IPNetwork2.Parse("10.0.0.1/8");
var serializer = new XmlSerializer(typeof(IPNetwork2));
@@ -127,5 +122,4 @@ public void Test_1_000_000_Serialize_Deserialize_Xml()
// 17.48 seconds(Ad hoc).
}
- }
-}
+}
\ No newline at end of file
diff --git a/src/TestProject/TestProject.csproj b/src/TestProject/TestProject.csproj
index 3c999882..8777d93c 100644
--- a/src/TestProject/TestProject.csproj
+++ b/src/TestProject/TestProject.csproj
@@ -58,6 +58,7 @@
+
@@ -96,4 +97,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/TestProject/TryParseUnitTest.cs b/src/TestProject/TryParseUnitTest.cs
index 59c0b80c..4777d6c8 100644
--- a/src/TestProject/TryParseUnitTest.cs
+++ b/src/TestProject/TryParseUnitTest.cs
@@ -65,7 +65,7 @@ public void TestTryParseIPAddressNetmaskANE6()
[TestMethod]
public void TestTryParseIPAddressNetmaskANE7()
{
- bool parsed = IPNetwork2.TryParse("0.0.0.0", netmask: null, out IPNetwork2 ipnet);
+ bool parsed = IPNetwork2.TryParse("0.0.0.0", null, out IPNetwork2 ipnet);
Assert.AreEqual(false, parsed, "parsed");
Assert.AreEqual(null, ipnet, "ipnet");
diff --git a/src/TestProject/WildcardMaskIPv4UnitTest.cs b/src/TestProject/WildcardMaskIPv4UnitTest.cs
new file mode 100644
index 00000000..54cf852a
--- /dev/null
+++ b/src/TestProject/WildcardMaskIPv4UnitTest.cs
@@ -0,0 +1,113 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class WildcardMaskIPv4UnitTest
+{
+ [DataTestMethod]
+ [DataRow(0, "0.0.0.0", "255.255.255.255")]
+ [DataRow(32, "255.255.255.255", "0.0.0.0")]
+ public void Test_WildcardMask_ipv4_mask(int cidr, string thenNetmask, string andWildcardmask)
+ {
+ var ipnetwork = IPNetwork2.Parse($"1.1.1.1/{cidr}");
+
+ string netmask = ipnetwork.Netmask.ToString();
+ string wildcardmask = ipnetwork.WildcardMask.ToString();
+
+ Assert.AreEqual(thenNetmask, netmask, "netmask");
+ Assert.AreEqual(andWildcardmask, wildcardmask, "wildcardmask");
+ }
+
+ [DataTestMethod]
+ [DataRow("255.255.255.255", "0.0.0.0")]
+ [DataRow("255.255.255.254", "0.0.0.1")]
+ [DataRow("255.255.255.252", "0.0.0.3")]
+ [DataRow("255.255.255.248", "0.0.0.7")]
+ [DataRow("255.255.255.240", "0.0.0.15")]
+ [DataRow("255.255.255.224", "0.0.0.31")]
+ [DataRow("255.255.255.192", "0.0.0.63")]
+ [DataRow("255.255.255.128", "0.0.0.127")]
+ [DataRow("255.255.255.0", "0.0.0.255")]
+ [DataRow("255.255.254.0", "0.0.1.255")]
+ [DataRow("255.255.252.0", "0.0.3.255")]
+ [DataRow("255.255.248.0", "0.0.7.255")]
+ [DataRow("255.255.240.0", "0.0.15.255")]
+ [DataRow("255.255.224.0", "0.0.31.255")]
+ [DataRow("255.255.192.0", "0.0.63.255")]
+ [DataRow("255.255.128.0", "0.0.127.255")]
+ [DataRow("255.255.0.0", "0.0.255.255")]
+ [DataRow("255.254.0.0", "0.1.255.255")]
+ [DataRow("255.252.0.0", "0.3.255.255")]
+ [DataRow("255.248.0.0", "0.7.255.255")]
+ [DataRow("255.240.0.0", "0.15.255.255")]
+ [DataRow("255.224.0.0", "0.31.255.255")]
+ [DataRow("255.192.0.0", "0.63.255.255")]
+ [DataRow("255.128.0.0", "0.127.255.255")]
+ [DataRow("255.0.0.0", "0.255.255.255")]
+ [DataRow("254.0.0.0", "1.255.255.255")]
+ [DataRow("252.0.0.0", "3.255.255.255")]
+ [DataRow("248.0.0.0", "7.255.255.255")]
+ [DataRow("240.0.0.0", "15.255.255.255")]
+ [DataRow("224.0.0.0", "31.255.255.255")]
+ [DataRow("192.0.0.0", "63.255.255.255")]
+ [DataRow("128.0.0.0", "127.255.255.255")]
+ [DataRow("0.0.0.0", "255.255.255.255")]
+ public void Test_WildcardMask_ipv4(string netmask, string expected)
+ {
+ var ipnetwork = IPNetwork2.Parse($"1.1.1.1/{netmask}");
+
+ string netmask2 = ipnetwork.Netmask.ToString();
+ string wildcardmask = ipnetwork.WildcardMask.ToString();
+
+ Assert.AreEqual(netmask, netmask2, "netmask");
+ Assert.AreEqual(expected, wildcardmask, "wildcardmask");
+ }
+
+ [DataTestMethod]
+ [DataRow(32, "0.0.0.0")]
+ [DataRow(31, "0.0.0.1")]
+ [DataRow(30, "0.0.0.3")]
+ [DataRow(29, "0.0.0.7")]
+ [DataRow(28, "0.0.0.15")]
+ [DataRow(27, "0.0.0.31")]
+ [DataRow(26, "0.0.0.63")]
+ [DataRow(25, "0.0.0.127")]
+ [DataRow(24, "0.0.0.255")]
+ [DataRow(23, "0.0.1.255")]
+ [DataRow(22, "0.0.3.255")]
+ [DataRow(21, "0.0.7.255")]
+ [DataRow(20, "0.0.15.255")]
+ [DataRow(19, "0.0.31.255")]
+ [DataRow(18, "0.0.63.255")]
+ [DataRow(17, "0.0.127.255")]
+ [DataRow(16, "0.0.255.255")]
+ [DataRow(15, "0.1.255.255")]
+ [DataRow(14, "0.3.255.255")]
+ [DataRow(13, "0.7.255.255")]
+ [DataRow(12, "0.15.255.255")]
+ [DataRow(11, "0.31.255.255")]
+ [DataRow(10, "0.63.255.255")]
+ [DataRow(9, "0.127.255.255")]
+ [DataRow(8, "0.255.255.255")]
+ [DataRow(7, "1.255.255.255")]
+ [DataRow(6, "3.255.255.255")]
+ [DataRow(5, "7.255.255.255")]
+ [DataRow(4, "15.255.255.255")]
+ [DataRow(3, "31.255.255.255")]
+ [DataRow(2, "63.255.255.255")]
+ [DataRow(1, "127.255.255.255")]
+ [DataRow(0, "255.255.255.255")]
+ public void Test_WildcardMask_ipv4_cidr(int cidr, string expected)
+ {
+ var ipnetwork = IPNetwork2.Parse($"1.1.1.1/{cidr}");
+
+ int cidr2 = ipnetwork.Cidr;
+ string wildcardmask = ipnetwork.WildcardMask.ToString();
+
+ Assert.AreEqual(cidr, cidr2, "netmask");
+ Assert.AreEqual(expected, wildcardmask, "wildcardmask");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/WildcardMaskIPv6UnitTest.cs b/src/TestProject/WildcardMaskIPv6UnitTest.cs
new file mode 100644
index 00000000..add194b6
--- /dev/null
+++ b/src/TestProject/WildcardMaskIPv6UnitTest.cs
@@ -0,0 +1,192 @@
+//
+// Copyright (c) IPNetwork. All rights reserved.
+//
+
+namespace TestProject;
+
+[TestClass]
+public class WildcardMaskIPv6UnitTest
+{
+ [TestMethod]
+ public void Test_WildcardMask_ipv6_mask_0()
+ {
+ var ipnetwork = IPNetwork2.Parse("::/0");
+
+ string netmask = ipnetwork.Netmask.ToString();
+ string wildcardmask = ipnetwork.WildcardMask.ToString();
+
+ Assert.AreEqual("::", netmask, "netmask");
+ Assert.AreEqual("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", wildcardmask, "wildcardmask");
+ }
+
+ [TestMethod]
+ public void Test_WildcardMask_ipv6_mask_128()
+ {
+ var ipnetwork = IPNetwork2.Parse("::/128");
+
+ string netmask = ipnetwork.Netmask.ToString();
+ string wildcardmask = ipnetwork.WildcardMask.ToString();
+
+ Assert.AreEqual("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", netmask, "netmask");
+ Assert.AreEqual("::", wildcardmask, "wildcardmask");
+ }
+
+ [DataTestMethod]
+ [DataRow("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "::")]
+ [DataRow("ffff:ffff:ffff:ffff::", "::ffff:ffff:ffff:ffff")]
+ [DataRow("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ public void Test_WildcardMask_ipv6(string netmask, string expected)
+ {
+ var ipnetwork = IPNetwork2.Parse($"::/{netmask}");
+
+ string netmask2 = ipnetwork.Netmask.ToString();
+ string wildcardmask = ipnetwork.WildcardMask.ToString();
+
+ Assert.AreEqual(netmask, netmask2, "netmask");
+ Assert.AreEqual(expected, wildcardmask, "wildcardmask");
+ }
+
+ [DataTestMethod]
+ [DataRow(128, "::")]
+ [DataRow(127, "::1")]
+ [DataRow(126, "::3")]
+ [DataRow(125, "::7")]
+ [DataRow(124, "::f")]
+ [DataRow(123, "::1f")]
+ [DataRow(122, "::3f")]
+ [DataRow(121, "::7f")]
+ [DataRow(120, "::ff")]
+ [DataRow(119, "::1ff")]
+ [DataRow(118, "::3ff")]
+ [DataRow(117, "::7ff")]
+ [DataRow(116, "::fff")]
+ [DataRow(115, "::1fff")]
+ [DataRow(114, "::3fff")]
+ [DataRow(113, "::7fff")]
+ [DataRow(112, "::ffff")]
+ [DataRow(111, "::1:ffff")]
+ [DataRow(110, "::3:ffff")]
+ [DataRow(109, "::7:ffff")]
+ [DataRow(108, "::f:ffff")]
+ [DataRow(107, "::1f:ffff")]
+ [DataRow(106, "::3f:ffff")]
+ [DataRow(105, "::7f:ffff")]
+ [DataRow(104, "::ff:ffff")]
+ [DataRow(103, "::1ff:ffff")]
+ [DataRow(102, "::3ff:ffff")]
+ [DataRow(101, "::7ff:ffff")]
+ [DataRow(100, "::fff:ffff")]
+ [DataRow(99, "::1fff:ffff")]
+ [DataRow(98, "::3fff:ffff")]
+ [DataRow(97, "::7fff:ffff")]
+ [DataRow(96, "::ffff:ffff")]
+ [DataRow(95, "::1:ffff:ffff")]
+ [DataRow(94, "::3:ffff:ffff")]
+ [DataRow(93, "::7:ffff:ffff")]
+ [DataRow(92, "::f:ffff:ffff")]
+ [DataRow(91, "::1f:ffff:ffff")]
+ [DataRow(90, "::3f:ffff:ffff")]
+ [DataRow(89, "::7f:ffff:ffff")]
+ [DataRow(88, "::ff:ffff:ffff")]
+ [DataRow(87, "::1ff:ffff:ffff")]
+ [DataRow(86, "::3ff:ffff:ffff")]
+ [DataRow(85, "::7ff:ffff:ffff")]
+ [DataRow(84, "::fff:ffff:ffff")]
+ [DataRow(83, "::1fff:ffff:ffff")]
+ [DataRow(82, "::3fff:ffff:ffff")]
+ [DataRow(81, "::7fff:ffff:ffff")]
+ [DataRow(80, "::ffff:ffff:ffff")]
+ [DataRow(79, "::1:ffff:ffff:ffff")]
+ [DataRow(78, "::3:ffff:ffff:ffff")]
+ [DataRow(77, "::7:ffff:ffff:ffff")]
+ [DataRow(76, "::f:ffff:ffff:ffff")]
+ [DataRow(75, "::1f:ffff:ffff:ffff")]
+ [DataRow(74, "::3f:ffff:ffff:ffff")]
+ [DataRow(73, "::7f:ffff:ffff:ffff")]
+ [DataRow(72, "::ff:ffff:ffff:ffff")]
+ [DataRow(71, "::1ff:ffff:ffff:ffff")]
+ [DataRow(70, "::3ff:ffff:ffff:ffff")]
+ [DataRow(69, "::7ff:ffff:ffff:ffff")]
+ [DataRow(68, "::fff:ffff:ffff:ffff")]
+ [DataRow(67, "::1fff:ffff:ffff:ffff")]
+ [DataRow(66, "::3fff:ffff:ffff:ffff")]
+ [DataRow(65, "::7fff:ffff:ffff:ffff")]
+ [DataRow(64, "::ffff:ffff:ffff:ffff")]
+ [DataRow(63, "::1:ffff:ffff:ffff:ffff")]
+ [DataRow(62, "::3:ffff:ffff:ffff:ffff")]
+ [DataRow(61, "::7:ffff:ffff:ffff:ffff")]
+ [DataRow(60, "::f:ffff:ffff:ffff:ffff")]
+ [DataRow(59, "::1f:ffff:ffff:ffff:ffff")]
+ [DataRow(58, "::3f:ffff:ffff:ffff:ffff")]
+ [DataRow(57, "::7f:ffff:ffff:ffff:ffff")]
+ [DataRow(56, "::ff:ffff:ffff:ffff:ffff")]
+ [DataRow(55, "::1ff:ffff:ffff:ffff:ffff")]
+ [DataRow(54, "::3ff:ffff:ffff:ffff:ffff")]
+ [DataRow(53, "::7ff:ffff:ffff:ffff:ffff")]
+ [DataRow(52, "::fff:ffff:ffff:ffff:ffff")]
+ [DataRow(51, "::1fff:ffff:ffff:ffff:ffff")]
+ [DataRow(50, "::3fff:ffff:ffff:ffff:ffff")]
+ [DataRow(49, "::7fff:ffff:ffff:ffff:ffff")]
+ [DataRow(48, "::ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(47, "::1:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(46, "::3:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(45, "::7:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(44, "::f:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(43, "::1f:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(42, "::3f:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(41, "::7f:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(40, "::ff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(39, "::1ff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(38, "::3ff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(37, "::7ff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(36, "::fff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(35, "::1fff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(34, "::3fff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(33, "::7fff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(32, "::ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(31, "0:1:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(30, "0:3:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(29, "0:7:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(28, "0:f:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(27, "0:1f:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(26, "0:3f:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(25, "0:7f:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(24, "0:ff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(23, "0:1ff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(22, "0:3ff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(21, "0:7ff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(20, "0:fff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(19, "0:1fff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(18, "0:3fff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(17, "0:7fff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(16, "0:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(15, "1:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(14, "3:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(13, "7:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(12, "f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(11, "1f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(10, "3f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(9, "7f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(8, "ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(7, "1ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(6, "3ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(5, "7ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(4, "fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(3, "1fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(2, "3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(1, "7fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ [DataRow(0, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
+ public void Test_WildcardMask_ipv6_cidr(int cidr, string expected)
+ {
+ var ipnetwork = IPNetwork2.Parse($"::/{cidr}");
+
+ int cidr2 = ipnetwork.Cidr;
+ var expectedipv6 = IPAddress.Parse(expected);
+ var expectedcidr = IPNetwork2.ToBigInteger(expectedipv6);
+ IPAddress wildcardmask = ipnetwork.WildcardMask;
+ var wildcardcidr = IPNetwork2.ToBigInteger(wildcardmask);
+
+ Assert.AreEqual(cidr, cidr2, "netmask");
+ Assert.AreEqual(expectedcidr, wildcardcidr, "wildcardcidr");
+ }
+}
\ No newline at end of file
diff --git a/src/TestProject/WildcardMaskUnitTest.cs b/src/TestProject/WildcardMaskUnitTest.cs
deleted file mode 100644
index 6575aa9c..00000000
--- a/src/TestProject/WildcardMaskUnitTest.cs
+++ /dev/null
@@ -1,348 +0,0 @@
-//
-// Copyright (c) IPNetwork. All rights reserved.
-//
-
-namespace System.Net.TestProject
-{
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- [TestClass]
- public class WildcardMaskUnitTest
- {
- #region ipv4
- [TestMethod]
- public void Test_WildcardMask_ipv4_mask_0()
- {
- var ipnetwork = IPNetwork2.Parse("1.1.1.1/0");
-
- string netmask = ipnetwork.Netmask.ToString();
- string wildcardmask = ipnetwork.WildcardMask.ToString();
-
- Assert.AreEqual("0.0.0.0", netmask, "netmask");
- Assert.AreEqual("255.255.255.255", wildcardmask, "wildcardmask");
- }
-
- [TestMethod]
- public void Test_WildcardMask_ipv4_mask_32()
- {
- var ipnetwork = IPNetwork2.Parse("1.1.1.1/32");
-
- string netmask = ipnetwork.Netmask.ToString();
- string wildcardmask = ipnetwork.WildcardMask.ToString();
-
- Assert.AreEqual("255.255.255.255", netmask, "netmask");
- Assert.AreEqual("0.0.0.0", wildcardmask, "wildcardmask");
- }
-
- [DataTestMethod]
- [DataRow("255.255.255.255", "0.0.0.0")]
- [DataRow("255.255.255.254", "0.0.0.1")]
- [DataRow("255.255.255.252", "0.0.0.3")]
- [DataRow("255.255.255.248", "0.0.0.7")]
- [DataRow("255.255.255.240", "0.0.0.15")]
- [DataRow("255.255.255.224", "0.0.0.31")]
- [DataRow("255.255.255.192", "0.0.0.63")]
- [DataRow("255.255.255.128", "0.0.0.127")]
- [DataRow("255.255.255.0", "0.0.0.255")]
- [DataRow("255.255.254.0", "0.0.1.255")]
- [DataRow("255.255.252.0", "0.0.3.255")]
- [DataRow("255.255.248.0", "0.0.7.255")]
- [DataRow("255.255.240.0", "0.0.15.255")]
- [DataRow("255.255.224.0", "0.0.31.255")]
- [DataRow("255.255.192.0", "0.0.63.255")]
- [DataRow("255.255.128.0", "0.0.127.255")]
- [DataRow("255.255.0.0", "0.0.255.255")]
- [DataRow("255.254.0.0", "0.1.255.255")]
- [DataRow("255.252.0.0", "0.3.255.255")]
- [DataRow("255.248.0.0", "0.7.255.255")]
- [DataRow("255.240.0.0", "0.15.255.255")]
- [DataRow("255.224.0.0", "0.31.255.255")]
- [DataRow("255.192.0.0", "0.63.255.255")]
- [DataRow("255.128.0.0", "0.127.255.255")]
- [DataRow("255.0.0.0", "0.255.255.255")]
- [DataRow("254.0.0.0", "1.255.255.255")]
- [DataRow("252.0.0.0", "3.255.255.255")]
- [DataRow("248.0.0.0", "7.255.255.255")]
- [DataRow("240.0.0.0", "15.255.255.255")]
- [DataRow("224.0.0.0", "31.255.255.255")]
- [DataRow("192.0.0.0", "63.255.255.255")]
- [DataRow("128.0.0.0", "127.255.255.255")]
- [DataRow("0.0.0.0", "255.255.255.255")]
- public void Test_WildcardMask_ipv4(string netmask, string expected)
- {
- var ipnetwork = IPNetwork2.Parse($"1.1.1.1/{netmask}");
-
- string netmask2 = ipnetwork.Netmask.ToString();
- string wildcardmask = ipnetwork.WildcardMask.ToString();
-
- Assert.AreEqual(netmask, netmask2, "netmask");
- Assert.AreEqual(expected, wildcardmask, "wildcardmask");
- }
-
- [DataTestMethod]
- [DataRow(32, "0.0.0.0")]
- [DataRow(31, "0.0.0.1")]
- [DataRow(30, "0.0.0.3")]
- [DataRow(29, "0.0.0.7")]
- [DataRow(28, "0.0.0.15")]
- [DataRow(27, "0.0.0.31")]
- [DataRow(26, "0.0.0.63")]
- [DataRow(25, "0.0.0.127")]
- [DataRow(24, "0.0.0.255")]
- [DataRow(23, "0.0.1.255")]
- [DataRow(22, "0.0.3.255")]
- [DataRow(21, "0.0.7.255")]
- [DataRow(20, "0.0.15.255")]
- [DataRow(19, "0.0.31.255")]
- [DataRow(18, "0.0.63.255")]
- [DataRow(17, "0.0.127.255")]
- [DataRow(16, "0.0.255.255")]
- [DataRow(15, "0.1.255.255")]
- [DataRow(14, "0.3.255.255")]
- [DataRow(13, "0.7.255.255")]
- [DataRow(12, "0.15.255.255")]
- [DataRow(11, "0.31.255.255")]
- [DataRow(10, "0.63.255.255")]
- [DataRow(9, "0.127.255.255")]
- [DataRow(8, "0.255.255.255")]
- [DataRow(7, "1.255.255.255")]
- [DataRow(6, "3.255.255.255")]
- [DataRow(5, "7.255.255.255")]
- [DataRow(4, "15.255.255.255")]
- [DataRow(3, "31.255.255.255")]
- [DataRow(2, "63.255.255.255")]
- [DataRow(1, "127.255.255.255")]
- [DataRow(0, "255.255.255.255")]
- public void Test_WildcardMask_ipv4_cidr(int cidr, string expected)
- {
- var ipnetwork = IPNetwork2.Parse($"1.1.1.1/{cidr}");
-
- int cidr2 = (int)ipnetwork.Cidr;
- string wildcardmask = ipnetwork.WildcardMask.ToString();
-
- Assert.AreEqual(cidr, cidr2, "netmask");
- Assert.AreEqual(expected, wildcardmask, "wildcardmask");
- }
-
- #endregion
-
- #region ipv6
-
- [TestMethod]
- public void Test_WildcardMask_ipv6_mask_0()
- {
- var ipnetwork = IPNetwork2.Parse("::/0");
-
- string netmask = ipnetwork.Netmask.ToString();
- string wildcardmask = ipnetwork.WildcardMask.ToString();
-
- Assert.AreEqual("::", netmask, "netmask");
- Assert.AreEqual("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", wildcardmask, "wildcardmask");
- }
-
- [TestMethod]
- public void Test_WildcardMask_ipv6_mask_128()
- {
- var ipnetwork = IPNetwork2.Parse("::/128");
-
- string netmask = ipnetwork.Netmask.ToString();
- string wildcardmask = ipnetwork.WildcardMask.ToString();
-
- Assert.AreEqual("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", netmask, "netmask");
- Assert.AreEqual("::", wildcardmask, "wildcardmask");
- }
-
- [DataTestMethod]
- [DataRow("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "::")]
- [DataRow("ffff:ffff:ffff:ffff::", "::ffff:ffff:ffff:ffff")]
- [DataRow("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- public void Test_WildcardMask_ipv6(string netmask, string expected)
- {
- var ipnetwork = IPNetwork2.Parse($"::/{netmask}");
-
- string netmask2 = ipnetwork.Netmask.ToString();
- string wildcardmask = ipnetwork.WildcardMask.ToString();
-
- Assert.AreEqual(netmask, netmask2, "netmask");
- Assert.AreEqual(expected, wildcardmask, "wildcardmask");
- }
-
- [DataTestMethod]
- [DataRow(128, "::")]
-
- [DataRow(127, "::1")]
- [DataRow(126, "::3")]
- [DataRow(125, "::7")]
- [DataRow(124, "::f")]
-
- [DataRow(123, "::1f")]
- [DataRow(122, "::3f")]
- [DataRow(121, "::7f")]
- [DataRow(120, "::ff")]
-
- [DataRow(119, "::1ff")]
- [DataRow(118, "::3ff")]
- [DataRow(117, "::7ff")]
- [DataRow(116, "::fff")]
-
- [DataRow(115, "::1fff")]
- [DataRow(114, "::3fff")]
- [DataRow(113, "::7fff")]
- [DataRow(112, "::ffff")]
-
- [DataRow(111, "::1:ffff")]
- [DataRow(110, "::3:ffff")]
- [DataRow(109, "::7:ffff")]
- [DataRow(108, "::f:ffff")]
-
- [DataRow(107, "::1f:ffff")]
- [DataRow(106, "::3f:ffff")]
- [DataRow(105, "::7f:ffff")]
- [DataRow(104, "::ff:ffff")]
-
- [DataRow(103, "::1ff:ffff")]
- [DataRow(102, "::3ff:ffff")]
- [DataRow(101, "::7ff:ffff")]
- [DataRow(100, "::fff:ffff")]
-
- [DataRow(99, "::1fff:ffff")]
- [DataRow(98, "::3fff:ffff")]
- [DataRow(97, "::7fff:ffff")]
- [DataRow(96, "::ffff:ffff")]
-
- [DataRow(95, "::1:ffff:ffff")]
- [DataRow(94, "::3:ffff:ffff")]
- [DataRow(93, "::7:ffff:ffff")]
- [DataRow(92, "::f:ffff:ffff")]
-
- [DataRow(91, "::1f:ffff:ffff")]
- [DataRow(90, "::3f:ffff:ffff")]
- [DataRow(89, "::7f:ffff:ffff")]
- [DataRow(88, "::ff:ffff:ffff")]
-
- [DataRow(87, "::1ff:ffff:ffff")]
- [DataRow(86, "::3ff:ffff:ffff")]
- [DataRow(85, "::7ff:ffff:ffff")]
- [DataRow(84, "::fff:ffff:ffff")]
-
- [DataRow(83, "::1fff:ffff:ffff")]
- [DataRow(82, "::3fff:ffff:ffff")]
- [DataRow(81, "::7fff:ffff:ffff")]
- [DataRow(80, "::ffff:ffff:ffff")]
-
- [DataRow(79, "::1:ffff:ffff:ffff")]
- [DataRow(78, "::3:ffff:ffff:ffff")]
- [DataRow(77, "::7:ffff:ffff:ffff")]
- [DataRow(76, "::f:ffff:ffff:ffff")]
-
- [DataRow(75, "::1f:ffff:ffff:ffff")]
- [DataRow(74, "::3f:ffff:ffff:ffff")]
- [DataRow(73, "::7f:ffff:ffff:ffff")]
- [DataRow(72, "::ff:ffff:ffff:ffff")]
-
- [DataRow(71, "::1ff:ffff:ffff:ffff")]
- [DataRow(70, "::3ff:ffff:ffff:ffff")]
- [DataRow(69, "::7ff:ffff:ffff:ffff")]
- [DataRow(68, "::fff:ffff:ffff:ffff")]
-
- [DataRow(67, "::1fff:ffff:ffff:ffff")]
- [DataRow(66, "::3fff:ffff:ffff:ffff")]
- [DataRow(65, "::7fff:ffff:ffff:ffff")]
- [DataRow(64, "::ffff:ffff:ffff:ffff")]
-
- [DataRow(63, "::1:ffff:ffff:ffff:ffff")]
- [DataRow(62, "::3:ffff:ffff:ffff:ffff")]
- [DataRow(61, "::7:ffff:ffff:ffff:ffff")]
- [DataRow(60, "::f:ffff:ffff:ffff:ffff")]
-
- [DataRow(59, "::1f:ffff:ffff:ffff:ffff")]
- [DataRow(58, "::3f:ffff:ffff:ffff:ffff")]
- [DataRow(57, "::7f:ffff:ffff:ffff:ffff")]
- [DataRow(56, "::ff:ffff:ffff:ffff:ffff")]
-
- [DataRow(55, "::1ff:ffff:ffff:ffff:ffff")]
- [DataRow(54, "::3ff:ffff:ffff:ffff:ffff")]
- [DataRow(53, "::7ff:ffff:ffff:ffff:ffff")]
- [DataRow(52, "::fff:ffff:ffff:ffff:ffff")]
-
- [DataRow(51, "::1fff:ffff:ffff:ffff:ffff")]
- [DataRow(50, "::3fff:ffff:ffff:ffff:ffff")]
- [DataRow(49, "::7fff:ffff:ffff:ffff:ffff")]
- [DataRow(48, "::ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(47, "::1:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(46, "::3:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(45, "::7:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(44, "::f:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(43, "::1f:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(42, "::3f:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(41, "::7f:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(40, "::ff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(39, "::1ff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(38, "::3ff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(37, "::7ff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(36, "::fff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(35, "::1fff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(34, "::3fff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(33, "::7fff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(32, "::ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(31, "0:1:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(30, "0:3:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(29, "0:7:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(28, "0:f:ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(27, "0:1f:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(26, "0:3f:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(25, "0:7f:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(24, "0:ff:ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(23, "0:1ff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(22, "0:3ff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(21, "0:7ff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(20, "0:fff:ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(19, "0:1fff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(18, "0:3fff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(17, "0:7fff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(16, "0:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(15, "1:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(14, "3:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(13, "7:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(12, "f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(11, "1f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(10, "3f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(9, "7f:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(8, "ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(7, "1ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(6, "3ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(5, "7ff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(4, "fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
-
- [DataRow(3, "1fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(2, "3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(1, "7fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- [DataRow(0, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")]
- public void Test_WildcardMask_ipv6_cidr(int cidr, string expected)
- {
- var ipnetwork = IPNetwork2.Parse($"::/{cidr}");
-
- int cidr2 = (int)ipnetwork.Cidr;
- var expectedipv6 = IPAddress.Parse(expected);
- var expectedcidr = IPNetwork2.ToBigInteger(expectedipv6);
- IPAddress wildcardmask = ipnetwork.WildcardMask;
- var wildcardcidr = IPNetwork2.ToBigInteger(wildcardmask);
-
- Assert.AreEqual(cidr, cidr2, "netmask");
- Assert.AreEqual(expectedcidr, wildcardcidr, "wildcardcidr");
- }
-
- #endregion
- }
-}
diff --git a/src/ipnetwork.sln.DotSettings b/src/ipnetwork.sln.DotSettings
new file mode 100644
index 00000000..4f9ff323
--- /dev/null
+++ b/src/ipnetwork.sln.DotSettings
@@ -0,0 +1,2 @@
+
+ IP
\ No newline at end of file