public void DestinationSet_Dest_2_Dest_Overlap() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.AddArea("a", 33); ds.AddArea("b", 332); Assert.AreEqual<int>(2, ds.ExplicitDestinations.Count); Assert.AreEqual<string>("330-331,333-339", ds.ExplicitDestinations["a"].ToString()); Assert.AreEqual<string>("332", ds.ExplicitDestinations["b"].ToString()); }
public void DestinationSet_Dest_ContiguousRange() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.AddArea("a", 330); ds.AddArea("a", 331); ds.AddArea("b", 332); Assert.AreEqual<int>(2, ds.ExplicitDestinations.Count); Assert.AreEqual<string>("330-331", ds.ExplicitDestinations["a"].ToString()); }
public void DestinationSet_Dest_2_Dest_Disjoint() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.AddArea("a", 330); ds.AddArea("b", 332); Assert.AreEqual<int>(2, ds.ExplicitDestinations.Count); Assert.IsTrue(ds.ExplicitDestinations.ContainsKey("a")); Assert.IsTrue(ds.ExplicitDestinations.ContainsKey("b")); Assert.AreEqual<string>("330", ds.ExplicitDestinations["a"].ToString()); Assert.AreEqual<string>("332", ds.ExplicitDestinations["b"].ToString()); }
public void ExplicitDestinationSet_EmptyContainsNoRanges() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", string.Empty); IEnumerable<ZeroOneDecimalRange> Ranges = DestinationSet.Destinations["destination"].GetRanges(); Assert.IsFalse(Ranges.Any(), "Area codes returned something, but shouldn't have."); }
public void Destination_UpdateDestinationContainingCoveredAreaCodeRemoveCode() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "33,3341"); ds.UpdateDestination("b", "334"); ds.UpdateDestination("a", "33"); Assert.AreEqual<string>("33", ds.ExplicitDestinations["a"].ToString()); Assert.IsFalse(ds.ExplicitDestinations.ContainsKey("b")); }
public void DestinationSet_Mapping_ChildDestinationMovedToMain() { ExplicitDestinationSet<string> ds1 = new ExplicitDestinationSet<string>(); ds1.AddArea("AFGHANISTAN-FIX", 93); ds1.AddArea("AFGHANISTAN-MOBILE OTHERS", 937); ds1.AddArea("AFGHANISTAN-MOBILE AREEBA", 9377); ds1.AddArea("AFGHANISTAN-MOBILE ETISALAT", 9378); ds1.AddArea("AFGHANISTAN-MOBILE ROSHAN", 9379); ds1.AddArea("ALBANIA", 355); ds1.UpdateDestination("ALBANIA-MOBILE", "35566 - 35569"); ds1.AddArea("ALBANIA-TIRANA", 3554); //define just main destinations ExplicitDestinationSet<string> ds2 = new ExplicitDestinationSet<string>(); ds2.AddArea("AFGHANISTAN-FIX", 93); ds2.AddArea("ALBANIA", 355); DestinationSetBase.MappingResult<string> maps = ds1.MapToDestinationSet(ds2); //maps Assert.AreEqual<int>(8, maps.Maps.Count, "Fully mapped destinations"); Assert.AreEqual<string>("930-936,938-939", maps.Maps[new KeyValuePair<string, string>("AFGHANISTAN-FIX", "AFGHANISTAN-FIX")].ToString()); Assert.AreEqual<string>("9370-9376", maps.Maps[new KeyValuePair<string, string>("AFGHANISTAN-MOBILE OTHERS", "AFGHANISTAN-FIX")].ToString()); Assert.AreEqual<string>("9377", maps.Maps[new KeyValuePair<string, string>("AFGHANISTAN-MOBILE AREEBA", "AFGHANISTAN-FIX")].ToString()); Assert.AreEqual<string>("9378", maps.Maps[new KeyValuePair<string, string>("AFGHANISTAN-MOBILE ETISALAT", "AFGHANISTAN-FIX")].ToString()); Assert.AreEqual<string>("9379", maps.Maps[new KeyValuePair<string, string>("AFGHANISTAN-MOBILE ROSHAN", "AFGHANISTAN-FIX")].ToString()); Assert.AreEqual<string>("3550-3553,35550-35565,3557-3559", maps.Maps[new KeyValuePair<string, string>("ALBANIA", "ALBANIA")].ToString()); Assert.AreEqual<string>("35566-35569", maps.Maps[new KeyValuePair<string, string>("ALBANIA-MOBILE", "ALBANIA")].ToString()); Assert.AreEqual<string>("3554", maps.Maps[new KeyValuePair<string, string>("ALBANIA-TIRANA", "ALBANIA")].ToString()); //lost area codes Assert.AreEqual<int>(6, maps.LostAreaCodes.Count, "Lost areas"); Assert.AreEqual<string>("9370-9376", maps.LostAreaCodes["AFGHANISTAN-MOBILE OTHERS"].ToString()); Assert.AreEqual<string>("9377", maps.LostAreaCodes["AFGHANISTAN-MOBILE AREEBA"].ToString()); Assert.AreEqual<string>("9378", maps.LostAreaCodes["AFGHANISTAN-MOBILE ETISALAT"].ToString()); Assert.AreEqual<string>("9379", maps.LostAreaCodes["AFGHANISTAN-MOBILE ROSHAN"].ToString()); Assert.AreEqual<string>("35566-35569", maps.LostAreaCodes["ALBANIA-MOBILE"].ToString()); Assert.AreEqual<string>("3554", maps.LostAreaCodes["ALBANIA-TIRANA"].ToString()); //gained area codes Assert.AreEqual<int>(2, maps.GainedAreaCodes.Count, "Gained areas"); Assert.AreEqual<string>("937", maps.GainedAreaCodes["AFGHANISTAN-FIX"].ToString()); Assert.AreEqual<string>("3554,35566-35569", maps.GainedAreaCodes["ALBANIA"].ToString()); }
public void DestinationSet_Dest_CorrectHandlingAreaCodes() { ExplicitDestinationSet<string> ds1 = new ExplicitDestinationSet<string>(); ds1.UpdateDestination("A", "33;334"); ds1.UpdateDestination("B", "33"); }
public void ExplicitDestinationSet_UpdateSameDestinationWithoutOverlaps() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", "10-19"); IEnumerable<string> AreaList = DestinationSet.ExplicitAreas.Select(x => x.ToString()); Assert.IsTrue(AreaList.Contains("1")); DestinationSet.UpdateDestination("destination", "11,110-117"); AreaList = DestinationSet.ExplicitAreas.Select(x => x.ToString()); Assert.IsTrue(AreaList.Contains("11")); Assert.IsFalse(AreaList.Contains("110")); DestinationSet.UpdateDestination("destination", "5,510-517"); AreaList = DestinationSet.ExplicitAreas.Select(x => x.ToString()); Assert.IsTrue(AreaList.Contains("5")); Assert.IsFalse(AreaList.Contains("52")); }
public void ExplicitDestinationSet_UpdateDestinationWithUnconventionalRanges3() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", "3434-1"); }
public void DestinationSet_Mapping_RSI_SameDestSetWithoutChanges() { ExplicitDestinationSet<string> ds1 = new ExplicitDestinationSet<string>(); ds1.AddArea("AFGHANISTAN-FIX", 93); ds1.AddArea("AFGHANISTAN-MOBILE OTHERS", 937); ds1.AddArea("AFGHANISTAN-MOBILE AREEBA", 9377); ds1.AddArea("AFGHANISTAN-MOBILE ETISALAT", 9378); ds1.AddArea("AFGHANISTAN-MOBILE ROSHAN", 9379); ds1.AddArea("ALBANIA", 355); ds1.UpdateDestination("ALBANIA-MOBILE", "35566 - 35569"); ds1.AddArea("ALBANIA-TIRANA", 3554); ds1.AddArea("ALGERIA", 213); ds1.UpdateDestination("ALGERIA-MOBILE ORASCOM", "21377; 213780; 21379".Replace(';', ',')); ds1.UpdateDestination("ALGERIA-MOBILE OTHERS", "213659; 21366; 213670; 21369; 21396190-21396192".Replace(';', ',')); ds1.AddArea("ALGERIA-MOBILE WATANIYA", 2135); ds1.AddArea("AMERICAN SAMOA", 1684); ds1.AddArea("ANDORRA", 376); ds1.UpdateDestination("ANDORRA-MOBILE", "3763 - 3766"); //add same set with different order of the elements, map should be 1:1 ExplicitDestinationSet<string> ds2 = new ExplicitDestinationSet<string>(); ds2.AddArea("AFGHANISTAN-FIX", 93); ds2.AddArea("AFGHANISTAN-MOBILE OTHERS", 937); ds2.AddArea("AFGHANISTAN-MOBILE ROSHAN", 9379); ds2.AddArea("AFGHANISTAN-MOBILE AREEBA", 9377); ds2.AddArea("AFGHANISTAN-MOBILE ETISALAT", 9378); ds2.AddArea("ANDORRA", 376); ds2.UpdateDestination("ANDORRA-MOBILE", "3763 - 3766"); ds2.AddArea("ALBANIA", 355); ds2.AddArea("ALBANIA-TIRANA", 3554); ds2.UpdateDestination("ALBANIA-MOBILE", "35566 - 35569"); ds2.AddArea("ALGERIA", 213); ds2.UpdateDestination("ALGERIA-MOBILE OTHERS", "213659; 21366; 213670; 21369; 21396190-21396192".Replace(';', ',')); ds2.UpdateDestination("ALGERIA-MOBILE ORASCOM", "21377; 213780; 21379".Replace(';', ',')); ds2.AddArea("ALGERIA-MOBILE WATANIYA", 2135); ds2.AddArea("AMERICAN SAMOA", 1684); DestinationSetBase.MappingResult<string> maps = ds1.MapToDestinationSet(ds2); Assert.AreEqual<int>(15, maps.Maps.Count, "Fully mapped destinations"); Assert.AreEqual<int>(0, maps.LostAreaCodes.Count, "Lost areas"); Assert.AreEqual<int>(0, maps.GainedAreaCodes.Count, "Gained areas"); foreach (string sDestinationName in ds2.Destinations.Select(x => x.Key)) { Assert.IsTrue(maps[sDestinationName].HasMapping); Assert.IsTrue(maps[sDestinationName].IsFullyMapped); Assert.IsFalse(maps[sDestinationName].IsMultiMapped); Assert.IsFalse(maps[sDestinationName].IsPartiallyMapped); } }
public void ExplicitDestinationSet_RemoveNotExistingArea() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "330-332,338"); Assert.AreEqual<string>("330-332,338", ds.Destinations["a"].ToString()); ds.RemoveArea(3312); Assert.AreEqual<string>("330,3310-3311,3313-3319,332,338", ds.Destinations["a"].ToString()); }
public void Destination_PopulateByDatatable() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); DataTable dt = new DataTable(); dt.Columns.Add("MOCK", typeof(System.Object)); DataColumn DestinationColumn = dt.Columns.Add("D", typeof(System.String)); DataColumn AreaColumn = dt.Columns.Add("A", typeof(System.String)); dt.Rows.Add(new object[] { DBNull.Value, "destination1", "123-125" }); dt.Rows.Add(new object[] { 12, "destination2", "34567" }); dt.Rows.Add(new object[] { 12, "destination2", DBNull.Value }); dt.Rows.Add(new object[] { 12, "destination2", string.Empty }); dt.Rows.Add(new object[] { 12, DBNull.Value, DBNull.Value }); dt.Rows.Add(new object[] { 12, string.Empty, "1" }); dt.Rows.Add(new object[] { 12, "destination1", "2" }); ds.Populate(dt.Select(), DestinationColumn, AreaColumn, false); Assert.AreEqual<int>(2, ds.Destinations.Count); Assert.AreEqual("123-125,2", ds.Destinations["destination1"].ToString()); Assert.AreEqual("34567", ds.Destinations["destination2"].ToString()); }
public void Destination_OverlapAreaOpt() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "33,332"); Assert.AreEqual<string>("33", ds.Destinations["a"].ToString()); }
public void Destination_CreateDestinationWithExistingAreaInOtherDest() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "330-332,338"); ds.UpdateDestination("b", "330"); Assert.AreEqual<string>("331-332,338", ds.Destinations["a"].ToString()); Assert.AreEqual<string>("330", ds.Destinations["b"].ToString()); }
public void Destination_AddAlreadyExistingArea() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "330-332,338"); Assert.AreEqual<string>("330-332,338", ds.Destinations["a"].ToString()); ds.AddArea("a", 331); Assert.AreEqual<string>("330-332,338", ds.Destinations["a"].ToString()); }
public void DestinationSet_Mapping_RSI_SwedenMobileExample() { ExplicitDestinationSet<string> ds1 = new ExplicitDestinationSet<string>(); ds1.AddArea("SWEDEN", 46); ds1.AddArea("SWEDEN-MOBILE", 467); //define just main destinations ExplicitDestinationSet<string> ds2 = new ExplicitDestinationSet<string>(); ds2.AddArea("SWEDEN", 46); ds2.UpdateDestination("SWEDEN-MOBILE 1", "4670-4675"); ds2.UpdateDestination("SWEDEN-MOBILE 2", "4676-4678"); DestinationSetBase.MappingResult<string> maps = ds1.MapToDestinationSet(ds2); Assert.AreEqual<int>(3, maps.GetMappedDestination("SWEDEN-MOBILE").Count()); Assert.AreEqual<int>(1, maps.GetMappedDestination("SWEDEN").Count()); Assert.IsTrue(maps["SWEDEN"].IsFullyMapped); Assert.IsTrue(maps["SWEDEN-MOBILE"].IsMultiMapped); Assert.AreEqual<string>("4670-4675", maps.Maps[new KeyValuePair<string, string>("SWEDEN-MOBILE", "SWEDEN-MOBILE 1")].ToString()); Assert.AreEqual<string>("4676-4678", maps.Maps[new KeyValuePair<string, string>("SWEDEN-MOBILE", "SWEDEN-MOBILE 2")].ToString()); Assert.AreEqual<string>("4679", maps.Maps[new KeyValuePair<string, string>("SWEDEN-MOBILE", "SWEDEN")].ToString()); }
public void ExplicitDestinationSet_FullRange() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", string.Empty); DestinationSet.AddArea("destination", 1); DestinationSet.AddArea("destination", 2); DestinationSet.AddArea("destination", 3); DestinationSet.AddArea("destination", 4); DestinationSet.AddArea("destination", 5); DestinationSet.AddArea("destination", 6); DestinationSet.AddArea("destination", 7); DestinationSet.AddArea("destination", 8); DestinationSet.AddArea("destination", 9); string sAreaString = DestinationSet.Destinations["destination"].ToString(); Assert.AreEqual<string>("1-9", sAreaString); }
public void ExplicitDestinationSet_UpdateDestinationWithUnconventionalRanges1() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", "00000000001-3,0000000000000000005,6"); IEnumerable<UInt64> ExpandedAreas = DestinationSet.Destinations["destination"].FullExpandedAreas; Assert.IsTrue(ExpandedAreas.Contains<UInt64>(1)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(2)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(5)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(6)); }
public void ExplicitDestinationSet_HandlesFullCodesStartingWithLeadingZeros() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", "000000000001, 2,3,0000000000000000005,"); string sAreaString = DestinationSet.Destinations["destination"].ToString(); Assert.AreEqual<string>("1-3,5", sAreaString); }
public void DestinationSet_Mapping_RSI_ChildDestinationSwap() { ExplicitDestinationSet<string> ds1 = new ExplicitDestinationSet<string>(); ds1.AddArea("AFGHANISTAN-FIX", 93); ds1.AddArea("AFGHANISTAN-MOBILE OTHERS", 937); ds1.AddArea("AFGHANISTAN-MOBILE AREEBA", 9377); //do not include AFGHANISTAN-MOBILE ETISALAT ds1.AddArea("AFGHANISTAN-MOBILE ROSHAN", 9379); ExplicitDestinationSet<string> ds2 = new ExplicitDestinationSet<string>(); ds2.AddArea("AFGHANISTAN-FIX", 93); ds2.AddArea("AFGHANISTAN-MOBILE OTHERS", 937); ds2.AddArea("AFGHANISTAN-MOBILE AREEBA", 9377); ds2.AddArea("AFGHANISTAN-MOBILE ETISALAT", 9378); //do not include AFGHANISTAN-MOBILE ROSHAN DestinationSetBase.MappingResult<string> maps = ds1.MapToDestinationSet(ds2); Assert.AreEqual<int>(5, maps.Count); Assert.AreEqual<int>(2, maps.LostAreaCodes.Count); Assert.AreEqual<int>(2, maps.GainedAreaCodes.Count); Assert.AreEqual<string>("9379", maps.LostAreaCodes["AFGHANISTAN-MOBILE ROSHAN"].ToString()); Assert.AreEqual<string>("9378", maps.LostAreaCodes["AFGHANISTAN-MOBILE OTHERS"].ToString()); Assert.AreEqual<string>("9378", maps.GainedAreaCodes["AFGHANISTAN-MOBILE ETISALAT"].ToString()); Assert.AreEqual<string>("9379", maps.GainedAreaCodes["AFGHANISTAN-MOBILE OTHERS"].ToString()); }
public void ExplicitDestinationSet_StringRepresentationCorrectAfterMultipleUpdates() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", string.Empty); DestinationSet.AddArea("destination", 1); DestinationSet.AddArea("destination", 3); DestinationSet.AddArea("destination", 5); DestinationSet.AddArea("destination", 7); DestinationSet.AddArea("destination", 2); DestinationSet.AddArea("destination", 7); string sAreaString = DestinationSet.Destinations["destination"].ToString(); Assert.AreEqual<string>("1-3,5,7", sAreaString); }
public void Destination_PopulateByDictionary() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); Dictionary<string, string> Dict = new Dictionary<string, string>(); Dict.Add("destination1", "123-125, 2"); Dict.Add("destination2", "34567"); ds.Populate(Dict); Assert.AreEqual<int>(2, ds.Destinations.Count); Assert.AreEqual("123-125,2", ds.Destinations["destination1"].ToString()); Assert.AreEqual("34567", ds.Destinations["destination2"].ToString()); }
public void ExplicitDestinationSet_UpdateDestinationWithUnconventionalRanges2() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", "1, 2 ,3-5, 4-675"); IEnumerable<UInt64> ExpandedAreas = DestinationSet.Destinations["destination"].FullExpandedAreas; Assert.IsTrue(ExpandedAreas.Contains<UInt64>(1)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(2)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(3)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(4)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(5)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(63)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(675)); Assert.IsFalse(ExpandedAreas.Contains<UInt64>(6)); Assert.IsFalse(ExpandedAreas.Contains<UInt64>(7)); Assert.IsFalse(ExpandedAreas.Contains<UInt64>(23)); }
public void Destination_SingleArea() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "33"); Assert.AreEqual<string>("33", ds.Destinations["a"].ToString()); }
public void ExplicitDestinationSet_UpdateDestinationWithUnconventionalRanges4() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", "1-123456789"); IEnumerable<UInt64> ExpandedAreas = DestinationSet.Destinations["destination"].FullExpandedAreas; Assert.IsTrue(ExpandedAreas.Contains<UInt64>(10)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(12342)); Assert.IsTrue(ExpandedAreas.Contains<UInt64>(12345678)); //Should not have "1", since not complete "1" in the range. 13 and so on are not part of the area codes. Assert.IsFalse(ExpandedAreas.Contains<UInt64>(1)); // should not have these area codes. The first one is because the area code is ending with 9 and therefore the complete parent should be part Assert.IsFalse(ExpandedAreas.Contains<UInt64>(123456782)); Assert.IsFalse(ExpandedAreas.Contains<UInt64>(12346)); }
public void Destination_SingleAreaWithMultipleCode() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "33"); ds.AddArea("a", 34); Assert.AreEqual<string>("33-34", ds.Destinations["a"].ToString()); }
public void Destination_UpdateDestination() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "330-332,338"); ds.UpdateDestination("a", "1,330"); ds.AddArea("a", 332); Assert.AreEqual<string>("1,330,332", ds.Destinations["a"].ToString()); }
public void Destination_UpdateDestinationContainingCoveredAreaCode() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "33,3341"); ds.UpdateDestination("b", "334"); Assert.AreEqual<string>("330-333,335-339", ds.ExplicitDestinations["a"].ToString()); Assert.AreEqual<string>("334", ds.ExplicitDestinations["b"].ToString()); }
public void DestinationSet_Dest_CoveredRange() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.AddArea("a", 33); ds.AddArea("a", 331); ds.AddArea("b", 1); Assert.AreEqual<int>(2, ds.ExplicitDestinations.Count); Assert.IsTrue(ds.ExplicitDestinations.ContainsKey("a")); Assert.AreEqual<string>("33", ds.ExplicitDestinations["a"].ToString()); }
public void DestinationSet_Diff_Dest_Map_Overlap() { ExplicitDestinationSet<string> ds1 = new ExplicitDestinationSet<string>(); ExplicitDestinationSet<string> ds2 = new ExplicitDestinationSet<string>(); ds1.AddArea("ds1a", 33); ds1.AddArea("ds1b", 332); ds2.AddArea("ds2a", 33); ds2.AddArea("ds2b", 334); DestinationSetBase.MappingResult<string> maps = ds1.MapToDestinationSet(ds2); Assert.AreEqual<int>(3, maps.Count); Assert.AreEqual<string>("330-331,333,335-339", maps.GetMappedAreas("ds1a", "ds2a")); Assert.AreEqual<string>("334", maps.GetMappedAreas("ds1a", "ds2b")); Assert.AreEqual<string>("332", maps.GetMappedAreas("ds1b", "ds2a")); Assert.AreEqual<int>(2, maps.LostAreaCodes.Count); Assert.AreEqual<string>("332", maps.LostAreaCodes["ds1b"].ToString()); Assert.AreEqual<string>("330-331,333-339", maps.LostAreaCodes["ds1a"].ToString()); Assert.AreEqual<int>(2, maps.GainedAreaCodes.Count); Assert.AreEqual<string>("330-333,335-339", maps.GainedAreaCodes["ds2a"].ToString()); Assert.AreEqual<string>("334", maps.GainedAreaCodes["ds2b"].ToString()); }