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 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 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 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_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_UpdateDestinationWithUnconventionalRanges3() { ExplicitDestinationSet<string> DestinationSet = new ExplicitDestinationSet<string>(); DestinationSet.UpdateDestination("destination", "3434-1"); }
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 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_OverlapAreaOpt() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "33,332"); Assert.AreEqual<string>("33", ds.Destinations["a"].ToString()); }
public void Destination_SingleArea() { ExplicitDestinationSet<string> ds = new ExplicitDestinationSet<string>(); ds.UpdateDestination("a", "33"); 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_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 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 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_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 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 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 DestinationSet_Dest_CorrectHandlingAreaCodes() { ExplicitDestinationSet<string> ds1 = new ExplicitDestinationSet<string>(); ds1.UpdateDestination("A", "33;334"); ds1.UpdateDestination("B", "33"); }
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()); }