blob: f4d6112dbf335a65d1b96350c546656e00a2ebdd [file] [log] [blame]
// NeighborUtilityTest.java
package org.eclipse.stem.internal.data.utility;
/*******************************************************************************
* Copyright (c) 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
import java.util.List;
import org.eclipse.stem.definitions.adapters.spatial.geo.LatLongDataProvider;
import org.eclipse.stem.definitions.adapters.spatial.geo.PlatformLatLongDataProvider;
/**
* This class is a utility that uses JUnit test to provide the execution
* environment. This is easier then writing a view that that the user has to
* open.
*
* It will access the specified geography files and calculate Neighbors either
* within a country or between countries.
*
* See NeighborUtility for instructions of how to run this utility as a JUnit
* plugin.
*
* @see NeighborUtility
* @see PlatformLatLongDataProvider
*
*/
public class NeighborUtilityTest {
/**
* Passed to NeighborUtility
*/
protected LatLongDataProvider fixture;
/**
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() {
setFixture(new PlatformLatLongDataProvider());
System.out.println("NeighborUtilityTest: baseFolder="
+ NeighborUtility.baseFolder);
System.out.println("NeighborUtilityTest: outputFolder="
+ NeighborUtility.getPropertyFolder());
}
/**
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() {
setFixture(null);
}
private PlatformLatLongDataProvider getFixture() {
return (PlatformLatLongDataProvider) fixture;
} // getFixture
protected final void setFixture(final LatLongDataProvider fixture) {
this.fixture = fixture;
} // setFixture
/**
* Run whatever tests are not commented out
*
*/
public void testRun() {
try {
NeighborUtility.DEBUG = false;
// System.out.println("tstInternalNeighbors");
// tstInternalNeighbors("GRC"); // Greece
// tstInternalNeighbors("BRA"); // Brazil
// tstInternalNeighbors("USA");
// System.out.println("tstNeighbors2");
// tstNeighbors2("ALB","GRC");
//
// DOAll true will cause the list generated
// by DoWorld to be used to DoAllBorders
// boolean doAll = true;
// System.out.println("tstDoWorld doAll="+doAll);
// tstDoWorld(doAll);
//
System.out.println("tstDoAllInternal");
tstDoAllInternal();
// generate all bordering countries
// using the previous generated ZZZ file
// System.out.println("tstDoAllBorders");
// tstDoAllBorders();
} catch (final Throwable e) {
e.printStackTrace();
}
}
/**
* Run a test of the neightborCheck method with a single Map so that it
* generates a properties file for the internal neighbors.
*
* @param admin0
* 3 char country to be processed
*
*/
public void tstInternalNeighbors(final String admin0) {
final PlatformLatLongDataProvider fixture = getFixture();
// @SuppressWarnings("unused")
// String admin0 = "MEX";
final String admin = NeighborUtility.getAdmin(admin0);
System.out.println(admin0 + ":" + admin);
// String test =
// "platform:/plugin/org.eclipse.stem.geography/resources/data/geo/country/USA/USA_2_MAP.xml";
// System.out.println(test);
final List<String[]> list = NeighborUtility.neighborCheck(fixture,
admin0, admin);
NeighborUtility.writeProperties(list, admin0, admin, admin0, admin);
NeighborUtility.statistics();
} // testNeighbors
/**
* Run a test of the neightborCheck method with maps of 2 bordering
* countries so that it generates a properties file for the bordering
* neighbors.
*
* @param admin0A
* 3 char country to be processed
* @param admin0B
* 3 char country to be processed
*
*
*/
public void tstNeighbors2(final String admin0A, final String admin0B) {
final PlatformLatLongDataProvider fixture = getFixture();
final String adminA = NeighborUtility.getAdmin(admin0A);
final String adminB = NeighborUtility.getAdmin(admin0B);
System.out.println(admin0A + ":" + adminA + " - " + admin0B + ":"
+ adminB);
final List<String[]> list = NeighborUtility.neighborCheck(fixture,
admin0A, adminA, admin0B, adminB);
NeighborUtility.writeProperties(list, admin0A, adminA, admin0B, adminB);
NeighborUtility.statistics();
}
/**
* Run a test of building the ZZZ0_ZZZ0 map to select all the worlds
* neighbors (or some subset)
*
* From ZZZ AFG CHN (Afghanistan and China)
*
* create AFG2_CHN2
*
*
*
* @param doAll
* if true then also generate border property files for everyone
* and her neighbor
*/
public void tstDoWorld(final boolean doAll) {
final PlatformLatLongDataProvider fixture = getFixture();
final List<String[]> list = NeighborUtility.doWorld(fixture, doAll);
if (doAll) {
NeighborUtility.doAllBorders(fixture, list);
}
} // testDoWorld
/**
* Run a test of the neightborCheck method using the ZZZ0_ZZZ0 map to select
* all the worlds neighbors (or some subset)
*
* From ZZZ AFG CHN (Afghanistan and China) create AFG2_AFG2 create
* CHN2_CHN2
*
*
*
*
*/
public void tstDoAllInternal() {
final PlatformLatLongDataProvider fixture = getFixture();
NeighborUtility.doAllInternal(fixture);
} // testDoAllInternal
/**
* Run a test of the neightborCheck method using the ZZZ0_ZZZ0 map to select
* all the worlds neighbors (or some subset)
*
* From ZZZ AFG CHN (Afghanistan and China)
*
* create AFG2_CHN2
*
*
*
*
*/
public void tstDoAllBorders() {
final PlatformLatLongDataProvider fixture = getFixture();
NeighborUtility.doAllBorders(fixture);
} // testDoAllNeighbors
}