Exemple #1
0
        public void InletIsOnlyChangedIfOutletChanged()
        {
            NumberEveryOddTime num    = new NumberEveryOddTime(99);
            HolderPatch        hold   = new HolderPatch();
            Engine             engine = new Engine();

            engine.Add(num);
            engine.Add(hold);

            engine.Connect(num, "value", hold, "inlet");

            Assert.IsFalse(hold.input.HasChanged, "#1");

            //first execution should not set inlet
            engine.StepFrame();
            Assert.IsFalse(hold.input.HasChanged, "#2");

            //second execution should set inlet
            engine.StepFrame();
            Assert.IsTrue(hold.inletChanged, "#3");
            Assert.AreEqual(99, hold.input.Value, "#4");

            //last execution should not set inlet
            engine.StepFrame();
            Assert.IsFalse(hold.input.HasChanged, "#5");
        }
Exemple #2
0
        public void OutletConnectedToMultiplePatchesPropagateAllValues()
        {
            NumberPatch num    = new NumberPatch(99);
            HolderPatch hold0  = new HolderPatch();
            HolderPatch hold1  = new HolderPatch();
            Engine      engine = new Engine();


            engine.Add(num);
            engine.Add(hold0);
            engine.Add(hold1);
            engine.Connect(num, "value", hold0, "inlet");
            engine.Connect(num, "value", hold1, "inlet");

            Assert.IsFalse(hold0.input.HasChanged, "#1");
            Assert.IsFalse(hold0.inletChanged, "#2");
            Assert.IsFalse(hold1.input.HasChanged, "#3");
            Assert.IsFalse(hold1.inletChanged, "#4");

            engine.StepFrame();

            Assert.IsTrue(hold0.inletChanged, "#5");
            Assert.AreEqual(99, hold0.input.Value, "#6");
            Assert.IsTrue(hold1.inletChanged, "#7");
            Assert.AreEqual(99, hold1.input.Value, "#8");
        }
Exemple #3
0
        public void ValuePropagateBetweenConnectedPatches()
        {
            NumberPatch num    = new NumberPatch(99);
            HolderPatch hold   = new HolderPatch();
            Engine      engine = new Engine();

            engine.Add(num);
            engine.Add(hold);

            engine.Connect(num, "value", hold, "inlet");

            Assert.IsFalse(hold.input.HasChanged, "#1");
            Assert.IsFalse(hold.inletChanged, "#2");
            engine.StepFrame();

            Assert.IsTrue(hold.inletChanged, "#3");
            Assert.AreEqual(99, hold.input.Value, "#4");
        }