public void TestGenerateRollover()
        {
            // List of points the generator will use.
            var points = new List<Point>
            {
                new Point(0, 0),
                new Point(0, 1),
                new Point(1, 0),
                new Point(1, 1)
            };

            // Setup a list of expected points by duplicating
            // the original points.
            var expected = new List<Point>(points);
            expected.AddRange(points.Select(p => new Point(p.X, p.Y)));

            // Prime the generator.
            var generator = new DeterminatePointGenerator(points);
            var generated = new List<Point>(points.Count);
            // We want the generator to rollover and reuse the points.
            for (int i = 0; i < points.Count * 2; i++)
            {
                generated.Add(generator.Generate(2, 2));
            }

            Assert.IsTrue(expected.SequenceEqual(generated));
        }
        public void TestGenerate()
        {
            // List of points the generator will use.
            var points = new List<Point>
            {
                new Point(0, 0),
                new Point(0, 1),
                new Point(1, 0),
                new Point(1, 1)
            };

            // Prime the generator.
            var generator = new DeterminatePointGenerator(points);
            var generated = new List<Point>(points.Count);
            // We want the same number of points as we passed in.
            for (int i = 0; i < points.Count; i++)
            {
                generated.Add(generator.Generate(2, 2));
            }

            Assert.IsTrue(points.SequenceEqual(generated));
        }