using System; using System.Linq; using LeafWeb.Core.Entities; using LeafWeb.Core.Utility; using Moq; using NUnit.Framework; namespace LeafWeb.Core.Tests.Utility { [TestFixture] public class TimeInProgressEstimaterTests { [Test] public void EstimateTest() { Func scaleFunc = i => i*i; var obervations = from i in Enumerable.Range(1, 10) let time = scaleFunc(i) select Mock.Of(li => li.InputFiles.Count == i && li.TimeInProgress == TimeSpan.FromMinutes(time)); var estimater = new TimeInProgressEstimater(obervations.ToArray()); Action est = i => { var query = Mock.Of(li => li.InputFiles.Count == i); var estimate = estimater.EstimateTimeInProgress(query); Console.WriteLine($"{i} => {estimate}. {TimeSpan.FromMinutes(scaleFunc(i))}"); }; for (var i = 1; i < 30; i++) est(i); } } }