test_addressComponent_street_address.js (2634B)
1 "use strict"; 2 3 const VALID_TESTS = [ 4 ["123 Main St. Apt 4, Floor 2", true], 5 ["This is a street", true], 6 ["A", true], 7 ["住址", true], 8 ["!#%&'*+", false], 9 ["1234", false], 10 ]; 11 12 const COMPARE_TESTS = [ 13 { region: "US" }, 14 ["123 Main St.", "123 Main St.", SAME], // Exactly the same with only street number and street name 15 ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 4, Floor 2", SAME], 16 ["123 Main St. Apt 4A, Floor 2", "123 main St. Apt 4a, Floor 2", SAME], 17 ["123 Main St. Apt 4, Floor 2", "123 Main St. Suite 4, 2nd fl", SAME], // Exactly the same after parsing 18 ["Main St.", "Main St.", SAME], // Exactly the same with only street name 19 ["Main St.", "main st.", SAME], // Exactly the same with only street name (case-insenstive) 20 21 ["123 Main St.", "Main St.", A_CONTAINS_B], // Street number is mergeable 22 ["123 Main Lane St.", "123 Main St.", A_CONTAINS_B], // Street name is mergeable 23 ["123 Main St. Apt 4", "Main St.", A_CONTAINS_B], // Apartment number is mergeable 24 ["123 Main St. Apt 4, Floor 2", "123 Main St., Floor 2", A_CONTAINS_B], 25 ["123 Main St. Floor 2", "Main St.", A_CONTAINS_B], // Floor number is mergeable 26 ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 4", A_CONTAINS_B], 27 ["123 North-South Road", "123 North South Road", SIMILAR], // Street number is mergeable 28 29 ["123 Main St. Apt 4, Floor 2", "1234 Main St. Apt 4, Floor 2", DIFFERENT], // Street number is different 30 ["123 Main St. Apt 4, Floor 2", "123 Mainn St. Apt 4, Floor 2", DIFFERENT], // Street name is different 31 [ 32 "123 Lane Main St. Apt 4, Floor 2", 33 "123 Main Lane St. Apt 4, Floor 2", 34 DIFFERENT, 35 ], // Street name is different (token not in order) 36 ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 41, Floor 2", DIFFERENT], // Apartment number is different 37 ["123 Main St. Apt 4, Floor 2", "123 Main St. Apt 4, Floor 22", DIFFERENT], // Floor number is different 38 39 ["123 Main St. Apt 4, Floor 2", "123 Main St. Floor 2, Apt 4", DIFFERENT], 40 41 // When address cannot be parsed 42 ["Any Address", "any address", SAME], 43 ["Any Address 4F", "Any Address", A_CONTAINS_B], 44 ["An Any Address 4F", "Any Address", A_CONTAINS_B], 45 ["Any Address", "Address Any", DIFFERENT], 46 ["Any Address", "Other Address", DIFFERENT], 47 ]; 48 49 const TEST_FIELD_NAME = "street-address"; 50 51 add_setup(async () => {}); 52 53 add_task(async function test_isValid() { 54 runIsValidTest(VALID_TESTS, TEST_FIELD_NAME, value => { 55 return { "street-address": value }; 56 }); 57 }); 58 59 add_task(async function test_compare() { 60 runCompareTest(COMPARE_TESTS, TEST_FIELD_NAME, value => { 61 return { "street-address": value }; 62 }); 63 });