public void CalcPersonSharedDesiresTest() { CalcParameters calcParameters = CalcParametersFactory.MakeGoodDefaults(); var r = new Random(1); using (CalcRepo calcRepo = new CalcRepo(calcParameters: calcParameters, rnd: r)) { var sdv = new SharedDesireValue(1, new TimeStep(0, 0, true)); var cpd = new CalcPersonDesires(calcRepo); var cd1 = new CalcDesire("blub0", 1, 0.5m, 1m, 1, 1, 1, -1, sdv, "", ""); cpd.AddDesires(cd1); var cd2 = new CalcDesire("blub1", 2, 0.5m, 2m, 1, 1, 60, -1, sdv, "", ""); cpd.AddDesires(cd2); Logger.Info("CalcPersonDesiresTest:" + cd1.Value + " ; " + cd2.Value); var satis1 = new CalcDesire("blub", 1, 0.5m, 12, 1, 1, 60, -1, null, "", "") { Value = 1 }; var satisfactionValues = new List <CalcDesire> { satis1 }; for (var i = 0; i < 20; i++) { TimeStep ts = new TimeStep(0, 0, true); cpd.ApplyDecay(ts); if (i % 5 == 0) { cpd.ApplyAffordanceEffect(satisfactionValues, false, "blub"); } Logger.Info(cd1.Value + " ; " + cd2.Value); Assert.Equal(cd1.Value, cd2.Value); } // satisfaction Logger.Info(cd1.Value + " ; " + cd2.Value); } }
private static SharedDesireValue GetSharedDesireValue([NotNull] PersonDesireDto desire, [NotNull] Dictionary <string, SharedDesireValue> sharedDesireValues) { if (desire.IsSharedDesire) { /* * if (sharedDesireValues == null) * { * throw new LPGException("Shared desire values was null"); * }*/ if (sharedDesireValues.ContainsKey(desire.Name)) { return(sharedDesireValues[desire.Name]); } var sdv = new SharedDesireValue(1, null); sharedDesireValues.Add(desire.Name, sdv); return(sdv); } return(null); }