public void TestOptimalPlacementForNineCommercialsWithStandardCapacity() { var(breaks, commercials, _) = GetBasicData(); var optimiser = new OptimiserHelper(); var optimisedBreakCommercials = optimiser.GetOptimalBreakCommercials(breaks, commercials); CheckResults(optimisedBreakCommercials, breaks, 1970); }
public void TestOptimalPlacementForTenCommercialsWithStandardCapacity() { var optimiser = new OptimiserHelper(); var(breaks, commercials, demographics) = GetBasicData(); commercials.Add( new Commercial { Id = 10, Title = "Commercial 10", CommercialType = "Finance", Demographic = demographics[2] }); var optimisedBreakCommercials = optimiser.GetOptimalBreakCommercials(breaks, commercials); CheckResults(optimisedBreakCommercials, breaks, 2120); }
public void TestOptimalPlacementForEdgeCases() { var optimiser = new OptimiserHelper(); var(breaks, commercials, _) = GetBasicData(); commercials.RemoveAt(0); try { optimiser.GetOptimalBreakCommercials(breaks, commercials); Assert.Fail("Shouldn't be enough commercials"); } catch (ArgumentException) { } (breaks, commercials, _) = GetBasicData(); commercials[0].CommercialType = CommercialType.Finance.ToString(); commercials[1].CommercialType = CommercialType.Finance.ToString(); //4 financial commercials, should still be possible var optimisedBreakCommercials = optimiser.GetOptimalBreakCommercials(breaks, commercials); CheckResults(optimisedBreakCommercials, breaks, 1940); commercials[2].CommercialType = CommercialType.Finance.ToString(); try { optimiser.GetOptimalBreakCommercials(breaks, commercials); Assert.Fail("Too many financial commercials, one break would contain three"); } catch (ArgumentException) { } }
public void TestOptimalPlacementForNineCommercialsWithVariableCapacity() { var optimiser = new OptimiserHelper(); var(breaks, commercials, _) = GetBasicData(); breaks[0].Capacity = 2; breaks[1].Capacity = 3; breaks[2].Capacity = 4; var optimisedBreakCommercials = optimiser.GetOptimalBreakCommercials(breaks, commercials); CheckResults(optimisedBreakCommercials, breaks, 2240); breaks[0].Capacity = 4; breaks[1].Capacity = 3; breaks[2].Capacity = 2; optimisedBreakCommercials = optimiser.GetOptimalBreakCommercials(breaks, commercials); CheckResults(optimisedBreakCommercials, breaks, 1700); }