Files
LeafWeb/Core.Tests/Utility/TimeInProgressEstimaterTests.cs
T
2017-02-03 22:26:00 -05:00

38 lines
903 B
C#

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<int, int> scaleFunc = i => i*i;
var obervations =
from i in Enumerable.Range(1, 10)
let time = scaleFunc(i)
select Mock.Of<ILeafInput>(li =>
li.InputFiles.Count == i &&
li.TimeInProgress == TimeSpan.FromMinutes(time));
var estimater = new TimeInProgressEstimater(obervations.ToArray());
Action<int> est = i =>
{
var query = Mock.Of<ILeafInput>(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);
}
}
}