コード例 #1
0
        public void GetLargestPointInBoxTest1(int boxBottom, int boxTop, int boxLeft, int boxRight)         //This name sucks
        {
            var hold = new Hold(1000, 0, 1000, 0, 512);
            var rand = new Random(11);

            var box = new Box {
                Bottom = boxBottom, Top = boxTop, Left = boxLeft, Right = boxRight
            };
            var largestPoint = new Point {
                Value = 0, X = boxRight, Y = boxTop
            };

            hold.AddPoint(largestPoint);

            for (int i = 0; i < 1000000; i++)
            {
                var point = new Point {
                    Value = i, X = rand.Next(1001), Y = rand.Next(1001)
                };
                if (pointIsInBox(point, box))
                {
                    largestPoint = point;                     //each point has a larger value than the last
                }
                hold.AddPoint(point);
            }
            var tmp = hold.GetLargestPointInBox(box);

            Assert.AreEqual(largestPoint, tmp);
        }
コード例 #2
0
        public void CreateSubHoldsTestVerticalLine()
        {
            var hold = new Hold(100, 0, 0, 0, 1);

            hold.AddPoint(new Point {
                Value = 10, X = 0, Y = 0
            });
            hold.AddPoint(new Point {
                Value = 10, X = 0, Y = 80
            });

            Assert.AreEqual(1,
                            hold.Holds.Count(h => h.TopBoundry == 100 && h.BottomBoundry == 51 && h.RightBoundry == 0 && h.LeftBoundry == 0));
            Assert.AreEqual(1,
                            hold.Holds.Count(h => h.TopBoundry == 50 && h.BottomBoundry == 0 && h.RightBoundry == 0 && h.LeftBoundry == 0));
            Assert.AreEqual(2, hold.Holds.Count);
        }
コード例 #3
0
        public void CreateSubHoldPoint()
        {
            var hold = new Hold(0, 0, 0, 0, 1);

            hold.AddPoint(new Point {
                Value = 10, X = 0, Y = 0
            });
            hold.AddPoint(new Point {
                Value = 10, X = 0, Y = 0
            });
            hold.AddPoint(new Point {
                Value = 10, X = 0, Y = 0
            });

            Assert.IsTrue(hold.StoresPoints);
            Assert.IsNull(hold.Holds);
        }
コード例 #4
0
        public void addPointToHoldTest()
        {
            var hold  = new Hold(100, 0, 100, 0, 10);
            var point = new Point {
                X = 10, Y = 11, Value = 86
            };

            hold.AddPoint(point);
            Assert.Contains(point, hold.Points);
        }
コード例 #5
0
        public void LargestPoint1000Points()
        {
            var hold = new Hold(100, 0, 100, 0, 10);
            var rand = new Random();

            for (int i = 0; i < 999; i++)
            {
                hold.AddPoint(new Point {
                    Value = i, X = rand.Next(0, 101), Y = rand.Next(1, 101)
                });
            }

            var largestPoint = new Point {
                Value = 1000, X = rand.Next(0, 101), Y = rand.Next(1, 101)
            };

            hold.AddPoint(largestPoint);

            Assert.AreEqual(largestPoint, hold.LargestPoint);
        }
コード例 #6
0
        public void LargestPointSplitHold()
        {
            var hold         = new Hold(100, 0, 100, 0, 3);
            var largestPoint = new Point {
                Value = 10, X = 70, Y = 70
            };

            hold.AddPoint(largestPoint);
            hold.AddPoint(new Point {
                Value = 0, X = 10, Y = 10
            });
            hold.AddPoint(new Point {
                Value = 1, X = 10, Y = 70
            });
            hold.AddPoint(new Point {
                Value = 2, X = 70, Y = 10
            });

            Assert.AreEqual(largestPoint, hold.LargestPoint);
        }
コード例 #7
0
        public void LargestPointSinglePoint()
        {
            var hold  = new Hold(100, 0, 100, 0);
            var point = new Point {
                Value = 10, X = 0, Y = 0
            };

            hold.AddPoint(point);

            Assert.AreEqual(point, hold.LargestPoint);
        }
コード例 #8
0
        public void holdStoresPointsTest()
        {
            var hold = new Hold(100, 0, 100, 0, 4);

            Assert.IsTrue(hold.StoresPoints);
            hold.AddPoint(new Point {
                X = 10, Y = 11, Value = 86
            });
            hold.AddPoint(new Point {
                X = 20, Y = 70, Value = 86
            });
            hold.AddPoint(new Point {
                X = 30, Y = 11, Value = 86
            });
            hold.AddPoint(new Point {
                X = 70, Y = 70, Value = 86
            });
            hold.AddPoint(new Point {
                X = 80, Y = 11, Value = 86
            });                                                                  //This point causes the hold to split.
            Assert.IsFalse(hold.StoresPoints);
        }
コード例 #9
0
        public void LargestPointBasicMultiplePoints()
        {
            var hold         = new Hold(100, 0, 100, 0);
            var largestPoint = new Point {
                Value = 10, X = 0, Y = 0
            };

            hold.AddPoint(new Point {
                Value = 0, X = 10, Y = 0
            });
            hold.AddPoint(new Point {
                Value = 1, X = 20, Y = 0
            });
            hold.AddPoint(largestPoint);
            hold.AddPoint(new Point {
                Value = 2, X = 30, Y = 0
            });
            hold.AddPoint(new Point {
                Value = 3, X = 40, Y = 0
            });

            Assert.AreEqual(largestPoint, hold.LargestPoint);
        }