perf: Massive performance improvements to enum HasFlag and HasFlags extensions

This commit is contained in:
Chris Cameron
2018-07-26 12:10:50 -04:00
parent 668994be18
commit 8f17d59694
3 changed files with 213 additions and 63 deletions

View File

@@ -273,20 +273,6 @@ namespace ICD.Common.Utils.Tests
Assert.AreEqual(eTestFlagsEnum.None, outputB);
}
[Test]
public void ToEnumGenericTest()
{
Assert.AreEqual(eTestEnum.A, EnumUtils.ToEnum(eTestEnum.A));
Assert.AreNotEqual(eTestEnum.B, EnumUtils.ToEnum(eTestEnum.A));
}
[Test]
public void ToEnumTest()
{
Assert.AreEqual(eTestEnum.A, EnumUtils.ToEnum((object)eTestEnum.A));
Assert.AreNotEqual(eTestEnum.B, EnumUtils.ToEnum((object)eTestEnum.A));
}
#endregion
}
}

View File

@@ -253,6 +253,7 @@ namespace ICD.Common.Utils.Tests.Xml
[TestCase("<Test><Child>A</Child></Test>", "Child", true, eTestEnum.A)]
[TestCase("<Test><Child>A, B</Child></Test>", "Child", true, eTestEnum.A | eTestEnum.B)]
public void ReadChildElementContentAsEnumTest<T>(string xml, string childElement, bool ignoreCase, T expected)
where T : struct, IConvertible
{
Assert.AreEqual(expected, XmlUtils.ReadChildElementContentAsEnum<T>(xml, childElement, ignoreCase));
}