X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=test%2Fx_plane_data_SUITE.erl;h=3729601ed71c333778c5bafdc8f1771f5fd04d6a;hb=84fa8ccb7143428a0aa49ceeb632ff45b374d8b8;hp=d5bef9b695f84e555a308d4d3e94cf21ae20c805;hpb=07ba60a5e3ff3cf3b8e96ff49bb27ac3c6b46ba6;p=erlang-x-plane-data.git diff --git a/test/x_plane_data_SUITE.erl b/test/x_plane_data_SUITE.erl index d5bef9b..3729601 100644 --- a/test/x_plane_data_SUITE.erl +++ b/test/x_plane_data_SUITE.erl @@ -1,5 +1,9 @@ -module(x_plane_data_SUITE). +-include_lib("x_plane_data_group_lat_lon_alt.hrl"). +-include_lib("x_plane_data_group_pitch_roll_heading.hrl"). +-include_lib("x_plane_data_group_speeds.hrl"). + %% CT callbacks -export( [ all/0 @@ -8,7 +12,8 @@ %% Test cases -export( - [ t_basic_sanity_check/1 + [ t_bin_to_raw/1 + , t_bin_to_raw_to_named/1 ]). -define(GROUP, x_plane_data). @@ -23,7 +28,8 @@ all() -> groups() -> Tests = - [ t_basic_sanity_check + [ t_bin_to_raw + , t_bin_to_raw_to_named ], Properties = [parallel], [ {?GROUP, Properties, Tests} @@ -34,7 +40,7 @@ groups() -> %% Test cases %% ============================================================================= -t_basic_sanity_check(_Cfg) -> +t_bin_to_raw(_Cfg) -> Test = fun (PacketBase64) -> Packet = base64:decode(PacketBase64), @@ -42,11 +48,82 @@ t_basic_sanity_check(_Cfg) -> x_plane_data_raw:of_bin(<<"bad-header", Packet/binary>>), {error, packet_bad_length} = x_plane_data_raw:of_bin(<>), - {ok, {_, Groups}} = + {ok, {Index, Groups}} = x_plane_data_raw:of_bin(<>), - {some, {_, _, _, _, _, _, _, _}} = kv_list_find(Groups, 3), - {some, {_, _, _, _, _, _, _, _}} = kv_list_find(Groups, 17), - {some, {_, _, _, _, _, _, _, _}} = kv_list_find(Groups, 20), + ct:log("Index: ~p", [Index]), + ct:log("Groups: ~p", [Groups]), + {some, Group3 } = kv_list_find(Groups, 3), + {some, Group17} = kv_list_find(Groups, 17), + {some, Group20} = kv_list_find(Groups, 20), + { 3.106105089187622 + , 6.640225887298584 + , 6.793502330780029 + , 1.0040892448159866e-5 + , -999.0 + , 3.574441909790039 + , 7.81782341003418 + , 1.1554855518625118e-5 + } = Group3, + { 2.3310465812683105 + , 0.22457626461982727 + , 120.6203384399414 + , 133.51084899902344 + , -999.0 + , -999.0 + , -999.0 + , -999.0 + } = Group17, + { 40.64827346801758 + , -73.81651306152344 + , 7.969515800476074 + , 0.226793110370636 + , 1.0 + , -70.99662780761719 + , 40.0 + , -75.0 + } = Group20, + ok + end, + lists:foreach(Test, sample_packets_base64_encoded()). + +t_bin_to_raw_to_named(_Cfg) -> + Test = + fun (PacketBase64) -> + Packet = base64:decode(PacketBase64), + {ok, DataRaw} = x_plane_data_raw:of_bin(Packet), + ct:log("DataRaw: ~p", [DataRaw]), + {64, _} = DataRaw, + {ok, DataNamed} = x_plane_data_named:of_raw(DataRaw), + ct:log("DataNamed: ~p", [DataNamed]), + {x_plane_data_v10, Groups} = DataNamed, + {some, #x_plane_data_group_speeds + { vind_kias = 3.106105089187622 + , vind_keas = 6.640225887298584 + , vtrue_ktas = 6.793502330780029 + , vtrue_ktgs = 1.0040892448159866e-5 + , vind_mph = 3.574441909790039 + , vtrue_mphas = 7.81782341003418 + , vtrue_mphgs = 1.1554855518625118e-5 + } + } = kv_list_find(Groups, speeds), + {some, #x_plane_data_group_pitch_roll_heading + { pitch_deg = 2.3310465812683105 + , roll_deg = 0.22457626461982727 + , hding_true = 120.6203384399414 + , hding_mag = 133.51084899902344 + } + } = kv_list_find(Groups, pitch_roll_heading), + {some, #x_plane_data_group_lat_lon_alt + { lat_deg = 40.64827346801758 + , lon_deg = -73.81651306152344 + , alt_ftmsl = 7.969515800476074 + , alt_ftagl = 0.226793110370636 + , on_runwy = 1.0 + , alt_ind = -70.99662780761719 + , lat_south = 40.0 + , lon_west = -75.0 + } + } = kv_list_find(Groups, lat_lon_alt), ok end, lists:foreach(Test, sample_packets_base64_encoded()).