Ejemplo n.º 1
0
        public void Contains_IntervalOverload(string firstInterval, string secondInterval, bool expectedResult)
        {
            DateInterval value = ParseInterval(firstInterval);
            DateInterval other = ParseInterval(secondInterval);

            Assert.AreEqual(expectedResult, value.Contains(other));
        }
        public async Task <Measurement> measure(DateInterval billingInterval)
        {
            TeslaAuthToken authToken = await authService.getAuthToken();

            long energySiteId = await productService.fetchEnergySiteId(authToken);

            ICollection <Task <HistoricalCalendarDataResponse> > requests = new List <Task <HistoricalCalendarDataResponse> > {
                client.energySites.fetchHistoricalCalendarData(energySiteId, billingInterval.Start, reportTimeZone, authToken)
            };

            if (billingInterval.Start.Month != billingInterval.End.Month)
            {
                requests.Add(client.energySites.fetchHistoricalCalendarData(energySiteId, billingInterval.End, reportTimeZone,
                                                                            authToken));
            }

            HistoricalCalendarDataResponse[] responses = await Task.WhenAll(requests);

            IEnumerable <EnergyTimeSeriesEntry> timeSeries = responses.SelectMany(response => response.timeSeries);

            IEnumerable <EnergyTimeSeriesEntry> entriesInBillingInterval =
                timeSeries.Where(entry => billingInterval.Contains(entry.timestamp.Date));

            double energyExportedWattHours = entriesInBillingInterval.Aggregate(0.0, (sum, entry) => sum + entry.solarEnergyExported);

            return(new Measurement {
                generatedKilowattHours = energyExportedWattHours / 1000
            });
        }
Ejemplo n.º 3
0
        public void Contains_NullInterval_Throws()
        {
            var start = new LocalDate(2017, 11, 6);
            var end   = new LocalDate(2017, 11, 10);
            var value = new DateInterval(start, end);

            Assert.Throws <ArgumentNullException>(() => value.Contains(null));
        }
Ejemplo n.º 4
0
        public void Contains(string candidateText, bool expected)
        {
            var start     = new LocalDate(2000, 1, 1);
            var end       = new LocalDate(2014, 06, 30);
            var candidate = LocalDatePattern.Iso.Parse(candidateText).Value;
            var interval  = new DateInterval(start, end);

            Assert.AreEqual(expected, interval.Contains(candidate));
        }
Ejemplo n.º 5
0
        public void Contains_DifferentCalendar()
        {
            var start     = new LocalDate(2000, 1, 1);
            var end       = new LocalDate(2014, 06, 30);
            var interval  = new DateInterval(start, end);
            var candidate = new LocalDate(2000, 1, 1, JulianCalendar);

            Assert.Throws <ArgumentException>(() => interval.Contains(candidate));
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Returns the dates in the period that fall on the given day of week.
 /// </summary>
 /// <param name="dateInterval">A date interval.</param>
 /// <param name="dayOfWeek">A day of the week.</param>
 /// <returns>The dates in the period that fall on the given day of week.</returns>
 public static IEnumerable <LocalDate> GetDatesThatFallOn(this DateInterval dateInterval, IsoDayOfWeek dayOfWeek)
 {
     for (var date = dateInterval.Start.With(DateAdjusters.NextOrSame(dayOfWeek));
          dateInterval.Contains(date);
          date = date.With(DateAdjusters.Next(dayOfWeek))
          )
     {
         yield return(date);
     }
 }
Ejemplo n.º 7
0
        public void Contains_DateOnEndDateIntervalEndDateInclusive_ReturnTrue()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour, isMaxInclusive: true);

            // Act
            bool interesct = dateInterval.Contains(inOneHour);

            // Assert
            Assert.True(interesct);
        }
Ejemplo n.º 8
0
        public void Contains_LocalDate()
        {
            LocalDate start = new LocalDate(2017, 1, 1);
            LocalDate end   = new LocalDate(2017, 12, 31);

            DateInterval interval = new DateInterval(start, end);

            var result = Snippet.For(interval.Contains(new LocalDate(2017, 12, 5)));

            Assert.AreEqual(true, result);
        }
Ejemplo n.º 9
0
        public void Contains(string candidateText, bool expectedInclusive, bool expectedExclusive)
        {
            var start     = new LocalDate(2000, 1, 1);
            var end       = new LocalDate(2014, 06, 30);
            var candidate = LocalDatePattern.IsoPattern.Parse(candidateText).Value;
            var interval  = new DateInterval(start, end, true);

            Assert.AreEqual(expectedInclusive, interval.Contains(candidate));
            interval = new DateInterval(start, end, false);
            Assert.AreEqual(expectedExclusive, interval.Contains(candidate));
        }
Ejemplo n.º 10
0
        public void Contains_DateOnEndDateInterval_ReturnFalse()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour);

            // Act
            bool interesct = dateInterval.Contains(inOneHour);

            // Assert
            Assert.False(interesct);
        }
Ejemplo n.º 11
0
        public void Contains_DateOnStartDateInterval_ReturnTrue()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour);

            // Act
            bool interesct = dateInterval.Contains(now);

            // Assert
            Assert.True(interesct);
        }
Ejemplo n.º 12
0
        public void Contains_DateBeforeDateInterval_ReturnFalse()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour);

            // Act
            bool intersect = dateInterval.Contains(now.AddHours(-1));

            // Assert
            Assert.False(intersect);
        }
Ejemplo n.º 13
0
        public void Contains_IntervalWithinAnotherCalendar_Throws()
        {
            var value = new DateInterval(
                new LocalDate(2017, 11, 6, CalendarSystem.Gregorian),
                new LocalDate(2017, 11, 10, CalendarSystem.Gregorian));

            var other = new DateInterval(
                new LocalDate(2017, 11, 6, CalendarSystem.Coptic),
                new LocalDate(2017, 11, 10, CalendarSystem.Coptic));

            Assert.Throws <ArgumentException>(() => value.Contains(other));
        }
Ejemplo n.º 14
0
        public void Contains_CurrentIntervalStartsAndFinishedWithOtherInterval_ReturnTrue()
        {
            // Arrange
            var dateInterval  = new DateInterval(now, inThreeHours);
            var otherInterval = new DateInterval(now, inThreeHours);

            // Act
            bool contains = dateInterval.Contains(otherInterval);

            // Assert
            Assert.True(contains);
        }
Ejemplo n.º 15
0
        public void Contains_CurrentIntervalStartAndEndValuesAreTheSameAsOtherIntervalButDifferentEndPointInclusion_ReturnTrue(
            bool minInclusive1, bool maxInclusive1,
            bool minInclusive2, bool maxInclusive2)
        {
            // Arrange
            var dateInterval  = new DateInterval(now, inThreeHours, minInclusive1, maxInclusive1);
            var otherInterval = new DateInterval(now, inThreeHours, minInclusive2, maxInclusive2);

            // Act
            bool contains = dateInterval.Contains(otherInterval);

            // Assert
            Assert.True(contains);
        }
Ejemplo n.º 16
0
 public void Contains_DifferentCalendar()
 {
     var start = new LocalDate(2000, 1, 1);
     var end = new LocalDate(2014, 06, 30);
     var interval = new DateInterval(start, end);
     var candidate = new LocalDate(2000, 1, 1, JulianCalendar);
     Assert.Throws<ArgumentException>(() => interval.Contains(candidate));
 }
Ejemplo n.º 17
0
        public void Contains_CurrentIntervalStartAndEndValuesAreTheSameAsOtherIntervalButDifferentEndPointInclusion_ReturnFalse(
            bool minInclusive1, bool maxInclusive1,
            bool minInclusive2, bool maxInclusive2)
        {
            // Arrange
            var dateInterval = new DateInterval(now, inThreeHours, minInclusive1, maxInclusive1);
            var otherInterval = new DateInterval(now, inThreeHours, minInclusive2, maxInclusive2);

            // Act
            bool contains = dateInterval.Contains(otherInterval);

            // Assert
            Assert.False(contains);
        }
Ejemplo n.º 18
0
 public void Contains(string candidateText, bool expectedInclusive, bool expectedExclusive)
 {
     var start = new LocalDate(2000, 1, 1);
     var end = new LocalDate(2014, 06, 30);
     var candidate = LocalDatePattern.IsoPattern.Parse(candidateText).Value;
     var interval = new DateInterval(start, end, true);
     Assert.AreEqual(expectedInclusive, interval.Contains(candidate));
     interval = new DateInterval(start, end, false);
     Assert.AreEqual(expectedExclusive, interval.Contains(candidate));
 }
Ejemplo n.º 19
0
        public void Contains_DateOnEndDateInterval_ReturnFalse()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour);

            // Act
            bool interesct = dateInterval.Contains(inOneHour);

            // Assert
            Assert.False(interesct);
        }
Ejemplo n.º 20
0
        public void Contains_DateOnStartDateInterval_ReturnTrue()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour);

            // Act
            bool interesct = dateInterval.Contains(now);

            // Assert
            Assert.True(interesct);
        }
Ejemplo n.º 21
0
        public void Contains_DateOnEndDateIntervalEndDateInclusive_ReturnTrue()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour, isMaxInclusive: true);

            // Act
            bool interesct = dateInterval.Contains(inOneHour);

            // Assert
            Assert.True(interesct);
        }
Ejemplo n.º 22
0
        public void Contains_DateBeforeDateInterval_ReturnFalse()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inOneHour);

            // Act
            bool intersect = dateInterval.Contains(now.AddHours(-1));

            // Assert
            Assert.False(intersect);
        }
Ejemplo n.º 23
0
        public void Contains_CurrentIntervalStartsBeforeAndFinishedAfterOtherInterval_ReturnTrue()
        {
            // Arrange
            var dateInterval = new DateInterval(now, inThreeHours);
            var otherInterval = new DateInterval(inOneHour, inTwoHours);

            // Act
            bool contains = dateInterval.Contains(otherInterval);

            // Assert
            Assert.True(contains);
        }
Ejemplo n.º 24
0
 public bool Contains(LocalDate localDate) => _dateInterval.Contains(localDate);
Ejemplo n.º 25
0
 public bool Contains_Disjoint() => JanuaryJune2017.Contains(AugustDecember2017);