public void runSampleFile(final FieldModel type, final String inputFile, final String outputFile) throws Exception { final BufferedReader inReader = new BufferedReader(new InputStreamReader(getResource(inputFile))); final BufferedReader outReader = new BufferedReader(new InputStreamReader(getResource(outputFile))); // read header line outReader.readLine(); String line = null; while ((line = inReader.readLine()) != null) { if (line.trim().length() == 0) { break; } final StringTokenizer st = new StringTokenizer(line); final double year = getYear(st.nextToken()); final String heightType = st.nextToken(); final String heightStr = st.nextToken(); final double lat = getLatLon(st.nextToken()); final double lon = getLatLon(st.nextToken()); final GeoMagneticField field = GeoMagneticFieldFactory.getField(type, year); double height = Double.valueOf(heightStr.substring(1)); if (heightStr.startsWith("M")) { // convert from m to km height /= 1000d; } else if (heightStr.startsWith("F")) { // convert from feet to km height *= 3.048e-4; } final GeoMagneticElements ge = field.calculateField(lat, lon, height); final String validateLine = outReader.readLine(); // geocentric altitude is not yet supported, ignore by now if (!heightType.startsWith("C")) { validate(ge, validateLine); } String geString = ge.toString(); Assert.assertNotNull(geString); Assert.assertFalse(geString.isEmpty()); } }