public class MaidenheadTests : TestCase { public MaidenheadTests() { base("Maidenhead Tests"); add_test_maidenhead(0.0, 0.0, "JJ00aa"); add_test_maidenhead(90.0, 0.0, "JS00aa"); add_test_maidenhead(0.0, 180.0, "SJ00aa"); add_test_maidenhead(90.0, 180.0, "SS00aa"); add_test_maidenhead(-90.0, 0.0, "JA00aa"); add_test_maidenhead(0.0, -180.0, "AJ00aa"); add_test_maidenhead(-90.0, -180.0, "AA00aa"); add_test_maidenhead(90.0, -180.0, "AS00aa"); add_test_maidenhead(-90.0, 180.0, "SA00aa"); add_test_maidenhead(51.0, 17.0, "JO80lx"); add_test_maidenhead(51.1, 17.1, "JO81nc"); add_test_maidenhead(51.2, 17.2, "JO81oe"); add_test_maidenhead(51.3, 17.3, "JO81ph"); add_test_maidenhead(51.4, 17.4, "JO81qj"); add_test_maidenhead(51.5, 17.5, "JO81sm"); add_test_maidenhead(51.6, 17.6, "JO81to"); add_test_maidenhead(51.7, 17.7, "JO81uq"); add_test_maidenhead(51.8, 17.8, "JO81vt"); add_test_maidenhead(51.9, 17.9, "JO81wv"); add_test_maidenhead(51.99, 17.99, "JO81xx"); add_test_maidenhead(51.1205, 17.0261, "JO81mc"); add_test_maidenhead(37.1104, -5.4932, "IM77gc"); add_test_maidenhead(-30.5377, 22.8516, "KF19kl"); add_test_maidenhead(-27.4613, -65.0391, "FG72lm"); add_test_maidenhead(-24.6168, 136.4063, "PG85ej"); } protected Hamlocator.MaidenheadConverter tested; public override void set_up() { this.tested = new Hamlocator.MaidenheadConverter(); } public void add_test_maidenhead(double lat, double lon, string locator) { add_test (@"Expect location lat:$lat lon:$lon to be $locator", () => { GClue.Location pos = new SimpleLocation(lat, lon); assert_cmpstr(this.tested.location_to_maidenhead(pos), EQ, locator); }); add_test (@"Expect location at $locator to be approx. lat:$lat lon:$lon", () => { GClue.Location pos = this.tested.maidenhead_to_location(locator); assert_nonnull(pos); assert_cmpfloat_with_epsilon(pos.latitude, lat, (1.0/24.0)); assert_cmpfloat_with_epsilon(pos.longitude, lon, (2.0/24.0)); }); } }