public static IPotteryOptimizer Create(this IPotteryOptimizer ignore) { // TODO: Set which optimizer you want to use in the tests here return(new Bss.Optimization.Pottery.Naive.Optimizer()); // return new Bss.Optimization.Pottery.LP.Optimizer(); // return new Bss.Optimization.Pottery.Glop.Optimizer(); }
public void ReturnTheOptimumNumberOfLargeVasesIfNonStandardConstraintsAreSupplied() { var claySupply = 37; var glazeSupply = 31; IPotteryOptimizer engine = (null as IPotteryOptimizer).Create(); var result = engine.GetTargets(claySupply, glazeSupply); Assert.AreEqual(3, result.Large); }
public void ReturnTheOptimumNumberOfLargeVases() { var claySupply = 24; var glazeSupply = 16; IPotteryOptimizer engine = (null as IPotteryOptimizer).Create(); var result = engine.GetTargets(claySupply, glazeSupply); Assert.AreEqual(4, result.Large); }
public void ReturnQuicklyEvenAtScale() { // This test is expected to fail for any optimizer that // cannot handle a large solution set, such as // the Naive optimizer in this solution. var claySupply = Int32.MaxValue; // Huge value var glazeSupply = Int32.MaxValue - 394; // Huge value picked at random IPotteryOptimizer engine = (null as IPotteryOptimizer).Create(); var result = engine.GetTargets(claySupply, glazeSupply); }
public void ReturnAllFeasibleTargets() { var claySupply = 24; var glazeSupply = 16; IPotteryOptimizer engine = (null as IPotteryOptimizer).Create(); var results = engine.GetFeasibleTargets(claySupply, glazeSupply); TestContext.WriteLine($"Number of solutions: {results.Count()}"); TestContext.WriteLine("Small, Large"); foreach (var targetSet in results) { TestContext.WriteLine($"{targetSet.Small},{targetSet.Large}"); } Assert.AreEqual(71, results.Count()); }