Example #1
0
        public void CreateBindings_CanNavigateFacettes()
        {
            var f1 = new Facette("fnord1", new List <object> {
                1, 2, 3
            });
            var f2 = new Facette("fnord2", new List <object> {
                4, 5, 6
            });
            var f3 = new Facette("fnord3", new List <object> {
                7, 8, 9
            });

            te.AddFacette(f1);
            te.AddFacette(f2);
            te.AddFacette(f3);

            var testContext = new MutagenRuntime.TestContext();

            testContext.AddFacette("fnord1", 1, 1);
            testContext.AddFacette("fnord2", 1, 1);
            testContext.AddFacette("fnord3", 1, 1);

            var theBinding = te.CreateBindings(testContext);

            // Bindings are organised as a singly linked list, so we
            // should be able to access the last item in the list (3 facettes mean, that we
            // always get a list of three entries)
            //Assert.IsNull(theBinding[0].next.next.next);
            Assert.AreEqual(theBinding[0].allBindings.Count, 3);
        }
Example #2
0
        public void CreateBindings_HonorsMultipleConstraints_IsolatedBackwardConstraint()
        {
            var f1 = new Facette("Head", new List <object> {
                1, 2, 3, 4, 5, 6
            });
            var f2 = new Facette("Middle", new List <object> {
                4, 5, 6, 7
            });
            var f3 = new Facette("Tail", new List <object> {
                6
            });

            te.AddFacette(f1);
            te.AddFacette(f2);
            te.AddFacette(f3);
            te.AddConstraint(new Constraint(f3, f1, x => true, new List <object> {
                1
            }));
            te.AddConstraint(new Constraint(f3, f2, x => true, new List <object> {
                4
            }));

            var testContext = new MutagenRuntime.TestContext();

            testContext.AddFacette("Head", 1, 1);
            testContext.AddFacette("Middle", 1, 1);
            testContext.AddFacette("Tail", 1, 1);

            var theBinding = te.CreateBindings(testContext);

            Assert.AreEqual(1, theBinding.Count);
        }
Example #3
0
        public void CreateBindings_ReturnsBinding_MultipleFacettes()
        {
            var f1 = new Facette("fnord1", new List <object> {
                1, 2, 3
            });
            var f2 = new Facette("fnord2", new List <object> {
                4, 5, 6
            });
            var f3 = new Facette("fnord3", new List <object> {
                7, 8, 9
            });

            te.AddFacette(f1);
            te.AddFacette(f2);
            te.AddFacette(f3);

            var testContext = new MutagenRuntime.TestContext();

            testContext.AddFacette("fnord1", 1, 1);
            testContext.AddFacette("fnord2", 1, 1);
            testContext.AddFacette("fnord3", 1, 1);

            var theBinding = te.CreateBindings(testContext);

            Assert.IsNotNull(theBinding);
            Assert.AreEqual(27, theBinding.Count);
        }
Example #4
0
 public static void DrawFacette(Facette facette, Bitmap img, Color pen)
 {
     facette.TraceFilDeFer(img, pen);
     facette.RemplissageFacette(new List <Point>()
     {
         facette.GermeDeDEpart()
     }, new List <Point>(), img, pen, 0);
 }
Example #5
0
 public void Setup()
 {
     F1 = new Facette("F1", new List <object> {
         1, 2, 3
     });
     F2 = new Facette("F2", new List <object> {
         4, 5, 6
     });
 }
Example #6
0
        public void GetFacette_ReturnsFacette()
        {
            var f = new Facette("fnord", new List <object>()
            {
                2
            });

            te.AddFacette(f);
            var returned = te.GetFacette("fnord");
        }
Example #7
0
 public void Facette_Ctor_ThrowsIfListIsEmpty()
 {
     try
     {
         var fac = new Facette("Facetto", new List <object>());
         Assert.Fail("Facette Ctor did not throw when handed an empty list");
     }
     catch
     {
     }
 }
Example #8
0
 public void Facette_Ctor_ThrowsIfListIsNull()
 {
     try
     {
         var fac = new Facette("Facetto", null);
         Assert.Fail("Facette Ctor did not throw when handed a NULL list");
     }
     catch
     {
     }
 }
Example #9
0
        public void Facette_NextVal_IteratesAllValues()
        {
            var fac = new Facette("Facetto", new List <object> {
                1, 2, 3, "foo"
            });

            Assert.AreEqual(1, (int)fac.NextValue());
            Assert.AreEqual(2, (int)fac.NextValue());
            Assert.AreEqual(3, (int)fac.NextValue());
            Assert.AreEqual("foo", fac.NextValue());
            Assert.AreEqual(null, fac.NextValue());
        }
Example #10
0
        public void Facette_GetValues_ReturnsCorrectValues()
        {
            var fac = new Facette("Facetto", new List <object> {
                1, 2, 3, 4, 5
            });

            Assert.IsTrue(fac.GetValues(new BitArray(new[] { true, false, true, false, false })).SequenceEqual(new List <object> {
                1, 3
            }));
            Assert.IsTrue(fac.GetValues(new BitArray(new[] { false, true, false, true, false })).SequenceEqual(new List <object> {
                2, 4
            }));
        }
Example #11
0
        public void CreateBindings_SetsFacetteValue()
        {
            var f = new Facette("fnord", new List <object> {
                1, 2, 3
            });

            te.AddFacette(f);

            var testContext = new MutagenRuntime.TestContext();

            testContext.AddFacette("fnord", 1, 1);

            var theBinding = te.CreateBindings(testContext);

            Assert.IsNotNull(theBinding[0].allBindings[0].Key);
        }
Example #12
0
        public void CreateBindings_ReturnsBinding()
        {
            var f = new Facette("fnord", new List <object> {
                1, 2, 3
            });

            te.AddFacette(f);

            var testContext = new MutagenRuntime.TestContext();

            testContext.AddFacette("fnord", 1, 1);

            var theBinding = te.CreateBindings(testContext);

            Assert.IsNotNull(theBinding);
            Assert.AreEqual(3, theBinding.Count);
        }
Example #13
0
        public static void DrawFacette(Bitmap img, Color pen)
        {
            Facette facette = new Facette(
                new Point(50, -20, 0),
                new Point(100, 100, 0),
                new Point(-50, 20, 0),
                new Point(-100, -100, 0));

            facette = facette.RotationZ(45);
            facette = facette.Homothetie(new Point(0, 0, 0), 0.4);
            facette = facette.Translation(50, 50, 0);
            facette.TraceFilDeFer(img, pen);
            facette.RemplissageFacette(new List <Point>()
            {
                facette.GermeDeDEpart()
            }, new List <Point>(), img, pen, 0);
        }
Example #14
0
        public void Facette_GetValidCombinations_SelectsAllBits_TwoBits()
        {
            List <BitArray> allCombinations = new List <BitArray>
            {
                new BitArray(new[] { true, true, false }),   // b011
                new BitArray(new[] { true, false, true }),   // b101
                new BitArray(new[] { false, true, true }),   // b110
            };

            var fac = new Facette("Facetto", new List <object> {
                1, 2, 3
            });

            Facette.SelectResult res = new Facette.SelectResult();
            res             = fac.GetValidCombinations(2, 2);
            allCombinations = allCombinations.Where(x => !res.valueCombinations.Any(y => y.SameAs(x))).ToList();

            Assert.AreEqual(0, allCombinations.Count);
        }
Example #15
0
        public static void DrawCubeFilDeFer(Bitmap img, Color pen)
        {
            // Faces de dessous
            Facette facette1 = new Facette(
                new Point(-20, -20, 20),
                new Point(0, 0, -20),
                new Point(40, 0, -20),
                new Point(20, -20, 20));
            Facette facette2 = new Facette(
                new Point(0, 0, -20),
                new Point(0, 40, -20),
                new Point(40, 40, -20),
                new Point(40, 0, -20));
            Facette facette3 = new Facette(
                new Point(-20, -20, 20),
                new Point(-20, 20, 20),
                new Point(0, 40, -20),
                new Point(0, 0, -20));

            // Faces de dessus
            Facette facette4 = new Facette(
                new Point(20, -20, 20),
                new Point(20, 20, 20),
                new Point(-20, 20, 20),
                new Point(-20, -20, 20));
            Facette facette5 = new Facette(
                new Point(-20, 20, 20),
                new Point(20, 20, 20),
                new Point(40, 40, -20),
                new Point(0, 40, -20));
            Facette facette6 = new Facette(
                new Point(20, 20, 20),
                new Point(40, 40, -20),
                new Point(40, 0, -20),
                new Point(20, -20, 20));

            Cube c = new Cube(facette1, facette2, facette3, facette4, facette5, facette6);

            c.TraceFilDeFer(img, pen);
        }
Example #16
0
        public static Cube DrawCube()
        {
            // Faces de dessous
            Facette facette1 = new Facette(
                new Point(-20, -20, 20),
                new Point(0, 0, -20),
                new Point(40, 0, -20),
                new Point(20, -20, 20));
            Facette facette2 = new Facette(
                new Point(0, 0, -20),
                new Point(0, 40, -20),
                new Point(40, 40, -20),
                new Point(40, 0, -20));
            Facette facette3 = new Facette(
                new Point(-20, -20, 20),
                new Point(-20, 20, 20),
                new Point(0, 40, -20),
                new Point(0, 0, -20));

            // Faces de dessus
            Facette facette4 = new Facette(
                new Point(20, -20, 20),
                new Point(20, 20, 20),
                new Point(-20, 20, 20),
                new Point(-20, -20, 20));
            Facette facette5 = new Facette(
                new Point(-20, 20, 20),
                new Point(20, 20, 20),
                new Point(40, 40, -20),
                new Point(0, 40, -20));
            Facette facette6 = new Facette(
                new Point(20, 20, 20),
                new Point(40, 40, -20),
                new Point(40, 0, -20),
                new Point(20, -20, 20));

            return(new Cube(facette1, facette2, facette3, facette4, facette5, facette6));
        }
Example #17
0
        public static void DrawFacettesFilDeFer(Bitmap img, Color pen)
        {
            Color   bluePen = new Color(0, 0, 255);
            Facette facette = new Facette(
                new Point(-50, 100, 0),
                new Point(50, 100, 0),
                new Point(50, -100, 0),
                new Point(-50, -100, 0));

            facette.TraceFilDeFer(img, bluePen);

            Facette f = facette.Translation(15, 15, 0);

            f.TraceFilDeFer(img, pen);

            Facette f2 = facette.RotationZ(tetaZ: 45);

            f2.TraceFilDeFer(img, pen);

            Facette f3 = facette.Homothetie(new Point(), 0.25);

            f3.TraceFilDeFer(img, pen);
        }
Example #18
0
        public void CreateBindings_CreatesCorrectValues()
        {
            var f1 = new Facette("fnord1", new List <object> {
                1, 2
            });
            var f2 = new Facette("fnord2", new List <object> {
                4, 5
            });

            te.AddFacette(f1);
            te.AddFacette(f2);

            var testContext = new MutagenRuntime.TestContext();

            testContext.AddFacette("fnord1", 1, 1);
            testContext.AddFacette("fnord2", 1, 1);

            var theBinding = te.CreateBindings(testContext);
            // Bindings are organised as a singly linked list, so we
            // should be able to access the last item in the list (3 facettes mean, that we
            // always get a list of three entries)

            var B01 = new BitArray(new[] { false, true });
            var B10 = new BitArray(new[] { true, false });

            Assert.IsTrue(theBinding[0].allBindings[0].Value.SameAs(B10));
            Assert.IsTrue(theBinding[0].allBindings[1].Value.SameAs(B10));

            Assert.IsTrue(theBinding[1].allBindings[0].Value.SameAs(B10));
            Assert.IsTrue(theBinding[1].allBindings[1].Value.SameAs(B01));

            Assert.IsTrue(theBinding[2].allBindings[0].Value.SameAs(B01));
            Assert.IsTrue(theBinding[2].allBindings[1].Value.SameAs(B10));

            Assert.IsTrue(theBinding[3].allBindings[0].Value.SameAs(B01));
            Assert.IsTrue(theBinding[3].allBindings[1].Value.SameAs(B01));
        }
Example #19
0
        public void CreateBindings_HonorsConstraints_BackwardConstraint()
        {
            var f1 = new Facette("fnord1", new List <object> {
                1, 2
            });
            var f2 = new Facette("fnord2", new List <object> {
                4, 5
            });

            te.AddFacette(f1);
            te.AddFacette(f2);
            te.AddConstraint(new Constraint(f2, f1, x => true, new List <object> {
                1
            }));

            var testContext = new MutagenRuntime.TestContext();

            testContext.AddFacette("fnord1", 1, 1);
            testContext.AddFacette("fnord2", 1, 1);

            var theBinding = te.CreateBindings(testContext);

            Assert.AreEqual(2, theBinding.Count);
        }
Example #20
0
 public void AddFacette(Facette f)
 {
     throw new NotImplementedException();
 }
Example #21
0
 public static void DrawFacettesFilDeFer(Facette facette, Bitmap img, Color pen)
 {
     facette.TraceFilDeFer(img, pen);
 }
Example #22
0
 public override void AddFacette(Facette f)
 {
     addCalled = true;
     base.AddFacette(f);
 }
Example #23
0
 public void Facette_Ctor_TakesList()
 {
     var fac = new Facette("Facetto", new List <object> {
         1, 2, 3, "foo"
     });
 }