public void Reduce_WhenGivenSequenceWithPossibilityOfReduction_ReturnsReducedSequence() { // Arrange var points = new List <Measurement> { new Measurement { MeasurementTime = new DateTime(2015, 10, 4, 15, 00, 00), AmountSold = 1000, AmountSeasonTicket = 1000 }, new Measurement { MeasurementTime = new DateTime(2015, 10, 4, 15, 10, 00), AmountSold = 1000, AmountSeasonTicket = 1000 }, new Measurement { MeasurementTime = new DateTime(2015, 10, 4, 15, 20, 00), AmountSold = 1000, AmountSeasonTicket = 1000 } }; var sut = new PointReducer(); // Act var res = sut.Reduce(points).ToList(); // Assert res.Count.Should().Be(2, "the three have the same value"); res[0].Should().BeSameAs(points[0]); res[1].Should().BeSameAs(points[2]); }
public void Reduce_WhenGivenEmptySequence_ReturnsEmptySequence() { // Arrange var sut = new PointReducer(); // Act var res = sut.Reduce(Enumerable.Empty <Measurement>()).ToList(); // Assert res.Count.Should().Be(0, "the source list was empty"); }
public void Reduce_WhenGivenNullValue_ReturnsEmptySequence() { // Arrange var sut = new PointReducer(); // Act var res = sut.Reduce(null).ToList(); // Assert res.Should().NotBeNull("we should get an empty sequence"); res.Should().BeEmpty("there should be nothing here"); }
public SingleMatchViewmodel(BillettServiceEvent bsEvent) { Opponent = bsEvent.Opponent; Tournament = CreateTournamentName(bsEvent); Location = bsEvent.Location == "TLD" ? "Lerkendal stadion" : ""; _matchStart = bsEvent.Start; var logoPath = StautConfiguration.Current.LogoDirectory ?? Environment.CurrentDirectory; EnemyLogoPath = Path.Combine(logoPath, Opponent.Replace("/", "_") + ".png"); // Helvetes Bodø/Glimt. if (!File.Exists(EnemyLogoPath)) { EnemyLogoPath = Path.Combine(logoPath, "NoLogo.png"); } var lastMeasurement = bsEvent.Measurements.LastOrDefault(); if (lastMeasurement != null) { SoldTickets = lastMeasurement.AmountSold; SoldSeasonTickets = lastMeasurement.AmountSeasonTicket; ReservedUnknownTickets = lastMeasurement.AmountReserved + lastMeasurement.AmountUnknown; TicketsForSale = lastMeasurement.AmountAvailable; } LastUpdateTime = bsEvent.Measurements .OrderByDescending(m => m.MeasurementTime) .First() .MeasurementTime; var reducedMeasurements = new PointReducer().Reduce(bsEvent.Measurements); DataSeries = new ObservableCollection <StautSeries> { new StautSeries { Title = "Rosenborg - " + bsEvent.Opponent, Start = bsEvent.Start, Points = new List <StautPoint>( reducedMeasurements .Where(m => m.TotalAmountSold > 0) .Select( m => new StautPoint { XValue = bsEvent.Start.Subtract(m.MeasurementTime).TotalDays, YValue = m.TotalAmountSold })) } }; }