m3
This commit is contained in:
62
tests/LinkTest.cs
Normal file
62
tests/LinkTest.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Skeleton.DataStructure.Link;
|
||||
|
||||
namespace SkeletonTest.tests;
|
||||
|
||||
public static class LinkTest
|
||||
{
|
||||
private class TestObj
|
||||
{
|
||||
public TestObj(int val) => Value = val;
|
||||
public int Value { get; set; } = 0;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void Test()
|
||||
{
|
||||
Link<int> obj = new Link<int>();
|
||||
for (int i = 0; i <= 10; i++)
|
||||
obj.AddLast(i);
|
||||
int checker = 0;
|
||||
foreach (int val in obj)
|
||||
Assert.That(checker++, Is.EqualTo(val));
|
||||
|
||||
checker -= 1;
|
||||
foreach (int val in obj.Backward)
|
||||
Assert.That(checker--, Is.EqualTo(val));
|
||||
Link<TestObj> objA = new Link<TestObj>();
|
||||
for (int i = 0; i <= 10; i++)
|
||||
objA.AddLast(new TestObj(i));
|
||||
Assert.That(objA.Zip(obj).Count(x => x.First.Value - x.Second != 0), Is.EqualTo(0));
|
||||
LinkNode<TestObj> findObj = objA.Find(new TestObj(0));
|
||||
LinkNode<int> findInt = obj.Find(0);
|
||||
|
||||
Assert.That(LinkNode<TestObj>.Null, Is.EqualTo(findObj));
|
||||
Assert.That(LinkNode<int>.Null, Is.Not.EqualTo(findInt));
|
||||
findObj = objA.Find(objA.First.Value);
|
||||
Assert.That(LinkNode<TestObj>.Null, Is.Not.EqualTo(findObj));
|
||||
try
|
||||
{
|
||||
objA.Remove(findObj.Previous);
|
||||
Assert.Fail();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// pass
|
||||
}
|
||||
|
||||
objA.Remove(findObj.Next);
|
||||
objA.Remove(findObj.Next.Next);
|
||||
Assert.That(objA.Select(x => x.Value).Count(x => x==1 || x==3), Is.EqualTo(0));
|
||||
Assert.That(findInt.Value, Is.EqualTo(0));
|
||||
obj.Remove(findInt);
|
||||
obj.RemoveFirst();
|
||||
Assert.IsFalse(obj.Contains(0) || obj.Contains(1));
|
||||
Assert.That(findInt.Previous, Is.EqualTo(LinkNode<int>.Null));
|
||||
Assert.That(findInt.Next, Is.EqualTo(LinkNode<int>.Null));
|
||||
Assert.That(findInt.Parent, Is.EqualTo(Link<int>.Null));
|
||||
Assert.That(obj.Find(findInt.Value), Is.EqualTo(LinkNode<int>.Null));
|
||||
Console.WriteLine("Link Structure Test Pass");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user