Esempio n. 1
0
        public void TestCompareOrtho()
        {
            Vector3D    vCameraPos = new Vector3D(-10000.0, -10000.0, 10000.0);
            Vector3D    vTarget    = new Vector3D(0.0, 0.0, 0.0);
            BoxComparer comparer   = new BoxComparer(vCameraPos, vTarget);

            Box b1 = new Box(1, 100.0, 100.0, 100.0);

            b1.Position = new Vector3D(900.0, 900.0, 0.0);
            Box b2 = new Box(2, 100.0, 100.0, 100.0);

            b2.Position = new Vector3D(800.0, 900.0, 0.0);
            Box b3 = new Box(3, 100.0, 100.0, 100.0);

            b3.Position = new Vector3D(900.0, 800.0, 0.0);
            Box b4 = new Box(4, 100.0, 100.0, 100.0);

            b4.Position = new Vector3D(800.0, 800.0, 0.0);

            Assert.AreEqual(0, comparer.Compare(b1, b1));

            Assert.AreEqual(-1, comparer.Compare(b1, b2));
            Assert.AreEqual(1, comparer.Compare(b2, b1));
            Assert.AreEqual(-1, comparer.Compare(b1, b3));
            Assert.AreEqual(1, comparer.Compare(b3, b1));
            Assert.AreEqual(-1, comparer.Compare(b1, b4));
            Assert.AreEqual(1, comparer.Compare(b4, b1));
            Assert.AreEqual(-1, comparer.Compare(b2, b4));
            Assert.AreEqual(1, comparer.Compare(b4, b2));
            Assert.AreEqual(-1, comparer.Compare(b3, b4));
            Assert.AreEqual(1, comparer.Compare(b4, b3));
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            /* Problem 1 */
            var stringBoxes = BoxCollectionInitializer.GetStringBoxes();

            PrintBoxCollection(stringBoxes);

            /* Problem 2 */
            var intBoxes = BoxCollectionInitializer.GetIntBoxes();

            PrintBoxCollection(intBoxes); // Problem 2

            /* Problem 3 */
            PrintResult(BoxSwapper.SwapStringBoxes(stringBoxes));

            /* Problem 4 */
            PrintResult(BoxSwapper.SwapIntBoxes(intBoxes));

            /* Problem 5 */
            PrintResult(BoxComparer.CompareStringBoxes(stringBoxes));

            /* Problem 6 */
            var doubleBoxes = BoxCollectionInitializer.GetDoubleBoxes();

            PrintResult(BoxComparer.CompareDoubleBoxes(doubleBoxes));
        }
Esempio n. 3
0
        public void TestCompareOrtho()
        {
            Vector3D vCameraPos = new Vector3D(-10000.0, -10000.0, 10000.0);
            Vector3D vTarget = new Vector3D(0.0, 0.0, 0.0);
            BoxComparer comparer = new BoxComparer(vCameraPos, vTarget);

            Box b1 = new Box(1, 100.0, 100.0, 100.0);
            b1.Position = new Vector3D(900.0, 900.0, 0.0);
            Box b2 = new Box(2, 100.0, 100.0, 100.0);
            b2.Position = new Vector3D(800.0, 900.0, 0.0);
            Box b3 = new Box(3, 100.0, 100.0, 100.0);
            b3.Position = new Vector3D(900.0, 800.0, 0.0);
            Box b4 = new Box(4, 100.0, 100.0, 100.0);
            b4.Position = new Vector3D(800.0, 800.0, 0.0);

            Assert.AreEqual(0, comparer.Compare(b1, b1));

            Assert.AreEqual(-1, comparer.Compare(b1, b2));
            Assert.AreEqual(1, comparer.Compare(b2, b1));
            Assert.AreEqual(-1, comparer.Compare(b1, b3));
            Assert.AreEqual(1, comparer.Compare(b3, b1));
            Assert.AreEqual(-1, comparer.Compare(b1, b4));
            Assert.AreEqual(1, comparer.Compare(b4, b1));
            Assert.AreEqual(-1, comparer.Compare(b2, b4));
            Assert.AreEqual(1, comparer.Compare(b4, b2));
            Assert.AreEqual(-1, comparer.Compare(b3, b4));
            Assert.AreEqual(1, comparer.Compare(b4, b3));
        }
Esempio n. 4
0
        public void TestCompareEqualRank()
        {
            BoxComparer comparer = new BoxComparer(new Vector3D(-10000.0, -10000.0, 10000.0), new Vector3D(0.0, 0.0, 0.0));
            Box b1 = new Box(1, 200.0, 100.0, 100.0);
            b1.Position = new Vector3D(800.0, 200.0, 0.0);
            Box b2 = new Box(2, 200.0, 100.0, 100.0);
            b2.Position = new Vector3D(200.0, 800.0, 0.0);

            Assert.AreEqual(0, comparer.Compare(b1, b2));
            Assert.AreEqual(0, comparer.Compare(b2, b1));
        }
Esempio n. 5
0
        public void TestCompareDifferent()
        {
            BoxComparer comparer = new BoxComparer(new Vector3D(-10000.0, -10000.0, 10000.0), new Vector3D(0.0, 0.0, 0.0));
            Box b1 = new Box(1, 1000.0, 100.0, 100.0);
            b1.Position = new Vector3D(0.0, 900.0, 0.0);
            Box b2 = new Box(2, 100.0, 100.0, 100.0);
            b2.Position = new Vector3D(400.0, 800.0, 0.0);

            Assert.AreEqual(-1, comparer.Compare(b1, b2));
            Assert.AreEqual(1, comparer.Compare(b2, b1));
        }
Esempio n. 6
0
        public void TestCompareEqualRank()
        {
            BoxComparer comparer = new BoxComparer(new Vector3D(-10000.0, -10000.0, 10000.0), new Vector3D(0.0, 0.0, 0.0));
            Box         b1       = new Box(1, 200.0, 100.0, 100.0);

            b1.Position = new Vector3D(800.0, 200.0, 0.0);
            Box b2 = new Box(2, 200.0, 100.0, 100.0);

            b2.Position = new Vector3D(200.0, 800.0, 0.0);

            Assert.AreEqual(0, comparer.Compare(b1, b2));
            Assert.AreEqual(0, comparer.Compare(b2, b1));
        }
Esempio n. 7
0
        public void TestCompareDifferent()
        {
            BoxComparer comparer = new BoxComparer(new Vector3D(-10000.0, -10000.0, 10000.0), new Vector3D(0.0, 0.0, 0.0));
            Box         b1       = new Box(1, 1000.0, 100.0, 100.0);

            b1.Position = new Vector3D(0.0, 900.0, 0.0);
            Box b2 = new Box(2, 100.0, 100.0, 100.0);

            b2.Position = new Vector3D(400.0, 800.0, 0.0);

            Assert.AreEqual(-1, comparer.Compare(b1, b2));
            Assert.AreEqual(1, comparer.Compare(b2, b1));
        }
Esempio n. 8
0
        public CountedSet(IEnumerable <T> items, IEqualityComparer <T> comparer)
        {
            if (comparer is null)
            {
                throw new ArgumentNullException(nameof(comparer));
            }

            this.comparer = new BoxComparer(comparer);

            var countedItems = items.CountBy(t => new Box(t), this.comparer);

            TotalCount  = countedItems.Aggregate(0, (sum, kvp) => sum + kvp.Value);
            countLookup = countedItems.ToDictionary(this.comparer);
        }
Esempio n. 9
0
                public _Enumerator(BoxTree.TileEntryEnumerator enumerator,
                                   IEnumerable <BoxTree.TileEntry> elemList, BoxComparer comparer,
                                   bool excludeEqual)
                {
                    _elemList = new List <BoxTree.TileEntry>(elemList);
                    _elemList.Sort(comparer);

                    _nElems       = _elemList.Count;
                    _enum         = enumerator;
                    _comparer     = comparer;
                    _excludeEqual = excludeEqual;

                    Reset();
                }
Esempio n. 10
0
 public Tree(BoxComparer comparer) : base(_dimension,
                                          _maximumElementCountPerTile,
                                          _dynamic)
 {
     _comparer = comparer;
 }