using System.Collections; using PkmnLib.Static.Utils; namespace PkmnLib.Tests.Static; public class StringKeyTests { private static IEnumerable StringKeyEqualityTestCases { get { yield return new TestCaseData("test", "test").Returns(true); yield return new TestCaseData("test", "test2").Returns(false); yield return new TestCaseData("test2", "test2").Returns(true); yield return new TestCaseData("Test", "test").Returns(true); yield return new TestCaseData("TeSt", "tesT").Returns(true); yield return new TestCaseData("TeSt", "tesv").Returns(false); } } [Test] [TestCaseSource(nameof(StringKeyEqualityTestCases))] public bool StringKeyEqualityTest(string k1, string k2) { var sk1 = new StringKey(k1); var sk2 = new StringKey(k2); return sk1 == sk2; } [Test] [TestCaseSource(nameof(StringKeyEqualityTestCases))] public bool HashCodeEqualityTest(string k1, string k2) { var sk1 = new StringKey(k1); var sk2 = new StringKey(k2); return sk1.GetHashCode() == sk2.GetHashCode(); } [Test] [TestCaseSource(nameof(StringKeyEqualityTestCases))] public bool HashSetEqualityTest(string k1, string k2) { var sk1 = new StringKey(k1); var sk2 = new StringKey(k2); var hs = new HashSet { sk1 }; return hs.Contains(sk2); } }