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)); }
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)); }
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)); }
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)); }
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); }
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(); }
public Tree(BoxComparer comparer) : base(_dimension, _maximumElementCountPerTile, _dynamic) { _comparer = comparer; }