Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }