public void AssertSequence() { var dummy = new DummySequencer(); var e = new GoaledSequencer<int>(10, 8, 7, 3, Comparer<int>.Default, dummy); var numbers = new List<int>(); e.Reset(); while (e.MoveNext()) { numbers.Add(e.Current); } const string expected = "1,2,3,4,5,6,7,8,8,8,7,7,7,10"; var actual = string.Join(",", numbers.ConvertAll(x => x.ToString()).ToArray()); Assert.AreEqual(expected,actual); }
//public static Func<Trainer, ISequencer<double>> ResolveSequence = BuildSequencer; protected virtual ISequencer<Double> BuildSequencer() { var plan = TrainingPlan; var goalDistance = plan.Goal.Distance; var lastTrainingDistance = ResolveLastTrainingDistance(plan.Goal); var lastRestituteDistance = ResolveLastRestituteDistance(plan.Goal); var growingSequencer = new Sequencer<double> ( plan.StartDistance, plan.NumberOfTrainingDaysPerWeek, RestitutionWeek - 1, CreateCalculator() ); var goaledSequencer = new GoaledSequencer<double> ( goalDistance, lastTrainingDistance, lastRestituteDistance, plan.NumberOfTrainingDaysPerWeek, Comparer<double>.Default, growingSequencer ); return goaledSequencer; }