public void CyclicGraph() { var mortgage = new Mortgate { InterestRate = 5.5, LoanAmount = 150000, LoanLength = 15, PaymentFrequency = PaymentFrequency.Monthly }; var engine = new DependencyEngine(); engine.Assign(() => mortgage.PaymentAmount) .From(() => CalculatePayments( mortgage.LoanAmount, mortgage.InterestRate, mortgage.LoanLength, mortgage.PaymentFrequency), ex => { }); engine.Assign(() => mortgage.LoanLength) .From(() => CalculateLength( mortgage.LoanAmount, mortgage.PaymentAmount, mortgage.InterestRate, mortgage.PaymentFrequency), ex => { }); var dotFormat = engine.ToDotFormat(); Console.WriteLine(dotFormat); engine.ValueHasChanged(mortgage, "PaymentFrequency"); mortgage.PaymentAmount.ShouldBe(1225, 1); engine.ToDotFormat().ShouldBe(dotFormat); }
public void CyclicGraph() { var mortgage = new Mortgate { InterestRate = 5.5, LoanAmount = 150000, LoanLength = 15, PaymentFrequency = PaymentFrequency.Monthly }; var engine = new DependencyEngine(); engine.Assign(() => mortgage.PaymentAmount) .From(() => CalculatePayments( mortgage.LoanAmount, mortgage.InterestRate, mortgage.LoanLength, mortgage.PaymentFrequency), ex => { }); engine.Assign(() => mortgage.LoanLength) .From(() => CalculateLength( mortgage.LoanAmount, mortgage.PaymentAmount, mortgage.InterestRate, mortgage.PaymentFrequency), ex => { }); var dotFormat = engine.ToDotFormat(); Console.WriteLine(dotFormat); engine.ValueHasChanged(mortgage, "PaymentFrequency"); mortgage.PaymentAmount.ShouldBe(1225, 1); engine.ToDotFormat().ShouldBe(dotFormat); }