treelisttest.cs

来自「classic tsp analysis method with c++ !」· CS 代码 · 共 115 行

CS
115
字号
using System;
using NUnit.Framework;
using HRD.Core;
using HRD.TreeList;

[TestFixture] 
public class TreeListTest
{
	TreeLinkedList t = new TreeLinkedList();
	ChessStep s1, s2, s3, s4, s5, s6;
	ChessStep[] s;

	[SetUp]
	public void Init() 
	{
	}

	[Test]
	public void FiveNodesTest() 
	{
		Prepare();
		s = t.TraceResult(s5);

		Assert.AreEqual(3, s.Length);
		Assert.AreEqual(1, s[0].layout);
		Assert.AreEqual(2, s[0].chessmanNum);
		Assert.AreEqual(MoveMethod.Down, s[0].moveMethod);

		Assert.AreEqual(2, s[1].layout);
		Assert.AreEqual(5, s[1].chessmanNum);
		Assert.AreEqual(MoveMethod.Up2, s[1].moveMethod);

		Assert.AreEqual(5, s[2].layout);
		Assert.AreEqual(-1, s[2].chessmanNum);
		Assert.AreEqual(MoveMethod.Nothingness, s[2].moveMethod);

		ReleaseAll();
	}

	[Test]
	public void SixNodesTest() 
	{
		Prepare();
		t.MoveCurrentToNext();
		t.MoveCurrentToNext();
		s = t.TraceResult(s6);

		Assert.AreEqual(4, s.Length);
			
		Assert.AreEqual(1, s[0].layout);
		Assert.AreEqual(2, s[0].chessmanNum);
		Assert.AreEqual(MoveMethod.Down, s[0].moveMethod);

		Assert.AreEqual(2, s[1].layout);
		Assert.AreEqual(4, s[1].chessmanNum);
		Assert.AreEqual(MoveMethod.Right, s[1].moveMethod);

		Assert.AreEqual(4, s[2].layout);
		Assert.AreEqual(6, s[2].chessmanNum);
		Assert.AreEqual(MoveMethod.Down2, s[2].moveMethod);

		Assert.AreEqual(6, s[3].layout);
		Assert.AreEqual(-1, s[3].chessmanNum);
		Assert.AreEqual(MoveMethod.Nothingness, s[3].moveMethod);

		ReleaseAll();
	}

	private void ReleaseAll()
	{
		t.ClearAll();
		s = null;
	}

	private void Prepare()
	{
		s1 = new ChessStep();
		s1.moveMethod = MoveMethod.Up;
		s1.chessmanNum = 1;
		s1.layout = 1;

		s2 = new ChessStep();
		s2.moveMethod = MoveMethod.Down;
		s2.chessmanNum = 2;
		s2.layout = 2;
			
		s3 = new ChessStep();
		s3.moveMethod = MoveMethod.Left;
		s3.chessmanNum = 3;
		s3.layout = 3;

			
		s4 = new ChessStep();
		s4.moveMethod = MoveMethod.Right;
		s4.chessmanNum = 4;
		s4.layout = 4;
			
		s5 = new ChessStep();
		s5.moveMethod = MoveMethod.Up2;
		s5.chessmanNum = 5;
		s5.layout = 5;
			
		s6 = new ChessStep();
		s6.moveMethod = MoveMethod.Down2;
		s6.chessmanNum = 6;
		s6.layout = 6;

		t.insertNode(s1);
		t.insertNode(s2);
		t.insertNode(s3);
		t.MoveCurrentToNext();
		t.insertNode(s4);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?