Ejemplo n.º 1
0
        public void testPushDownOnNonRetrievedSpud()
        {
            var manager = new SpudManager();
            var a       = new RootSpud <double>(manager);
            var child   = new DependentSpud(a);

            a.set(1.0);
            manager.newBar();
            AreEqual(2.0, child[1]);
        }
Ejemplo n.º 2
0
        public void testDependencies()
        {
            var manager      = new SpudManager();
            var root         = new RootSpud <double>(manager);
            var otherRoot    = new RootSpud <double>(manager);
            var plusOne      = new DependentSpud(root);
            var plusTwo      = new DependsOnDependent(root);
            var otherPlusOne = new DependentSpud(otherRoot);

            root.set(7);
            AreEqual(8, plusOne[0]);
            AreEqual(9, plusTwo[0]);
            IsTrue(plusOne.checkAndReset());
            IsTrue(plusTwo.checkAndReset());
            otherRoot.set(15);
            IsFalse(plusOne.checkAndReset());
            IsFalse(plusTwo.checkAndReset());
            IsFalse(otherPlusOne.checkAndReset());
            AreEqual(16.0, otherPlusOne[0]);
            IsTrue(otherPlusOne.checkAndReset());
            AreEqual(8, plusOne[0]);
            AreEqual(9, plusTwo[0]);

            root.set(11);
            manager.newBar();

            AreEqual(12, plusOne[1]);
            AreEqual(13, plusTwo[1]);
            IsTrue(plusOne.checkAndReset());
            IsTrue(plusTwo.checkAndReset());

            IsFalse(plusOne.checkAndReset());
            IsFalse(plusTwo.checkAndReset());
            root.set(30);
            AreEqual(31, plusOne[0]);
            AreEqual(32, plusTwo[0]);
            IsTrue(plusOne.checkAndReset());
            IsTrue(plusTwo.checkAndReset());
            IsFalse(otherPlusOne.checkAndReset());
        }