Beispiel #1
0
        public void TestRingPatternTransform()
        {
            var pattern = new RingPattern(_white, _black);

            Assert.AreEqual(_white, pattern.ColorAt(Tuple.Point(0, 0, 0)));
            Assert.AreEqual(_black, pattern.ColorAt(Tuple.Point(1, 0, 0)));
            Assert.AreEqual(_black, pattern.ColorAt(Tuple.Point(0, 0, 1)));
            Assert.AreEqual(_black, pattern.ColorAt(Tuple.Point(0.708, 0, 0.708)));
        }
Beispiel #2
0
        public void ColorAt()
        {
            var pattern = new RingPattern(SolidPattern.White, SolidPattern.Black);

            Assert.Equal(Color.White, pattern.ColorAt(new Sphere(), Point.Zero));
            Assert.Equal(Color.Black, pattern.ColorAt(new Sphere(), new Point(1, 0, 0)));
            Assert.Equal(Color.Black, pattern.ColorAt(new Sphere(), new Point(0, 0, 1)));
            Assert.Equal(Color.Black, pattern.ColorAt(new Sphere(), new Point(0.708f, 0, 0.708f)));
        }
        public void A_ring_should_extend_in_both_x_and_z()
        {
            var pattern = new RingPattern(Color.White, Color.Black);

            Assert.AreEqual(Color.White, pattern.ColorAt(Tuple.Point(0, 0, 0)));
            Assert.AreEqual(Color.Black, pattern.ColorAt(Tuple.Point(1, 0, 0)));
            Assert.AreEqual(Color.Black, pattern.ColorAt(Tuple.Point(0, 0, 1)));
            Assert.AreEqual(Color.Black, pattern.ColorAt(Tuple.Point(0.708, 0, 0.708)));
        }
Beispiel #4
0
        private static void TestCase06()
        {
            // A ring should extend in both x and z
            Pattern pattern = new RingPattern(white, black);

            Assert.Equal(white, pattern.ColorAt(Tuple.Point(0, 0, 0)));
            Assert.Equal(black, pattern.ColorAt(Tuple.Point(1, 0, 0)));
            Assert.Equal(black, pattern.ColorAt(Tuple.Point(0, 0, 1)));
            Assert.Equal(black, pattern.ColorAt(Tuple.Point(0.708f, 0, 0.708f)));
        }
Beispiel #5
0
        public void Ring_Extend_In_Both_X_And_Z()
        {
            var pattern    = new RingPattern(Color.White, Color.Black);
            var unitSphere = new Sphere();

            pattern.ColorAt(new Point(0, 0, 0), unitSphere).ShouldBe(Color.White);
            pattern.ColorAt(new Point(1, 0, 0), unitSphere).ShouldBe(Color.Black);
            pattern.ColorAt(new Point(0, 0, 1), unitSphere).ShouldBe(Color.Black);
            pattern.ColorAt(new Point(0, 1, 0), unitSphere).ShouldBe(Color.White);
            pattern.ColorAt(new Point(0.708, 0, 0.708), unitSphere).ShouldBe(Color.Black);
        }
        public void ColorAt_should_extend_in_both_x_and_z()
        {
            var pattern = new RingPattern(Colors.White, Colors.Black);

            pattern.ColorAt(new Point(0, 0, 0)).Should().Be(Colors.White);
            pattern.ColorAt(new Point(1, 0, 0)).Should().Be(Colors.Black);
            pattern.ColorAt(new Point(0, 0, 1)).Should().Be(Colors.Black);

            // 0.708 is just slightly more than sqrt(2)/2
            pattern.ColorAt(new Point(0.708, 0, 0.708)).Should().Be(Colors.Black);
        }