public void MineAllSimulation_BuildAllLists_WithPicks() { var nextSunday = MovieDateUtil.NextSunday(); var miners = CreateMiners(); var minedData = MineMiners(miners); FilterMiners(minedData); var myList = CreateMyList(minedData, miners); Logger.WriteLine($"================== Picking Movies for {nextSunday} ==================\n"); for (int index = 0; index < miners.Count; index++) { if (minedData[index] != null && minedData[index].Any() && minedData[index][0].WeekendEnding == nextSunday && miners[index].Weight > 0) { // Only show data that will be used. WriteMoviesAndPicks($"==== {miners[index].Name} ====", minedData[index]); } } Logger.WriteLine(string.Empty); WriteMoviesAndPicks("==== Spilled Milk Cinema ====", myList); }
public void MineAll_BuildAllLists_WithPicks_NoCultVult_NoBOProphet() { var nextSunday = MovieDateUtil.NextSunday(); var miners = CreateMiners(); var minedData = MineMiners(miners); FindMiner <MineBoxOfficeProphet>(miners).Weight = 0; FindMiner <MineCulturedVultures>(miners).Weight = 0; // TODO: Should probably connect the mined data to the miner. var myList = CreateMyList(minedData, miners); Logger.WriteLine($"================== Picking Movies for {nextSunday} ==================\n"); for (int index = 0; index < miners.Count; index++) { if (minedData[index] != null && minedData[index].Any() && minedData[index][0].WeekendEnding == nextSunday && miners[index].Weight > 0) { // Only show data that will be used. WriteMoviesAndPicks($"==== {miners[index].Name} ====", minedData[index]); } } Logger.WriteLine(string.Empty); WriteMoviesAndPicks("==== Spilled Milk Cinema ====", myList); WriteFMLNerdLink(myList); }
public void MineAll_BuildAllLists_ComparePickNumbers() { var nextSunday = MovieDateUtil.NextSunday(); var miners = CreateMiners(); var minedData = MineMiners(miners); // TODO: Should probably connect the mined data to the miner. var myList = CreateMyList(minedData, miners); var picker = ConstructTestObject(); picker.AddMovies(myList); var best = picker.ChooseBest(); var header = "\n__Name____________________________SM Cine"; for (int index = 0; index < miners.Count; index++) { header += $"______{miners[index].Abbreviation}*{miners[index].Weight}"; } Logger.WriteLine(header); foreach (var movie in best.Movies) { string isBestPerformer = movie.IsBestPerformer ? "*" : string.Empty; string row = $"{movie.Name + isBestPerformer,-30} {movie.Earnings,11:N0}"; for (int index = 0; index < miners.Count; index++) { var foundMovie = minedData[index].FirstOrDefault(item => item.Equals(movie)); if (foundMovie != null) { row += $" | {foundMovie.Earnings,11:N0}"; } else { row += " | --------"; } } Logger.WriteLine(row); } }
public void MineAll_BuildAllLists_WithPicks_SolomonsTest() { var nextSunday = MovieDateUtil.NextSunday(); var miners = CreateMiners(); var minedData = MineMiners(miners); // Adjust your weights HERE!! FindMiner <MineBoxOfficeProphet>(miners).Weight = 0; FindMiner <MineCulturedVultures>(miners).Weight = 0; // TODO: Should probably connect the mined data to the miner. var myList = CreateMyList(minedData, miners); Logger.WriteLine($"================== Picking Movies for {nextSunday} ==================\n"); for (int index = 0; index < miners.Count; index++) { if (minedData[index] != null && minedData[index].Any() && minedData[index][0].WeekendEnding == nextSunday && miners[index].Weight > 0) { // Only show data that will be used. WriteMoviesAndPicks($"==== {miners[index].Name} ====", minedData[index]); } } Logger.WriteLine(string.Empty); WriteMoviesAndPicks("==== Spilled Milk Cinema ====", myList); Logger.WriteLine("\nUpload for FML Analyzer Site"); foreach (var movie in myList.OrderByDescending(movie => movie.Cost)) { Logger.WriteLine(movie.Earnings.ToString()); } }
public void MineAll_BuildAllLists_WithPicks_TrackDuringWeekend() { var nextSunday = MovieDateUtil.NextSunday(); var miners = CreateMiners(); var minedData = MineMiners(miners); // TODO: Should probably connect the mined data to the miner. var myList = CreateMyList(minedData, miners); // Adjust based on known values... UpdateWithWeekendValues(myList); Logger.WriteLine($"================== Picking Movies for {nextSunday} ==================\n"); for (int index = 0; index < miners.Count; index++) { if (minedData[index] != null && minedData[index].Any() && minedData[index][0].WeekendEnding == nextSunday && miners[index].Weight > 0) { // Only show data that will be used. WriteMoviesAndPicks($"==== {miners[index].Name} ====", minedData[index]); } } Logger.WriteLine(string.Empty); WriteMoviesAndPicks("==== Spilled Milk Cinema ====", myList); WriteFMLNerdLink(myList); }
public void MineAll_BuildAllLists_EstimatesOnly_ForHistory() { var nextSunday = MovieDateUtil.NextSunday(); var miners = CreateMiners(); var minedData = MineMiners(miners); // TODO: Should probably connect the mined data to the miner. var myList = CreateMyList(minedData, miners); Logger.WriteLine($"================== All Estimates for {nextSunday} ==================\n"); // Build rows of movies, each column is a miner's mined value. var nerdsMovies = minedData[NERD_INDEX]; var rowData = new StringBuilder(); rowData.Append("Title | Actuals"); foreach (var miner in miners) { rowData.Append($" | {miner.Abbreviation}"); } rowData.Append($" | SM Cinema"); Logger.WriteLine(rowData.ToString()); foreach (var movie in nerdsMovies) { rowData.Clear(); foreach (var movieList in minedData) { if (movieList == nerdsMovies) { rowData.Append($"{movie.Name,-30} | {0m,5} | {movie.Earnings / 1000000,5:F3}"); } else { var foundMovie = movieList.FirstOrDefault(item => item.Equals(movie)); if (foundMovie != null) { rowData.Append($" | {foundMovie.Earnings / 1000000,5:F3}"); } else { rowData.Append(" | "); } } } var myMovie = myList.FirstOrDefault(item => item.Equals(movie)); if (myMovie != null) { rowData.Append($" | {myMovie.Earnings / 1000000,5:F5}"); } else { rowData.Append(" | "); } Logger.WriteLine(rowData.ToString()); } }
public void MovieDateUtil_DisplayFirstWeekendOfYear() { var nextSunday = MovieDateUtil.NextSunday(new DateTime(DateTime.Now.Year, 1, 1)); Logger.WriteLine($"First weekend: {nextSunday}"); }
public void MovieDateUtil_DisplayCurrentSeason() { var nextSunday = MovieDateUtil.NextSunday(); Logger.WriteLine($"Year: {nextSunday.Year} Season: {MovieDateUtil.DateToSeason(nextSunday)} Week: {MovieDateUtil.DateToWeek(nextSunday)}"); }
public void MovieDateUtil_NextSunday_GivenDate() { var actual = MovieDateUtil.NextSunday(new DateTime(2017, 8, 23)); Assert.AreEqual(new DateTime(2017, 8, 27), actual); }
public void MovieDateUtil_NextSunday_IsASunday() { var actual = MovieDateUtil.NextSunday(); Assert.AreEqual(DayOfWeek.Sunday, actual.DayOfWeek); }