<?php
// $Id: earth.test,v 1.1 2008-01-24 22:27:21 bdragon Exp $

/**
 * @file
 * Tests for earth.inc functionality.
 */

require_once (drupal_get_path('module', 'location') .'/earth.inc');

include_once 'location_test_case.php';

class LocationEarthTest extends DrupalTestCase {
  /**
   * Implementation of get_info() for information
   */
  function get_info() {
    return array(
      'name' => t('Location module earth.inc tests'),
      'desc' => t('Test calculations.'),
      'group' => 'Location Module',
    );
  }

  function setUp() {
  }

  function testXYZ() {
    $expected = array(5076436.1926031, 3086400.2318368, 2312685.5571307);
    $result = earth_xyz(31.299, 21.4);
    $this->assert(new ArrayWithinMarginExpectation($expected, 0.01), $result);

    // Taj Mahal
    $expected = array(1179389.7524227, 605469.92806515, 6217918.5984722);
    $result = earth_xyz(27.174858, 78.042383);
    $this->assert(new ArrayWithinMarginExpectation($expected, 0.01), $result, 'Taj Mahal: %s');

    // Four Corners
    $expected = array(-1667195.89356, -1256280.4293852, -6006637.16009);
    $result = earth_xyz(36.999084, -109.045223);
    $this->assert(new ArrayWithinMarginExpectation($expected, 0.01), $result, 'Four Corners: %s');

    // North Magnetic Pole
    $expected = array(-335727.75631839, -2620765.1318567, -5785664.2896111);
    $result = earth_xyz(82.7, -114.4);
    $this->assert(new ArrayWithinMarginExpectation($expected, 0.01), $result, 'North Magnetic Pole: %s');

    // Wall Drug
    $expected = array(-976074.77491191, -942362.77881868, -6211268.2459008);
    $result = earth_xyz(43.993266, -102.241794);
    $this->assert(new ArrayWithinMarginExpectation($expected, 0.01), $result, 'Wall Drug: %s');
  }
}