public void RangeIsGeneratedForFinancialYearPartQuery() { CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2021, FinancialYearPart1) }, TimePeriodUtil.Range(new TimePeriodQuery(2021, FinancialYearPart1, 2021, FinancialYearPart1)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2021, FinancialYearPart1), (2021, FinancialYearPart2) }, TimePeriodUtil.Range(new TimePeriodQuery(2021, FinancialYearPart1, 2021, FinancialYearPart2)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2020, FinancialYearPart1), (2020, FinancialYearPart2), (2021, FinancialYearPart1) }, TimePeriodUtil.Range(new TimePeriodQuery(2020, FinancialYearPart1, 2021, FinancialYearPart1)).ToList()); }
public void RangeIsGeneratedForTaxQuarterQuery() { CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, TaxYearQ3) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, TaxYearQ3, 2019, TaxYearQ3)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, TaxYearQ3), (2019, TaxYearQ4) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, TaxYearQ3, 2019, TaxYearQ4)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2018, TaxYearQ4), (2019, TaxYearQ1), (2019, TaxYearQ2), (2019, TaxYearQ3), (2019, TaxYearQ4), (2020, TaxYearQ1), (2020, TaxYearQ2) }, TimePeriodUtil.Range(new TimePeriodQuery(2018, TaxYearQ4, 2020, TaxYearQ2)).ToList()); }
public void RangeIsGeneratedForTermQuery() { CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, AutumnTerm) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, AutumnTerm, 2019, AutumnTerm)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, AutumnTerm), (2019, AutumnSpringTerm), (2019, SpringTerm), (2019, SummerTerm) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, AutumnTerm, 2019, SummerTerm)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2018, SpringTerm), (2018, SummerTerm), (2019, AutumnTerm), (2019, AutumnSpringTerm), (2019, SpringTerm), (2019, SummerTerm), (2020, AutumnTerm) }, TimePeriodUtil.Range(new TimePeriodQuery(2018, SpringTerm, 2020, AutumnTerm)).ToList()); }
public void RangeFailsIfYearsAreInvalid() { Assert.Throws <ArgumentOutOfRangeException>(() => TimePeriodUtil.Range(new TimePeriodQuery(12345, CalendarYear, 2019, CalendarYear))); Assert.Throws <ArgumentOutOfRangeException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2019, CalendarYear, 12345, CalendarYear))); }
public void RangeIsGeneratedForReportingYearQuery() { var expected = new List <(int Year, TimeIdentifier TimeIdentifier)> { (2018, ReportingYear), (2019, ReportingYear) }; CollectionAssert.AreEquivalent(expected, TimePeriodUtil.Range(new TimePeriodQuery(2018, ReportingYear, 2019, ReportingYear)).ToList()); }
public async Task <ActionResult <List <DataBlockQuerySizeReport> > > QuerySizeReport() { var publishedReleaseIds = _contentDbContext.Releases .Include(r => r.Publication) .ToList() .Where(r => r.Publication.IsLatestVersionOfRelease(r.Id)) .Select(r => r.Id) .ToList(); var publishedDataBlocks = await _contentDbContext.ReleaseContentBlocks .Include(rcb => rcb.ContentBlock) .Where(rcb => publishedReleaseIds.Contains(rcb.ReleaseId)) .Select(rcb => rcb.ContentBlock) .OfType <DataBlock>() .ToListAsync(); return(await publishedDataBlocks .ToAsyncEnumerable() .SelectAwait(async dataBlock => { var query = dataBlock.Query; var countsOfFilterItemsByFilter = await _filterItemRepository .CountFilterItemsByFilter(dataBlock.Query.Filters); var countOfIndicators = query.Indicators.Count(); var countOfLocations = query.LocationIds.Count; var countOfTimePeriods = TimePeriodUtil.Range(query.TimePeriod).Count(); var maxTableCellCount = TableBuilderUtils.MaximumTableCellCount( countOfIndicators: countOfIndicators, countOfLocations: countOfLocations, countOfTimePeriods: countOfTimePeriods, countsOfFilterItemsByFilter: countsOfFilterItemsByFilter .Select(pair => { var(_, count) = pair; return count; })); return new DataBlockQuerySizeReport { DataBlockId = dataBlock.Id, DataBlockName = dataBlock.Name, Filters = countsOfFilterItemsByFilter, Indicators = countOfIndicators, Locations = countOfLocations, TimePeriods = countOfTimePeriods, MaxTableCells = maxTableCellCount }; }) .OrderByDescending(result => result.MaxTableCells) .ToListAsync()); }
public void RangeFailsWithoutYears() { Assert.Throws <ArgumentNullException>(() => TimePeriodUtil.Range( new TimePeriodQuery { StartCode = CalendarYear, EndYear = 2019, EndCode = CalendarYear })); Assert.Throws <ArgumentNullException>(() => TimePeriodUtil.Range( new TimePeriodQuery { StartYear = 2019, StartCode = CalendarYear, EndCode = CalendarYear })); }
public override string ToAnnotateFormat(bool StemOnly) { string stem = @"``" + text + @"``"; if (StemOnly) { return(stem); } TimePoint firstTP = getFirstTimePoint(); TimePoint lastTP = getLastTimePoint(); stem += TimePeriodUtil.TimePointToString(firstTP, false, true); if (!lastTP.equals(firstTP)) { stem += TimePeriodUtil.TimePointToString(lastTP, false, true); } return(stem); }
public void RangeFailsIfTimeIdentifiersAreNotAlike() { var calendarQuarterIdentifiers = new[] { CalendarYearQ1, CalendarYearQ2, CalendarYearQ3, CalendarYearQ4 }; var monthIdentifiers = new[] { January, February, March, April, May, June, July, August, September, October, November, December }; var weekIdentifiers = new[] { Week1, Week2, Week3, Week4, Week5, Week6, Week7, Week8, Week9, Week10, Week11, Week12, Week13, Week14, Week15, Week16, Week17, Week18, Week19, Week20, Week21, Week22, Week23, Week24, Week25, Week26, Week27, Week28, Week29, Week30, Week31, Week32, Week33, Week34, Week35, Week36, Week37, Week38, Week39, Week40, Week41, Week42, Week43, Week44, Week45, Week46, Week47, Week48, Week49, Week50, Week51, Week52 }; var termIdentifiers = new[] { AutumnTerm, AutumnSpringTerm, SpringTerm, SummerTerm }; var financialYearPartIdentifiers = new[] { FinancialYearPart1, FinancialYearPart2 }; foreach (var identifier in _allTimeIdentifiers.Except(calendarQuarterIdentifiers)) { Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, CalendarYearQ1, 2019, identifier))); } foreach (var identifier in _allTimeIdentifiers.Except(monthIdentifiers)) { Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, January, 2019, identifier))); } foreach (var identifier in _allTimeIdentifiers.Except(weekIdentifiers)) { Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, Week1, 2019, identifier))); } foreach (var identifier in _allTimeIdentifiers.Except(termIdentifiers)) { Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, AutumnTerm, 2019, identifier))); } foreach (var identifier in _allTimeIdentifiers.Except(financialYearPartIdentifiers)) { Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, FinancialYearPart1, 2019, identifier))); } Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, CalendarYear, 2019, AcademicYear))); Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, CalendarYear, 2019, TaxYear))); Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, CalendarYear, 2019, FinancialYear))); Assert.Throws <ArgumentException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2018, CalendarYear, 2019, ReportingYear))); }
public void RangeFailsIfStartYearIsAfterEndYear() { Assert.Throws <ArgumentOutOfRangeException>(() => TimePeriodUtil.Range(new TimePeriodQuery(2019, CalendarYear, 2018, CalendarYear))); }
public void RangeIsGeneratedForWeekQuery() { CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2020, Week17) }, TimePeriodUtil.Range(new TimePeriodQuery(2020, Week17, 2020, Week17)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2020, Week1), (2020, Week2), (2020, Week3), (2020, Week4), (2020, Week5), (2020, Week6), (2020, Week7), (2020, Week8), (2020, Week9), (2020, Week10), (2020, Week11), (2020, Week12), (2020, Week13), (2020, Week14), (2020, Week15), (2020, Week16), (2020, Week17), (2020, Week18), (2020, Week19), (2020, Week20), (2020, Week21), (2020, Week22), (2020, Week23), (2020, Week24), (2020, Week25), (2020, Week26), (2020, Week27), (2020, Week28), (2020, Week29), (2020, Week30), (2020, Week31), (2020, Week32), (2020, Week33), (2020, Week34), (2020, Week35), (2020, Week36), (2020, Week37), (2020, Week38), (2020, Week39), (2020, Week40), (2020, Week41), (2020, Week42), (2020, Week43), (2020, Week44), (2020, Week45), (2020, Week46), (2020, Week47), (2020, Week48), (2020, Week49), (2020, Week50), (2020, Week51), (2020, Week52) }, TimePeriodUtil.Range(new TimePeriodQuery(2020, Week1, 2020, Week52)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2020, Week17), (2020, Week18), (2020, Week19), (2020, Week20) }, TimePeriodUtil.Range(new TimePeriodQuery(2020, Week17, 2020, Week20)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, Week51), (2019, Week52), (2020, Week1), (2020, Week2) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, Week51, 2020, Week2)).ToList()); }
public void RangeIsGeneratedForMonthQuery() { CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, February) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, February, 2019, February)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, January), (2019, February), (2019, March), (2019, April), (2019, May), (2019, June), (2019, July), (2019, August), (2019, September), (2019, October), (2019, November), (2019, December) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, January, 2019, December)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2019, March), (2019, April), (2019, May), (2019, June), (2019, July), (2019, August), (2019, September), (2019, October) }, TimePeriodUtil.Range(new TimePeriodQuery(2019, March, 2019, October)).ToList()); CollectionAssert.AreEquivalent( new List <(int Year, TimeIdentifier TimeIdentifier)> { (2018, April), (2018, May), (2018, June), (2018, July), (2018, August), (2018, September), (2018, October), (2018, November), (2018, December), (2019, January), (2019, February), (2019, March), (2019, April), (2019, May), (2019, June), (2019, July), (2019, August), (2019, September), (2019, October), (2019, November), (2019, December), (2020, January), (2020, February), (2020, March) }, TimePeriodUtil.Range(new TimePeriodQuery(2018, April, 2020, March)).ToList()); }