예제 #1
0
        public void TestDynamicArrayStorage()
        {
            var storage = new DynamicArrayStorage <CubeCoordinates>();
            var cc      = new CubeCoordinates(0, 0, 0);

            storage.Add(cc);
            Assert.AreEqual(cc, storage.Get(0, 0));
            cc = new CubeCoordinates(1, -2, 1);
            storage.Add(cc);
            Assert.AreEqual(cc, storage.Get(1, 1));
            Assert.ThrowsException <ArgumentException>(() => storage.Add(cc));
            storage.Clear();
            for (int x = -99; x < 100; x++)
            {
                for (int y = -99; y < 100; y++)
                {
                    for (int z = -99; z < 100; z++)
                    {
                        if (x + y + z != 0)
                        {
                            continue;
                        }
                        cc = new CubeCoordinates(x, y, z);
                        storage.Add(cc);
                        Assert.AreEqual(cc, storage.Get(x, z));
                        Assert.AreEqual(cc, storage[x, z]);
                    }
                }
            }
        }
예제 #2
0
        public void TestOffsetBaseItf()
        {
            var storage = new DynamicArrayStorage <OffsetCoordinatesBase>();
            var ec      = new EvenColumn(12, 3);

            storage.Add(ec);
            Assert.AreEqual(ec, storage.Get(12, 3));
        }
예제 #3
0
 public void TestOverflow()
 => Assert.ThrowsException <OverflowException>(() => DynamicArrayStorage <CubeCoordinates> .PreventOverflow(ulong.MaxValue));