You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

113 lines
3.7 KiB

using NUnit.Framework;
using System.Collections.Generic;
using UnityEditor.Graphing;
using UnityEditor.ShaderGraph;
using System.Linq;
namespace UnityEditor.ShaderGraph.UnitTests
{
class ListUtilityTests
{
List<int> GetList()
{
return new List<int>()
{
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
};
}
List<int> GetEmptyList()
{
return new List<int>();
}
bool ListEquals(List<int> list, params int[] expectedValues)
{
if (list.Count != expectedValues.Length)
return false;
for (int x = 0; x < list.Count; x++)
if (list[x] != expectedValues[x])
return false;
return true;
}
[Test]
public void ListSlice()
{
Assert.IsTrue(ListEquals(GetList().Slice(2, 5).ToList(), 2, 3, 4));
Assert.IsTrue(ListEquals(GetList().Slice(0, 1).ToList(), 0));
Assert.IsTrue(ListEquals(GetList().Slice(7, 10).ToList(), 7, 8, 9));
Assert.IsTrue(ListEquals(GetList().Slice(0, 10).ToList(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
Assert.IsFalse(GetList().Slice(0, 0).Any());
Assert.IsFalse(GetList().Slice(5, 5).Any());
Assert.IsFalse(GetList().Slice(10, 10).Any());
Assert.IsFalse(GetList().Slice(6, 4).Any());
}
[Test]
public void ListRemoveAllFromRange()
{
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => true, 0, 10) == 10);
Assert.IsTrue(ListEquals(list));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => false, 0, 10) == 0);
Assert.IsTrue(ListEquals(list, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => x == 3, 0, 6) == 1);
Assert.IsTrue(ListEquals(list, 0, 1, 2, 4, 5, 6, 7, 8, 9));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => true, 3, 3) == 3);
Assert.IsTrue(ListEquals(list, 0, 1, 2, 6, 7, 8, 9));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => x == 3, 4, 2) == 0);
Assert.IsTrue(ListEquals(list, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => x < 5, 0, 10) == 5);
Assert.IsTrue(ListEquals(list, 5, 6, 7, 8, 9));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => ((x & 0x01) == 0), 2, 8) == 4);
Assert.IsTrue(ListEquals(list, 0, 1, 3, 5, 7, 9));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => ((x & 0x01) == 0x01), 0, 8) == 4);
Assert.IsTrue(ListEquals(list, 0, 2, 4, 6, 8, 9));
}
{
var list = GetList();
Assert.IsTrue(list.RemoveAllFromRange(x => ((x & 0x03) == 0x00), 0, 10) == 3);
Assert.IsTrue(ListEquals(list, 1, 2, 3, 5, 6, 7, 9));
}
{
var list = GetEmptyList();
Assert.IsTrue(list.RemoveAllFromRange(x => true, 0, 0) == 0);
Assert.IsTrue(ListEquals(list));
}
}
}
}