public IDictionary<int, List<int>> GetAreaTypeIdToIndicatorIdsWithData() { var indicatorIds = new IndicatorSearch().SearchIndicators(_parameters.SearchText); var profileIds = _parameters.RestrictResultsToProfileIdList; var areaTypes = new AreaTypeListProvider(new GroupIdProvider(profileReader), areasReader, groupDataReader) .GetChildAreaTypesUsedInProfiles(profileIds); IDictionary<int, List<int>> areaTypeIdToIndicatorIdsWithData = new Dictionary<int, List<int>>(); foreach (var areaType in areaTypes) { List<int> indicatorIdsWithData = new List<int>(); int areaTypeId = areaType.Id; var groupings = new GroupingListProvider(groupDataReader, profileReader) .GetGroupings(profileIds, indicatorIds, areaTypeId); var groupRoots = new GroupRootBuilder().BuildGroupRoots(groupings); foreach (var groupRoot in groupRoots) { var grouping = groupRoot.FirstGrouping; var count = groupDataReader.GetCoreDataCountAtDataPoint(grouping); if (count > 0) { indicatorIdsWithData.Add(grouping.IndicatorId); } } areaTypeIdToIndicatorIdsWithData.Add(areaTypeId, indicatorIdsWithData); } return areaTypeIdToIndicatorIdsWithData; }
public void TestSearchIndicators() { // Standard search List<int> ids = new IndicatorSearch().SearchIndicators("drug"); Assert.IsTrue(ids.Count > 10); // Nonsense search string ids = new IndicatorSearch().SearchIndicators("xhoawecapqfhasfdg"); Assert.AreEqual(0, ids.Count); }
public void TestIndicatorSearchIsCaseInsensitive() { var search = new IndicatorSearch(); Assert.AreEqual(search.SearchIndicators("TUBERCULOSIS").Count, search.SearchIndicators("tuberculosis").Count); Assert.IsTrue(search.SearchIndicators("tuberculosis").Count > 0); }