2020-01-18 03:41:45 +00:00
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
using System;
|
|
|
|
|
|
|
|
namespace SemiColinGames.Tests {
|
|
|
|
[TestClass]
|
|
|
|
public class HistoryTests {
|
2020-03-18 18:03:37 +00:00
|
|
|
public static int[] ToArray(History<int> history) {
|
|
|
|
int[] result = new int[history.Length];
|
|
|
|
for (int i = 0; i < history.Length; i++) {
|
|
|
|
result[i] = history[i];
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2020-01-18 03:41:45 +00:00
|
|
|
[TestMethod]
|
|
|
|
public void TestLength() {
|
|
|
|
var h = new History<int>(3);
|
|
|
|
Assert.AreEqual(3, h.Length);
|
|
|
|
}
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
public void TestGetFromEmpty() {
|
|
|
|
var ints = new History<int>(3);
|
|
|
|
Assert.AreEqual(0, ints[0]);
|
|
|
|
Assert.AreEqual(0, ints[1]);
|
|
|
|
Assert.AreEqual(0, ints[2]);
|
|
|
|
|
|
|
|
var objects = new History<Object>(1);
|
|
|
|
Assert.AreEqual(null, objects[0]);
|
|
|
|
}
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
public void TestAdds() {
|
|
|
|
var h = new History<int>(3);
|
2020-03-18 18:03:37 +00:00
|
|
|
Assert.AreEqual("0 0 0", String.Join(" ", ToArray(h)));
|
2020-01-18 03:41:45 +00:00
|
|
|
h.Add(2);
|
2020-03-18 18:03:37 +00:00
|
|
|
Assert.AreEqual("2 0 0", String.Join(" ", ToArray(h)));
|
2020-01-18 03:41:45 +00:00
|
|
|
h.Add(3);
|
|
|
|
h.Add(5);
|
2020-03-18 18:03:37 +00:00
|
|
|
Assert.AreEqual("5 3 2", String.Join(" ", ToArray(h)));
|
2020-01-18 03:41:45 +00:00
|
|
|
h.Add(7);
|
2020-03-18 18:03:37 +00:00
|
|
|
Assert.AreEqual("7 5 3", String.Join(" ", ToArray(h)));
|
2020-01-18 03:41:45 +00:00
|
|
|
h.Add(11);
|
|
|
|
h.Add(13);
|
2020-03-18 18:03:37 +00:00
|
|
|
Assert.AreEqual("13 11 7", String.Join(" ", ToArray(h)));
|
2020-01-18 03:41:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
public void TestThrowsExceptions() {
|
|
|
|
var h = new History<int>(3);
|
|
|
|
Assert.ThrowsException<IndexOutOfRangeException>(() => h[-1]);
|
|
|
|
Assert.ThrowsException<IndexOutOfRangeException>(() => h[3]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|