Exemple #1
0
        public void AddTest()
        {
            int          count = 100;
            LxList <int> list  = InitList(count);

            for (int i = 0; i < list.Count; ++i)
            {
                Assert.AreEqual(i, list.Get(i));
            }

            Assert.AreEqual(100, list.Count);

            for (int i = 0; i < count; ++i)
            {
                list.Add(i);
            }

            for (int i = 0; i < count; ++i)
            {
                Assert.AreEqual(i, list.Get(i));
            }

            for (int i = count; i < list.Count; ++i)
            {
                Assert.AreEqual(i - count, list.Get(i));
            }
        }
Exemple #2
0
        public void InsertTest()
        {
            int          count = 100;
            LxList <int> list  = InitList(count);

            Assert.Catch <LxException>(() => { list.Insert(-1, -1); });
            Assert.Catch <LxException>(() => { list.Insert(101, -1); });

            list.Insert(0, -1);
            for (int i = 0; i < list.Count; ++i)
            {
                Assert.AreEqual(i - 1, list.Get(i));
            }

            InsertTest(0, -1, count);
            InsertTest(count - 1, -1, count);
            InsertTest(count / 2, -1, count);
        }
Exemple #3
0
        private void SetTest(int setIndex, int setValue, int count)
        {
            LxList <int> list = InitList(count);

            list.Set(setIndex, setValue);
            for (int i = 0; i < list.Count; ++i)
            {
                int value = list.Get(i);
                if (i == setIndex)
                {
                    Assert.AreEqual(setValue, value);
                }
                else
                {
                    Assert.AreEqual(i, value);
                }
            }
        }
Exemple #4
0
        public void BenchmarkGet()
        {
            int count     = 128;
            int iteration = 1000000;

            int[]        array  = new int[count];
            List <int>   list   = new List <int>(count);
            LxList <int> lxList = new LxList <int>(count);

            Stopwatch watch;
            int       result;
            int       index = 10;

            // assign test
            for (int i = 0; i < count; ++i)
            {
                array[i] = i;
                list.Add(i);
                lxList.Add(i);
            }

            // access test
            watch = MatchmakingTest.Measure(() =>
            {
                result = array[index];
            }, iteration);
            Debug.Log($"array access ticks {watch.ElapsedMilliseconds}");

            watch = MatchmakingTest.Measure(() =>
            {
                result = list[index];
            }, iteration);
            Debug.Log($"list access ticks {watch.ElapsedMilliseconds}");

            watch = MatchmakingTest.Measure(() =>
            {
                result = lxList.Get(index);
            }, iteration);
            Debug.Log($"lx list access ticks {watch.ElapsedMilliseconds}");
        }
Exemple #5
0
        public void SortTest()
        {
            int count = 100;
            LxList <SortTestData> list = new LxList <SortTestData>();
            var comparer = new SortTestComparer();

            for (int i = 0; i < count; ++i)
            {
                list.Add(new SortTestData {
                    Data = i
                }, comparer, true);
            }

            for (int i = 0; i < count; ++i)
            {
                Assert.AreEqual(count - i - 1, list.Get(i).Data);
            }


            int[] testInput = new int[]
            {
                9, 8, 7, 2, 33, 144, 22, 13, 44, 33
            };

            int[] testOuputUnique = new int[]
            {
                144, 44, 33, 22, 13, 9, 8, 7, 2
            };

            int[] testOuputNoUnique = new int[]
            {
                144, 44, 33, 33, 22, 13, 9, 8, 7, 2
            };

            list = new LxList <SortTestData>();
            LxList <int> subList = new LxList <int>();

            for (int i = 0; i < testInput.Length; ++i)
            {
                int insertIndex = list.Add(new SortTestData {
                    Data = testInput[i]
                }, comparer, true);
                if (insertIndex >= 0)
                {
                    subList.Insert(insertIndex, testInput[i]);
                }
            }

            Assert.AreEqual(subList.Count, list.Count);

            for (int i = 0; i < list.Count; ++i)
            {
                Assert.AreEqual(testOuputUnique[i], list.Get(i).Data);
                Assert.AreEqual(testOuputUnique[i], subList.Get(i));
            }

            list    = new LxList <SortTestData>();
            subList = new LxList <int>();
            for (int i = 0; i < testInput.Length; ++i)
            {
                int insertIndex = list.Add(new SortTestData {
                    Data = testInput[i]
                }, comparer, false);
                if (insertIndex >= 0)
                {
                    subList.Insert(insertIndex, testInput[i]);
                }
            }

            Assert.AreEqual(subList.Count, list.Count);
            for (int i = 0; i < list.Count; ++i)
            {
                Assert.AreEqual(testOuputNoUnique[i], list.Get(i).Data);
                Assert.AreEqual(testOuputNoUnique[i], subList.Get(i));
            }
        }