X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Ftest%2Fao_aprs_test.c;h=86cf527ae2f4c7219e376135b357aad327a6f14d;hp=b1d17d3f32a42e9d72eda827be88a52e0a6d3640;hb=12c408c5aa1d234fe9c946078d8a343b4fda7ebb;hpb=a7b0a5613c8e59b4c672b21f8d0890fd5cffd4dc diff --git a/src/test/ao_aprs_test.c b/src/test/ao_aprs_test.c index b1d17d3f..86cf527a 100644 --- a/src/test/ao_aprs_test.c +++ b/src/test/ao_aprs_test.c @@ -97,9 +97,36 @@ audio_gap(int secs) #endif } +#include + +int +ao_aprs_encode_altitude_expensive(int meters) +{ + double feet = meters / 0.3048; + + double encode = log(feet) / log(1.002); + return floor(encode + 0.5); +} + // This is where we go after reset. int main(int argc, char **argv) { + int e, x; + int a; + + for (a = 1; a < 100000; a++) { + e = ao_aprs_encode_altitude(a); + x = ao_aprs_encode_altitude_expensive(a); + + if (e != x) { + double back_feet, back_meters; + back_feet = pow(1.002, e); + back_meters = back_feet * 0.3048; + fprintf (stderr, "APRS altitude encoding failure: altitude %d actual %d expected %d actual meters %f\n", + a, e, x, back_meters); + } + } + audio_gap(1); ao_gps_data.latitude = (45.0 + 28.25 / 60.0) * 10000000;