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]); }
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()); }