Ejemplo n.º 1
0
  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());
    }
  }