コード例 #1
0
 public void CalculatesInsulinTotal(string expectedInsulin, params string[] mealInsulinAndFactor)
 {
     AddSomeMoreProductsForUseInTest();
     var patterns = new List<Pattern>();
     foreach (var item in mealInsulinAndFactor)
     {
         var splet = item.Split(';', '*').Select(s => s.Trim()).ToList();
         var meal = AddMeal("12:00 " + splet[0]);
         patterns.Add(new Pattern
         {
             Match = meal.Items[0], // In this test we pretend that always the first item is used in pattern
             From = meal,
             Insulin = AddInsulin("12:00 " + splet[1]),
             Factor = float.Parse(splet[2], new CultureInfo("en")),
             For = new MealItem { ProductId = Guid.NewGuid() }
         });
     }
     var sut = new ReplacementBuilderImpl(new ReplacementBuilderImpl.InsulinTotal());
     var replacement = sut.GetReplacementFor(new Meal(), patterns);
     var expected = AddInsulin("12:00 " + expectedInsulin);
     var actual = replacement.InsulinTotal;
     Assert.AreEqual(expected.NormalBolus, actual.NormalBolus);
     Assert.AreEqual(expected.SquareWaveBolus, actual.SquareWaveBolus);
     Assert.AreEqual(expected.SquareWaveBolusHours, actual.SquareWaveBolusHours);
 }
コード例 #2
0
 public void IfCalledWithForEqualToNullThenThrowsException()
 {
     var meal = AddMeal("12:00 1 100g");
     var patterns = new List<Pattern> { new Pattern { Match = meal.Items[0] } };
     var sut = new ReplacementBuilderImpl();
     var exception = Assert.Throws<ArgumentException>(()
         => sut.GetReplacementFor(meal, patterns));
     Assert.AreEqual("Pattern.For cannot be null.", exception.Message);
 }
コード例 #3
0
 public void ChoosesPatternsWithMostRightnessPoints()
 {
     var meal = AddMeal("12:00 1 100g 2 200g");
     var pattern1 = new Pattern { RightnessPoints = 1 };
     var pattern2 = new Pattern { RightnessPoints = 10 };
     var pattern3 = new Pattern { RightnessPoints = 5 };
     var pattern4 = new Pattern { RightnessPoints = 5 };
     var patterns = new Pattern[] { pattern1, pattern2, pattern3, pattern4 };
     foreach (var pattern in patterns)
     {
         pattern.From = meal;
         pattern.Match = meal.Items[0];
         pattern.For = meal.Items[0];
         pattern.Insulin = new Insulin();
     }
     pattern4.For = meal.Items[1];
     var sut = new ReplacementBuilderImpl();
     var replacementItems = sut.GetReplacementFor(meal, patterns).Items;
     Assert.AreEqual(new Pattern[] { pattern2, pattern4 }, replacementItems.Select(r => r.Pattern));
     Assert.AreEqual(new Pattern[] { pattern3, pattern1 }, replacementItems[0].Alternatives);
     Assert.AreEqual(new Pattern[] { }, replacementItems[1].Alternatives);
 }
コード例 #4
0
 public void ReturnsReplacementsAsCompleteWhenAtLeast95PercentOfEnergyIsReplaced(string found,
     bool expectedComplete, int factor)
 {
     var meal = AddMeal("12:00 1 100g 2 200g 3 50g");
     var foundMeal = AddMeal("10:00 " + found);
     var patterns = new List<Pattern>();
     for (int i = 0; i < foundMeal.Items.Count; i++)
     {
         var pattern = new Pattern();
         pattern.Match = foundMeal.Items[i];
         pattern.From = foundMeal;
         pattern.Factor = factor;
         pattern.For = meal.Items[i];
         pattern.Insulin = new Insulin();
         patterns.Add(pattern);
     }
     var sut = new ReplacementBuilderImpl(new ReplacementBuilderImpl.IsComplete());
     var replacement = sut.GetReplacementFor(meal, patterns);
     Assert.AreEqual(expectedComplete, replacement.IsComplete);
 }