/*******************************************************************************
* Gisgraphy Project
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
*
* Copyright 2008 Gisgraphy project
*
* David Masclet <davidmasclet@gisgraphy.com>
******************************************************************************/
package com.gisgraphy.geoloc;
import org.junit.Assert;
import org.junit.Test;
public class ZipcodeNormalizerTest {
@Test
public void normalize_ca_with_null() {
Assert.assertNull(ZipcodeNormalizer.normalize_ca(null));
}
@Test
public void normalize_GB_with_null() {
Assert.assertNull(ZipcodeNormalizer.normalize_gb(null));
}
@Test
public void normalizeWithNullString() {
Assert.assertNull(ZipcodeNormalizer.normalize(null, "GB"));
}
@Test
public void normalize_ca() {
// only text
Assert.assertEquals("foo", ZipcodeNormalizer.normalize_ca("foo"));
// only zip
Assert.assertEquals("H3Z", ZipcodeNormalizer.normalize_ca("H3Z 2Y7"));
Assert.assertEquals("H3Z", ZipcodeNormalizer.normalize_ca("H3Z2Y7"));
Assert.assertEquals("H3Z", ZipcodeNormalizer.normalize_ca("H3Z–2Y7"));
// zip +text
Assert.assertEquals("foo H3Z bar", ZipcodeNormalizer.normalize_ca("foo H3Z 2Y7 bar "));
Assert.assertEquals("foo H3Z bar", ZipcodeNormalizer.normalize_ca("foo H3Z 2Y7 bar "));
Assert.assertEquals("foo H3Z bar", ZipcodeNormalizer.normalize_ca("foo H3Z2Y7 bar"));
Assert.assertEquals("foo H3Z bar", ZipcodeNormalizer.normalize_ca("foo H3Z–2Y7 bar"));
// double
Assert.assertEquals("foo H3Z bar H3Z", ZipcodeNormalizer.normalize_ca("foo H3Z 2Y7 bar H3Z 2Y7"));
Assert.assertEquals("foo H3Z bar H3Z", ZipcodeNormalizer.normalize_ca("foo H3Z 2Y7 bar H3Z 2Y7"));
Assert.assertEquals("foo H3Z bar H3Z", ZipcodeNormalizer.normalize_ca("foo H3Z2Y7 bar H3Z 2Y7"));
Assert.assertEquals("foo H3Z bar", ZipcodeNormalizer.normalize_ca("foo H3Z–2Y7 bar"));
}
@Test
public void normalize_gb() {
// only text
Assert.assertEquals("foo", ZipcodeNormalizer.normalize_gb("foo"));
// only zip
Assert.assertEquals("EC1A", ZipcodeNormalizer.normalize_gb("EC1A 1HQ"));
Assert.assertEquals("EC1A", ZipcodeNormalizer.normalize_gb("EC1A1HQ"));
Assert.assertEquals("DN16", ZipcodeNormalizer.normalize_gb("DN16 9AA"));
Assert.assertEquals("DN16", ZipcodeNormalizer.normalize_gb("DN169AA"));
Assert.assertEquals("M2", ZipcodeNormalizer.normalize_gb("M2 5BQ"));
Assert.assertEquals("M2", ZipcodeNormalizer.normalize_gb("M25BQ"));
Assert.assertEquals("CR0", ZipcodeNormalizer.normalize_gb("CR0 2YR"));
Assert.assertEquals("CR0", ZipcodeNormalizer.normalize_gb("CR02YR"));
Assert.assertEquals("W1A", ZipcodeNormalizer.normalize_gb("W1A 4ZZ"));
Assert.assertEquals("W1A", ZipcodeNormalizer.normalize_gb("W1A4ZZ"));
Assert.assertEquals("M34", ZipcodeNormalizer.normalize_gb("M34 4AB"));
Assert.assertEquals("M34", ZipcodeNormalizer.normalize_gb("M344AB"));
Assert.assertEquals("GIR", ZipcodeNormalizer.normalize_gb("GIR 0AA"));
Assert.assertEquals("GIR", ZipcodeNormalizer.normalize_gb("GIR0AA"));
Assert.assertEquals("ASCN", ZipcodeNormalizer.normalize_gb("ASCN 1ZZ"));
Assert.assertEquals("ASCN", ZipcodeNormalizer.normalize_gb("ASCN1ZZ"));
Assert.assertEquals("STHL", ZipcodeNormalizer.normalize_gb("STHL 1ZZ"));
Assert.assertEquals("STHL", ZipcodeNormalizer.normalize_gb("STHL1ZZ"));
Assert.assertEquals("SIQQ", ZipcodeNormalizer.normalize_gb("SIQQ 1ZZ"));
Assert.assertEquals("SIQQ", ZipcodeNormalizer.normalize_gb("SIQQ1ZZ"));
// zip +text
Assert.assertEquals("foo DN16 bar", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar "));
Assert.assertEquals("foo DN16 bar", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar "));
Assert.assertEquals("foo DN16 bar", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar"));
Assert.assertEquals("foo DN16 bar", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar"));
// double
Assert.assertEquals("foo DN16 bar DN16", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar DN16 9AA"));
Assert.assertEquals("foo DN16 bar DN16", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar DN16 9AA"));
Assert.assertEquals("foo DN16 bar DN16", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar DN16 9AA"));
Assert.assertEquals("foo DN16 bar", ZipcodeNormalizer.normalize_gb("foo DN16 9AA bar"));
}
@Test
public void noramlizeShouldHandleCountryCorrectly() {
Assert.assertNull(ZipcodeNormalizer.normalize(null, null));
//with code
Assert.assertEquals("H3Z", ZipcodeNormalizer.normalize("H3Z 2Y7", "CA"));
Assert.assertEquals("DN16", ZipcodeNormalizer.normalize("DN16 9AA", "GB"));
//with empy code
Assert.assertEquals("H3Z", ZipcodeNormalizer.normalize("H3Z 2Y7", ""));
Assert.assertEquals("DN16", ZipcodeNormalizer.normalize("DN16 9AA", ""));
Assert.assertEquals("DN16 H3Z", ZipcodeNormalizer.normalize("DN16 9AA H3Z 2Y7", ""));
//with null code
Assert.assertEquals("H3Z", ZipcodeNormalizer.normalize("H3Z 2Y7", null));
Assert.assertEquals("DN16", ZipcodeNormalizer.normalize("DN16 9AA", null));
Assert.assertEquals("DN16 H3Z", ZipcodeNormalizer.normalize("DN16 9AA H3Z 2Y7", null));
//with unknow code
Assert.assertEquals("foo", ZipcodeNormalizer.normalize("foo", "XX"));
}
}