2024-07-20 11:51:52 +00:00
|
|
|
using System.Collections;
|
|
|
|
using PkmnLib.Static.Utils;
|
|
|
|
|
|
|
|
namespace PkmnLib.Tests.Static;
|
|
|
|
|
|
|
|
public class StringKeyTests
|
|
|
|
{
|
2024-12-27 13:30:22 +00:00
|
|
|
public static IEnumerable<Func<(string, string, bool)>> StringKeyEqualityTestCases()
|
2024-07-20 11:51:52 +00:00
|
|
|
{
|
2024-12-27 13:30:22 +00:00
|
|
|
yield return () => ("test", "test", true);
|
|
|
|
yield return () => ("test", "test2", false);
|
|
|
|
yield return () => ("test2", "test2", true);
|
|
|
|
yield return () => ("Test", "test", true);
|
|
|
|
yield return () => ("TeSt", "tesT", true);
|
|
|
|
yield return () => ("TeSt", "tesv", false);
|
2024-07-20 11:51:52 +00:00
|
|
|
}
|
2024-12-27 13:30:22 +00:00
|
|
|
|
2025-03-02 16:19:57 +00:00
|
|
|
[Test, MethodDataSource(nameof(StringKeyEqualityTestCases))]
|
2024-12-27 13:30:22 +00:00
|
|
|
public async Task StringKeyEqualityTest(string k1, string k2, bool expected)
|
2024-07-20 11:51:52 +00:00
|
|
|
{
|
|
|
|
var sk1 = new StringKey(k1);
|
|
|
|
var sk2 = new StringKey(k2);
|
2024-12-27 13:30:22 +00:00
|
|
|
await Assert.That(sk1 == sk2).IsEqualTo(expected);
|
2024-07-20 11:51:52 +00:00
|
|
|
}
|
2024-12-27 13:30:22 +00:00
|
|
|
|
2025-03-02 16:19:57 +00:00
|
|
|
[Test, MethodDataSource(nameof(StringKeyEqualityTestCases))]
|
2024-12-27 13:30:22 +00:00
|
|
|
public async Task HashCodeEqualityTest(string k1, string k2, bool expected)
|
2024-07-20 11:51:52 +00:00
|
|
|
{
|
|
|
|
var sk1 = new StringKey(k1);
|
|
|
|
var sk2 = new StringKey(k2);
|
2024-12-27 13:30:22 +00:00
|
|
|
await Assert.That(sk1.GetHashCode() == sk2.GetHashCode()).IsEqualTo(expected);
|
2024-07-20 11:51:52 +00:00
|
|
|
}
|
2024-12-27 13:30:22 +00:00
|
|
|
|
2025-03-02 16:19:57 +00:00
|
|
|
[Test, MethodDataSource(nameof(StringKeyEqualityTestCases))]
|
2024-12-27 13:30:22 +00:00
|
|
|
public async Task HashSetEqualityTest(string k1, string k2, bool expected)
|
2024-07-20 11:51:52 +00:00
|
|
|
{
|
|
|
|
var sk1 = new StringKey(k1);
|
|
|
|
var sk2 = new StringKey(k2);
|
|
|
|
var hs = new HashSet<StringKey> { sk1 };
|
2024-12-27 13:30:22 +00:00
|
|
|
await Assert.That(hs.Contains(sk2)).IsEqualTo(expected);
|
2024-07-20 11:51:52 +00:00
|
|
|
}
|
|
|
|
}
|