public void TestMatchesMultiplePhoneNumbersSeparatedByPhoneNumberPunctuation() { const string text = "Call 650-253-4561 -- 455-234-3451"; const string region = "US"; var number1 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(6502534561L) .Build(); var match1 = new PhoneNumberMatch(5, "650-253-4561", number1); var number2 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(4552343451L) .Build(); var match2 = new PhoneNumberMatch(21, "455-234-3451", number2); var matches = phoneUtil.FindNumbers(text, region).GetEnumerator(); matches.MoveNext(); Assert.Equal(match1, matches.Current); matches.MoveNext(); Assert.Equal(match2, matches.Current); matches.Dispose(); }
private void doTestNumberMatchesForLeniency(List <NumberTest> TestCases, PhoneNumberUtil.Leniency leniency) { int noMatchFoundCount = 0; int wrongMatchFoundCount = 0; foreach (NumberTest Test in TestCases) { var iterator = findNumbersForLeniency(Test.rawString, Test.region, leniency); PhoneNumberMatch match = iterator.FirstOrDefault(); if (match == null) { noMatchFoundCount++; Console.WriteLine("No match found in " + Test.ToString() + " for leniency: " + leniency); } else { if (!Test.rawString.Equals(match.RawString)) { wrongMatchFoundCount++; Console.WriteLine("Found wrong match in Test " + Test.ToString() + ". Found " + match.RawString); } } } Assert.Equal(0, noMatchFoundCount); Assert.Equal(0, wrongMatchFoundCount); }
public void TestMatchWithSurroundingZipcodes() { String number = "415-666-7777"; String zipPreceding = "My address is CA 34215 - " + number + " is my number."; PhoneNumber expectedResult = phoneUtil.Parse(number, "US"); var iterator = phoneUtil.FindNumbers(zipPreceding, "US").GetEnumerator(); PhoneNumberMatch match = iterator.MoveNext() ? iterator.Current : null; Assert.NotNull(match); Assert.Equal(expectedResult, match.Number); Assert.Equal(number, match.RawString); // Now repeat, but this time the phone number has spaces in it. It should still be found. number = "(415) 666 7777"; String zipFollowing = "My number is " + number + ". 34215 is my zip-code."; iterator = phoneUtil.FindNumbers(zipFollowing, "US").GetEnumerator(); PhoneNumberMatch matchWithSpaces = iterator.MoveNext() ? iterator.Current : null; Assert.NotNull(matchWithSpaces); Assert.Equal(expectedResult, matchWithSpaces.Number); Assert.Equal(number, matchWithSpaces.RawString); }
/** * Asserts that another number can be found in {@code text} starting at {@code index}, and that * its corresponding range is {@code [start, end)}. */ private void AssertEqualRange(String text, int index, int start, int end) { String sub = text.Substring(index); var matches = phoneUtil.FindNumbers(sub, "NZ", PhoneNumberUtil.Leniency.POSSIBLE, long.MaxValue).GetEnumerator(); Assert.True(matches.MoveNext()); PhoneNumberMatch match = matches.Current; Assert.Equal(start - index, match.Start); Assert.Equal(end - start, match.Length); Assert.Equal(sub.Substring(match.Start, match.Length), match.RawString); }
public void TestValueTypeSemantics() { PhoneNumber number = new PhoneNumber(); PhoneNumberMatch match1 = new PhoneNumberMatch(10, "1 800 234 45 67", number); PhoneNumberMatch match2 = new PhoneNumberMatch(10, "1 800 234 45 67", number); Assert.AreEqual(match1, match2); Assert.AreEqual(match1.GetHashCode(), match2.GetHashCode()); Assert.AreEqual(match1.Start, match2.Start); Assert.AreEqual(match1.Length, match2.Length); Assert.AreEqual(match1.Number, match2.Number); Assert.AreEqual(match1.RawString, match2.RawString); Assert.AreEqual("1 800 234 45 67", match1.RawString); }
public void testValueTypeSemantics() { PhoneNumber number = new PhoneNumber(); PhoneNumberMatch match1 = new PhoneNumberMatch(10, "1 800 234 45 67", number); PhoneNumberMatch match2 = new PhoneNumberMatch(10, "1 800 234 45 67", number); Assert.AreEqual(match1, match2); Assert.AreEqual(match1.GetHashCode(), match2.GetHashCode()); Assert.AreEqual(match1.start(), match2.start()); Assert.AreEqual(match1.end(), match2.end()); Assert.AreEqual(match1.number(), match2.number()); Assert.AreEqual(match1.rawString(), match2.rawString()); Assert.AreEqual("1 800 234 45 67", match1.rawString()); }
private void doTestNumberNonMatchesForLeniency(List <NumberTest> TestCases, PhoneNumberUtil.Leniency leniency) { int matchFoundCount = 0; foreach (NumberTest Test in TestCases) { var iterator = findNumbersForLeniency(Test.rawString, Test.region, leniency); PhoneNumberMatch match = iterator.FirstOrDefault(); if (match != null) { matchFoundCount++; Console.WriteLine("Match found in " + Test.ToString() + " for leniency: " + leniency); } } Assert.Equal(0, matchFoundCount); }
public void TestSequences() { // Test multiple occurrences. String text = "Call 033316005 or 032316005!"; String region = "NZ"; PhoneNumber number1 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(33316005).Build(); PhoneNumberMatch match1 = new PhoneNumberMatch(5, "033316005", number1); PhoneNumber number2 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(32316005).Build(); PhoneNumberMatch match2 = new PhoneNumberMatch(19, "032316005", number2); var matches = phoneUtil.FindNumbers(text, region, PhoneNumberUtil.Leniency.POSSIBLE, long.MaxValue).GetEnumerator(); matches.MoveNext(); Assert.Equal(match1, matches.Current); matches.MoveNext(); Assert.Equal(match2, matches.Current); }
private void doTestInContext(String number, String defaultCountry, List <NumberContext> contextPairs, PhoneNumberUtil.Leniency leniency) { foreach (var context in contextPairs) { String prefix = context.leadingText; String text = prefix + number + context.trailingText; int start = prefix.Length; int length = number.Length; var iterator = phoneUtil.FindNumbers(text, defaultCountry, leniency, long.MaxValue); PhoneNumberMatch match = iterator.First(); Assert.NotNull(match); String extracted = text.Substring(match.Start, match.Length); Assert.True(start == match.Start && length == match.Length, "Unexpected phone region in '" + text + "'; extracted '" + extracted + "'"); Assert.Equal(number, extracted); Assert.Equal(match.RawString, extracted); EnsureTermination(text, defaultCountry, leniency); } }
public void TestSequences() { // Test multiple occurrences. String text = "Call 033316005 or 032316005!"; String region = "NZ"; PhoneNumber number1 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(33316005).Build(); PhoneNumberMatch match1 = new PhoneNumberMatch(5, "033316005", number1); PhoneNumber number2 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(32316005).Build(); PhoneNumberMatch match2 = new PhoneNumberMatch(19, "032316005", number2); var matches = phoneUtil.FindNumbers(text, region, PhoneNumberUtil.Leniency.POSSIBLE, long.MaxValue).GetEnumerator(); matches.MoveNext(); Assert.AreEqual(match1, matches.Current); matches.MoveNext(); Assert.AreEqual(match2, matches.Current); }
public void TestMatchesMultiplePhoneNumbersSeparatedByPhoneNumberPunctuation() { String text = "Call 650-253-4561 -- 455-234-3451"; String region = "US"; PhoneNumber number1 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(6502534561L) .Build(); PhoneNumberMatch match1 = new PhoneNumberMatch(5, "650-253-4561", number1); PhoneNumber number2 = new PhoneNumber.Builder() .SetCountryCode(phoneUtil.GetCountryCodeForRegion(region)) .SetNationalNumber(4552343451L) .Build(); PhoneNumberMatch match2 = new PhoneNumberMatch(21, "455-234-3451", number2); var matches = phoneUtil.FindNumbers(text, region).GetEnumerator(); matches.MoveNext(); Assert.AreEqual(match1, matches.Current); matches.MoveNext(); Assert.AreEqual(match2, matches.Current); }