From a876d71b0d2948c78ced32b138b130457fba3283 Mon Sep 17 00:00:00 2001 From: Emmie Le Roy <47359313+emmleroy@users.noreply.github.com> Date: Thu, 25 Jun 2026 11:00:06 -0400 Subject: [PATCH] Add modulair-X rawsd and cloudapi data to tests --- .../SN000-063-db-file1.csv} | 0 .../SN000-063-db-file2.csv} | 0 tests/files/{ => arisense/ref}/ref.csv | 0 ...file1.csv => MOD-PM-00001-rawsd-file1.csv} | 0 ...file2.csv => MOD-PM-00001-rawsd-file2.csv} | 0 .../modulair-x/MOD-X-00891-rawsd-file1.csv | 9 ++ .../modulair-x/MOD-X-00891-rawsd-file2.csv | 15 ++++ .../modulair-x/MOD-X-00993-cloudapi-file1.csv | 28 ++++++ .../modulair-x/MOD-X-00993-cloudapi-file2.csv | 32 +++++++ .../{MOD-final.csv => MOD-00014-db-final.csv} | 2 +- .../{MOD-raw.csv => MOD-00014-db-raw.csv} | 2 +- tests/test_clean.py | 45 +++++++++- tests/test_concat.py | 83 ++++++++++++++--- tests/test_expunge.py | 68 +++++++++++--- tests/test_flag.py | 87 +++++++++++++++++- tests/test_merge.py | 89 ++++++++++++++++--- tests/test_resample.py | 4 +- 17 files changed, 422 insertions(+), 42 deletions(-) rename tests/files/{lcs-1.csv => arisense/SN000-063-db-file1.csv} (100%) rename tests/files/{lcs-2.csv => arisense/SN000-063-db-file2.csv} (100%) rename tests/files/{ => arisense/ref}/ref.csv (100%) rename tests/files/modulair-pm/{file1.csv => MOD-PM-00001-rawsd-file1.csv} (100%) rename tests/files/modulair-pm/{file2.csv => MOD-PM-00001-rawsd-file2.csv} (100%) create mode 100644 tests/files/modulair-x/MOD-X-00891-rawsd-file1.csv create mode 100644 tests/files/modulair-x/MOD-X-00891-rawsd-file2.csv create mode 100644 tests/files/modulair-x/MOD-X-00993-cloudapi-file1.csv create mode 100644 tests/files/modulair-x/MOD-X-00993-cloudapi-file2.csv rename tests/files/modulair/{MOD-final.csv => MOD-00014-db-final.csv} (99%) rename tests/files/modulair/{MOD-raw.csv => MOD-00014-db-raw.csv} (99%) diff --git a/tests/files/lcs-1.csv b/tests/files/arisense/SN000-063-db-file1.csv similarity index 100% rename from tests/files/lcs-1.csv rename to tests/files/arisense/SN000-063-db-file1.csv diff --git a/tests/files/lcs-2.csv b/tests/files/arisense/SN000-063-db-file2.csv similarity index 100% rename from tests/files/lcs-2.csv rename to tests/files/arisense/SN000-063-db-file2.csv diff --git a/tests/files/ref.csv b/tests/files/arisense/ref/ref.csv similarity index 100% rename from tests/files/ref.csv rename to tests/files/arisense/ref/ref.csv diff --git a/tests/files/modulair-pm/file1.csv b/tests/files/modulair-pm/MOD-PM-00001-rawsd-file1.csv similarity index 100% rename from tests/files/modulair-pm/file1.csv rename to tests/files/modulair-pm/MOD-PM-00001-rawsd-file1.csv diff --git a/tests/files/modulair-pm/file2.csv b/tests/files/modulair-pm/MOD-PM-00001-rawsd-file2.csv similarity index 100% rename from tests/files/modulair-pm/file2.csv rename to tests/files/modulair-pm/MOD-PM-00001-rawsd-file2.csv diff --git a/tests/files/modulair-x/MOD-X-00891-rawsd-file1.csv b/tests/files/modulair-x/MOD-X-00891-rawsd-file1.csv new file mode 100644 index 0000000..bfc5713 --- /dev/null +++ b/tests/files/modulair-x/MOD-X-00891-rawsd-file1.csv @@ -0,0 +1,9 @@ +deviceModel,MODULAIR +deviceID,0a10aced202194944a061e7c +deviceSN,MOD-X-00891 +timestamp,fw,flag,soc,sample_temp,sample_rh,bin0,bin1,bin2,bin3,bin4,bin5,bin6,bin7,bin8,bin9,bin10,bin11,bin12,bin13,bin14,bin15,bin16,bin17,bin18,bin19,bin20,bin21,bin22,bin23,bin1MToF,bin3MToF,bin5MToF,bin7MToF,opc_sample_period,opc_sample_flow,opc_temp,opc_rh,opc_pm1,opc_pm25,opc_pm10,opc_laser_status,neph_bin0,neph_bin1,neph_bin2,neph_bin3,neph_bin4,neph_bin5,neph_pm1_std,neph_pm25_std,neph_pm10_std,neph_pm1_env,neph_pm25_env,neph_pm10_env,dd_operating_state,dd_measurement_state,wx_ws,wx_wd,wx_ws_scalar,wx_u,wx_v,wx_pressure,wx_temp,wx_rh,wx_dew_point,co_we,co_ae,no_we,no_ae,no2_we,no2_ae,o3_we,o3_ae, +2026-04-14T17:19:54Z,14,16390,100.0,32.4,31.6,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,4194982.00,3.700,37.91,24.42,0.00,0.00,0.00,623,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,0,0,nan,nan,nan,nan,nan,nan,nan,nan,nan,673.12,658.62,679.88,668.56,1645.88,1650.19,1653.56,1638.44, +2026-04-14T17:19:59Z,14,0,100.0,32.5,31.1,6.9167,0.5734,0.1792,0.1434,0.1075,0.0358,0.0358,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.6667,11.6667,12.6667,0.0000,5.24,5.320,37.91,24.42,1.32,2.85,3.66,621,199.00,130.00,8.00,0.00,0.00,0.00,3.00,3.00,3.00,3.00,3.00,3.00,0,1,1.540,171.00,1.540,0.2409,-1.5210,1010.30,28.30,40.70,13.70,676.31,660.75,703.12,693.88,1644.94,1649.50,1652.94,1638.44, +2026-04-14T17:20:04Z,14,0,100.0,32.4,31.1,6.1102,0.6829,0.1078,0.0000,0.0359,0.0719,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.3333,0.0000,11.6667,0.0000,5.01,5.550,37.91,24.41,1.02,1.86,2.15,621,283.00,189.00,6.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0,1,0.720,169.00,0.720,0.1374,-0.7068,1010.40,28.40,40.70,13.70,674.75,659.25,691.25,687.94,1645.12,1649.06,1653.31,1638.00, +2026-04-14T17:20:09Z,14,0,100.0,32.4,31.1,5.3532,0.6233,0.2567,0.0733,0.1833,0.1833,0.0000,0.0000,0.0000,0.0367,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.6667,10.6667,10.6667,0.0000,4.99,5.470,37.88,24.40,1.28,4.04,14.50,622,280.00,195.00,2.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0,1,0.470,207.00,0.470,-0.2134,-0.4188,1010.40,28.50,40.60,13.80,673.88,654.94,702.12,698.50,1645.88,1649.25,1653.88,1638.19, +2026-04-14T17:20:14Z,14,0,100.0,32.5,31.1,5.3181,0.5135,0.1834,0.0734,0.0734,0.0734,0.0734,0.0000,0.0734,0.0367,0.0367,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.6667,15.0000,10.6667,0.0000,5.01,5.440,37.91,24.34,1.05,4.13,40.90,620,278.00,205.00,0.00,0.00,0.00,0.00,0.00,2.00,2.00,0.00,2.00,2.00,0,1,0.360,201.00,0.360,-0.1290,-0.3361,1010.40,28.50,40.50,13.80,672.38,653.56,686.94,686.06,1646.06,1649.50,1654.56,1637.81, \ No newline at end of file diff --git a/tests/files/modulair-x/MOD-X-00891-rawsd-file2.csv b/tests/files/modulair-x/MOD-X-00891-rawsd-file2.csv new file mode 100644 index 0000000..53b9f98 --- /dev/null +++ b/tests/files/modulair-x/MOD-X-00891-rawsd-file2.csv @@ -0,0 +1,15 @@ +deviceModel,MODULAIR +deviceID,0a10aced202194944a061e7c +deviceSN,MOD-X-00891 +timestamp,fw,flag,soc,sample_temp,sample_rh,bin0,bin1,bin2,bin3,bin4,bin5,bin6,bin7,bin8,bin9,bin10,bin11,bin12,bin13,bin14,bin15,bin16,bin17,bin18,bin19,bin20,bin21,bin22,bin23,bin1MToF,bin3MToF,bin5MToF,bin7MToF,opc_sample_period,opc_sample_flow,opc_temp,opc_rh,opc_pm1,opc_pm25,opc_pm10,opc_laser_status,neph_bin0,neph_bin1,neph_bin2,neph_bin3,neph_bin4,neph_bin5,neph_pm1_std,neph_pm25_std,neph_pm10_std,neph_pm1_env,neph_pm25_env,neph_pm10_env,dd_operating_state,dd_measurement_state,wx_ws,wx_wd,wx_ws_scalar,wx_u,wx_v,wx_pressure,wx_temp,wx_rh,wx_dew_point,co_we,co_ae,no_we,no_ae,no2_we,no2_ae,o3_we,o3_ae, +2026-04-14T17:20:19Z,14,0,100.0,32.4,31.1,6.6561,0.5368,0.2505,0.0358,0.1074,0.1074,0.0358,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.0000,10.3333,9.6667,0.0000,5.00,5.590,37.92,24.31,1.26,3.27,4.34,621,275.00,214.00,0.00,0.00,0.00,0.00,0.00,2.00,2.00,0.00,2.00,2.00,0,1,1.210,176.00,1.210,0.0844,-1.2071,1010.40,28.60,40.30,13.80,671.44,652.19,694.88,691.50,1646.06,1649.81,1654.69,1637.56, +2026-04-14T17:20:24Z,14,0,100.0,32.4,31.0,5.1015,0.6151,0.1447,0.0724,0.0724,0.0362,0.0362,0.0000,0.0000,0.0000,0.0000,0.0000,0.0362,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.6667,11.6667,12.6667,0.0000,5.00,5.530,37.94,24.33,1.00,2.27,28.88,621,276.00,224.00,0.00,0.00,0.00,0.00,0.00,2.00,2.00,0.00,2.00,2.00,0,1,1.060,255.00,1.060,-1.0239,-0.2743,1010.40,28.60,40.20,13.80,669.81,648.12,696.00,693.00,1646.44,1649.56,1654.88,1637.69, +2026-04-14T17:20:29Z,14,0,100.0,32.4,31.0,5.4623,0.4734,0.1092,0.1092,0.1821,0.1457,0.1092,0.0000,0.0364,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.6667,10.6667,11.3333,0.0000,5.00,5.490,37.96,24.35,1.19,5.23,12.65,621,285.00,235.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0,1,1.370,140.00,1.370,0.8806,-1.0495,1010.40,28.70,40.00,13.70,667.75,644.44,693.25,689.62,1646.06,1649.31,1654.88,1637.62, +2026-04-14T17:20:34Z,14,0,100.0,32.4,31.0,5.5076,0.1788,0.1073,0.0000,0.0715,0.0715,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0358,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,7.6667,0.0000,11.6667,0.0000,5.01,5.580,38.01,24.28,0.84,1.81,27.62,621,283.00,233.00,0.00,0.00,0.00,0.00,1.00,2.00,2.00,1.00,2.00,2.00,0,1,1.890,145.00,1.890,1.0841,-1.5482,1010.40,28.70,40.00,13.70,667.50,643.69,701.75,699.56,1646.25,1649.25,1654.88,1637.44, +2026-04-14T17:20:39Z,14,0,100.0,32.4,31.0,6.1425,0.3530,0.3177,0.1059,0.0706,0.0706,0.0000,0.0000,0.0000,0.0353,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.0000,10.3333,11.0000,0.0000,5.00,5.670,37.99,24.23,1.20,2.57,12.21,622,274.00,226.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0,1,1.740,125.00,1.740,1.4253,-0.9980,1010.40,28.70,39.90,13.70,666.75,643.06,690.38,688.25,1646.38,1649.06,1655.06,1637.69, +2026-04-14T17:20:44Z,14,8,100.0,0.0,0.0,6.0002,0.5114,0.1023,0.0341,0.1023,0.0682,0.0682,0.0341,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,7.6667,14.0000,10.3333,11.3333,5.00,5.870,38.02,24.23,1.06,3.55,6.83,621,271.00,228.00,0.00,0.00,0.00,0.00,1.00,2.00,2.00,1.00,2.00,2.00,0,1,1.390,116.00,1.390,1.2493,-0.6093,1010.40,28.70,39.90,13.80,665.06,643.94,697.38,695.06,1646.62,1649.25,1655.19,1637.31, +2026-04-14T17:20:49Z,14,0,100.0,32.5,31.0,4.1129,0.2719,0.1020,0.0340,0.0340,0.0340,0.0000,0.0340,0.0000,0.0000,0.0000,0.0340,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.3333,9.0000,14.6667,13.3333,5.03,5.850,38.05,24.25,0.69,1.69,24.15,621,266.00,226.00,2.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0,1,2.230,121.00,2.230,1.9115,-1.1485,1010.40,28.80,39.80,13.80,664.12,643.88,688.12,686.50,1646.19,1648.56,1655.25,1637.44, +2026-04-14T17:20:54Z,14,0,100.0,32.4,31.0,5.6537,0.4267,0.0711,0.0356,0.0000,0.1067,0.1067,0.0000,0.0356,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,9.3333,8.6667,11.0000,0.0000,5.01,5.610,38.08,24.20,0.92,3.69,10.68,621,266.00,222.00,2.00,0.00,0.00,0.00,1.00,2.00,2.00,1.00,2.00,2.00,0,1,1.200,160.00,1.200,0.4104,-1.1276,1010.40,28.80,39.70,13.80,663.44,642.81,697.88,694.62,1646.44,1649.31,1655.44,1637.44, +2026-04-14T17:20:59Z,14,0,100.0,32.4,31.0,5.4284,0.3954,0.1078,0.0000,0.1438,0.0359,0.0359,0.0359,0.0000,0.0000,0.0359,0.0000,0.0359,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.6667,0.0000,1.6667,12.0000,5.00,5.560,38.09,24.16,0.95,2.95,46.76,621,261.00,215.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0,1,0.150,228.00,0.150,-0.1115,-0.1004,1010.40,28.90,39.60,13.80,662.81,642.06,697.62,695.69,1646.69,1649.25,1655.62,1637.50, +2026-04-14T17:21:04Z,14,0,100.0,32.4,31.0,5.8796,0.3188,0.1771,0.2125,0.0708,0.2125,0.0000,0.0000,0.0354,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.0000,9.3333,11.0000,0.0000,5.00,5.650,38.09,24.22,1.25,4.15,9.80,621,243.00,199.00,0.00,0.00,0.00,0.00,1.00,2.00,2.00,1.00,2.00,2.00,0,1,0.080,229.00,0.080,-0.0604,-0.0525,1010.40,28.90,39.50,13.80,661.94,640.38,696.12,693.00,1646.62,1648.88,1655.25,1637.25, +2026-04-14T17:21:09Z,14,0,100.0,32.4,31.0,5.4742,0.7369,0.5615,0.1404,0.4562,0.1755,0.0702,0.0000,0.0351,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,8.3333,10.0000,11.3333,0.0000,5.03,5.670,38.11,24.13,1.85,6.96,13.83,619,236.00,190.00,0.00,0.00,0.00,0.00,1.00,2.00,2.00,1.00,2.00,2.00,0,1,0.790,160.00,0.790,0.2702,-0.7424,1010.40,29.00,39.50,13.80,661.50,639.75,699.19,697.00,1646.81,1649.12,1655.25,1637.25, \ No newline at end of file diff --git a/tests/files/modulair-x/MOD-X-00993-cloudapi-file1.csv b/tests/files/modulair-x/MOD-X-00993-cloudapi-file1.csv new file mode 100644 index 0000000..6a85b1e --- /dev/null +++ b/tests/files/modulair-x/MOD-X-00993-cloudapi-file1.csv @@ -0,0 +1,28 @@ +particle_published_at,api_received_at,db_created_at,db_updated_at,bin0,bin1,bin2,bin3,bin4,bin5,bin6,bin7,bin8,bin9,bin10,bin11,bin12,bin13,bin14,bin15,bin16,bin17,bin18,bin19,bin20,bin21,bin22,bin23,opc_pm1,opc_pm25,opc_pm10,pm1_env,pm25_env,pm10_env,neph_bin0,dd_operating_state,co_we,co_ae,no_we,no_ae,no2_we,no2_ae,o3_we,o3_ae,co_diff,no_diff,no2_diff,ox_diff,wx_ws,wx_wd,wx_u,wx_v,wx_ws_scalar,wx_temp,wx_rh,wx_pressure,wx_dew_point,timestamp,timestamp_local,timezone,fw,flag,lat,lon,sample_temp,sample_rh,device_state,id,sn +2025-09-09 18:59:45.330000+00:00,2025-09-09 18:59:45.496709+00:00,2025-09-09 18:59:45.628129+00:00,2025-09-09 18:59:45.628164+00:00,1.7278,0.1907,0.0904,0.0163,0.0289,0.0131,0.0032,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.36,0.72,1.28,0.0,0.0,0.0,48.33,0,747.9,626.0,696.5,676.5,1648.4,1648.4,1647.2,1644.2,121.89999999999998,20.0,0.0,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:57:48,2025-09-09 18:57:48,,6,0,,,23.2,48.6,PRE-REGISTERED,7900143,MOD-X-00993 +2025-09-09 18:59:45.330000+00:00,2025-09-09 18:59:45.496709+00:00,2025-09-09 18:59:45.636220+00:00,2025-09-09 18:59:45.636256+00:00,1.7015,0.2312,0.0616,0.0196,0.0066,0.0,0.0066,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0066,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.32,0.52,4.69,0.0,0.0,0.0,42.33,0,748.8,628.7,697.9,677.7,1648.4,1648.5,1647.1,1643.8,120.09999999999991,20.199999999999932,-0.09999999999990905,-1.300000000000182,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:56:48,2025-09-09 18:56:48,,6,0,,,23.3,48.6,PRE-REGISTERED,7900144,MOD-X-00993 +2025-09-09 18:59:45.330000+00:00,2025-09-09 18:59:45.496709+00:00,2025-09-09 18:59:45.644533+00:00,2025-09-09 18:59:45.644569+00:00,1.686,0.2561,0.0577,0.0168,0.0136,0.0134,0.0033,0.0102,0.0202,0.0103,0.0,0.0068,0.0033,0.0,0.0034,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.34,1.0,15.78,0.0,0.0,0.0,41.0,0,749.8,627.6,697.5,677.4,1648.5,1648.4,1647.1,1644.2,122.19999999999993,20.100000000000023,0.09999999999990905,-1.400000000000091,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:55:48,2025-09-09 18:55:48,,6,0,,,23.2,48.8,PRE-REGISTERED,7900145,MOD-X-00993 +2025-09-09 18:59:45.330000+00:00,2025-09-09 18:59:45.496709+00:00,2025-09-09 18:59:45.620741+00:00,2025-09-09 18:59:45.620793+00:00,1.5629,0.1577,0.066,0.0132,0.0131,0.0099,0.0099,0.0032,0.0066,0.0065,0.0,0.0,0.0033,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3,0.75,8.48,0.0,0.0,0.0,43.67,0,749.2,627.7,695.7,676.0,1648.4,1648.4,1647.3,1644.0,121.5,19.700000000000045,0.0,-1.1000000000001364,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:54:48,2025-09-09 18:54:48,,6,0,,,23.2,48.8,PRE-REGISTERED,7900142,MOD-X-00993 +2025-09-09 18:59:45.330000+00:00,2025-09-09 18:59:45.496709+00:00,2025-09-09 18:59:45.612949+00:00,2025-09-09 18:59:45.612983+00:00,1.5514,0.1864,0.08,0.0064,0.016,0.0096,0.0032,0.0033,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.31,0.62,1.34,0.0,0.0,0.0,39.17,0,749.2,627.8,696.0,676.0,1648.3,1648.2,1647.0,1643.9,121.40000000000009,20.0,0.09999999999990905,-1.2999999999999545,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:53:48,2025-09-09 18:53:48,,6,0,,,23.2,48.7,PRE-REGISTERED,7900141,MOD-X-00993 +2025-09-09 18:54:45.116000+00:00,2025-09-09 18:54:45.272027+00:00,2025-09-09 18:54:45.427676+00:00,2025-09-09 18:54:45.427715+00:00,1.49,0.1717,0.0728,0.022,0.0129,0.0032,0.0,0.0,0.0033,0.0033,0.0033,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3,0.5,5.1,0.0,0.0,0.0,43.67,0,749.1,627.1,697.4,677.4,1648.4,1648.5,1647.2,1644.1,122.0,20.0,-0.09999999999990905,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:52:48,2025-09-09 18:52:48,,6,0,,,23.2,48.8,PRE-REGISTERED,7899776,MOD-X-00993 +2025-09-09 18:54:45.116000+00:00,2025-09-09 18:54:45.272027+00:00,2025-09-09 18:54:45.420159+00:00,2025-09-09 18:54:45.420207+00:00,1.3959,0.1757,0.0638,0.0128,0.0128,0.0032,0.0,0.0,0.0,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.41,1.81,0.0,0.0,0.0,44.67,0,748.7,626.7,697.5,677.6,1648.5,1648.6,1647.2,1644.1,122.0,19.899999999999977,-0.09999999999990905,-1.2999999999999545,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:51:48,2025-09-09 18:51:48,,6,0,,,23.2,48.7,PRE-REGISTERED,7899775,MOD-X-00993 +2025-09-09 18:54:45.116000+00:00,2025-09-09 18:54:45.272027+00:00,2025-09-09 18:54:45.398525+00:00,2025-09-09 18:54:45.398561+00:00,1.3718,0.1787,0.0634,0.0127,0.0158,0.0063,0.0,0.0,0.0,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.45,1.83,0.0,0.0,0.0,43.33,0,749.6,627.0,697.0,677.0,1648.5,1648.3,1647.2,1644.1,122.60000000000002,20.0,0.20000000000004547,-1.2999999999999545,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:50:48,2025-09-09 18:50:48,,6,0,,,23.2,48.8,PRE-REGISTERED,7899772,MOD-X-00993 +2025-09-09 18:54:45.116000+00:00,2025-09-09 18:54:45.272027+00:00,2025-09-09 18:54:45.405910+00:00,2025-09-09 18:54:45.405946+00:00,1.5243,0.133,0.0761,0.0032,0.0031,0.0063,0.0,0.0,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.39,1.25,0.0,0.0,0.0,38.17,0,749.4,627.3,696.1,676.2,1648.3,1648.4,1647.4,1644.2,122.10000000000002,19.899999999999977,-0.10000000000013642,-0.8999999999998636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:49:48,2025-09-09 18:49:48,,6,0,,,23.2,48.8,PRE-REGISTERED,7899773,MOD-X-00993 +2025-09-09 18:54:45.116000+00:00,2025-09-09 18:54:45.272027+00:00,2025-09-09 18:54:45.413014+00:00,2025-09-09 18:54:45.413049+00:00,1.5358,0.1823,0.0519,0.0162,0.0064,0.0033,0.0033,0.0,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.44,1.38,0.0,0.0,0.0,44.0,0,749.8,628.4,696.9,677.1,1648.5,1648.5,1647.2,1644.2,121.39999999999998,19.799999999999955,0.0,-1.2999999999999545,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:48:48,2025-09-09 18:48:48,,6,0,,,23.2,48.8,PRE-REGISTERED,7899774,MOD-X-00993 +2025-09-09 18:49:44.941000+00:00,2025-09-09 18:49:45.112786+00:00,2025-09-09 18:49:45.274060+00:00,2025-09-09 18:49:45.274098+00:00,1.4055,0.1916,0.0457,0.0163,0.0099,0.0066,0.0,0.0032,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.27,0.49,1.87,0.0,0.0,0.0,42.0,0,748.9,626.1,697.6,677.7,1648.6,1648.3,1647.2,1644.3,122.79999999999995,19.899999999999977,0.2999999999999545,-1.3999999999998636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:47:48,2025-09-09 18:47:48,,6,0,,,23.2,48.9,PRE-REGISTERED,7899415,MOD-X-00993 +2025-09-09 18:49:44.941000+00:00,2025-09-09 18:49:45.112786+00:00,2025-09-09 18:49:45.249858+00:00,2025-09-09 18:49:45.249892+00:00,1.4169,0.1601,0.0384,0.0161,0.0097,0.0032,0.0031,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26,0.44,0.95,0.0,0.0,0.0,41.0,0,749.5,627.4,697.1,677.1,1648.4,1648.3,1647.3,1644.0,122.10000000000002,20.0,0.10000000000013642,-1.1000000000001364,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:46:48,2025-09-09 18:46:48,,6,0,,,23.2,48.9,PRE-REGISTERED,7899412,MOD-X-00993 +2025-09-09 18:49:44.941000+00:00,2025-09-09 18:49:45.112786+00:00,2025-09-09 18:49:45.257725+00:00,2025-09-09 18:49:45.257756+00:00,1.5892,0.1806,0.0428,0.023,0.0197,0.0033,0.0,0.0,0.0066,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3,0.53,1.44,0.0,0.0,0.0,38.67,0,749.7,627.2,696.9,676.8,1648.4,1648.4,1647.2,1644.1,122.5,20.100000000000023,0.0,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:45:48,2025-09-09 18:45:48,,6,0,,,23.2,48.9,PRE-REGISTERED,7899413,MOD-X-00993 +2025-09-09 18:49:44.941000+00:00,2025-09-09 18:49:45.112786+00:00,2025-09-09 18:49:45.242186+00:00,2025-09-09 18:49:45.242221+00:00,1.4971,0.1754,0.053,0.0132,0.01,0.0066,0.0,0.0033,0.0,0.0,0.0,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.47,3.02,0.0,0.0,0.0,42.33,0,749.4,627.7,697.1,677.1,1648.4,1648.4,1647.1,1644.0,121.69999999999993,20.0,0.0,-1.300000000000182,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:44:48,2025-09-09 18:44:48,,6,0,,,23.2,49.0,PRE-REGISTERED,7899411,MOD-X-00993 +2025-09-09 18:49:44.941000+00:00,2025-09-09 18:49:45.112786+00:00,2025-09-09 18:49:45.265004+00:00,2025-09-09 18:49:45.265034+00:00,1.6025,0.2156,0.0775,0.0065,0.0064,0.0097,0.0032,0.0064,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.31,0.59,1.03,0.0,0.0,0.0,39.67,0,749.2,626.7,697.3,677.3,1648.4,1648.3,1647.2,1644.1,122.5,20.0,0.10000000000013642,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:43:48,2025-09-09 18:43:48,,6,0,,,23.2,49.0,PRE-REGISTERED,7899414,MOD-X-00993 +2025-09-09 18:44:44.804000+00:00,2025-09-09 18:44:44.979232+00:00,2025-09-09 18:44:45.170857+00:00,2025-09-09 18:44:45.170895+00:00,1.5365,0.1535,0.0513,0.0192,0.0064,0.0032,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.42,0.49,0.0,0.0,0.0,42.5,0,749.3,627.0,697.0,677.0,1648.5,1648.4,1647.2,1644.1,122.29999999999995,20.0,0.09999999999990905,-1.2999999999999545,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:42:48,2025-09-09 18:42:48,,6,0,,,23.2,49.1,PRE-REGISTERED,7899049,MOD-X-00993 +2025-09-09 18:44:44.804000+00:00,2025-09-09 18:44:44.979232+00:00,2025-09-09 18:44:45.108406+00:00,2025-09-09 18:44:45.108442+00:00,1.3958,0.1351,0.0438,0.0188,0.0155,0.0093,0.0,0.0063,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26,0.56,1.77,0.0,0.0,0.0,48.33,0,749.3,628.3,696.5,676.6,1648.4,1648.2,1647.2,1644.0,121.0,19.899999999999977,0.20000000000004547,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:41:47,2025-09-09 18:41:47,,6,0,,,23.2,49.1,PRE-REGISTERED,7899046,MOD-X-00993 +2025-09-09 18:44:44.804000+00:00,2025-09-09 18:44:44.979232+00:00,2025-09-09 18:44:45.124946+00:00,2025-09-09 18:44:45.125013+00:00,1.4357,0.1518,0.0599,0.0127,0.0127,0.0031,0.0,0.0,0.0032,0.0,0.0,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.42,3.12,0.0,0.0,0.0,40.17,0,749.0,627.2,696.5,676.8,1648.6,1648.5,1647.5,1644.1,121.79999999999995,19.700000000000045,0.09999999999990905,-1.099999999999909,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:40:47,2025-09-09 18:40:47,,6,0,,,23.2,49.0,PRE-REGISTERED,7899048,MOD-X-00993 +2025-09-09 18:44:44.804000+00:00,2025-09-09 18:44:44.979232+00:00,2025-09-09 18:44:45.116733+00:00,2025-09-09 18:44:45.116768+00:00,1.4844,0.1533,0.0656,0.0093,0.0031,0.0031,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.39,0.57,0.0,0.0,0.0,34.67,0,749.0,626.8,696.4,676.5,1648.4,1648.6,1647.2,1644.1,122.20000000000005,19.899999999999977,-0.1999999999998181,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:39:47,2025-09-09 18:39:47,,6,0,,,23.2,48.9,PRE-REGISTERED,7899047,MOD-X-00993 +2025-09-09 18:44:44.804000+00:00,2025-09-09 18:44:44.979232+00:00,2025-09-09 18:44:45.096663+00:00,2025-09-09 18:44:45.096696+00:00,1.4292,0.1679,0.0572,0.0192,0.016,0.0,0.0063,0.0,0.0,0.0063,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.51,2.3,0.0,0.0,0.0,36.17,0,749.4,628.1,696.4,676.7,1648.4,1648.3,1647.2,1644.1,121.29999999999995,19.699999999999932,0.10000000000013642,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:38:47,2025-09-09 18:38:47,,6,0,,,23.2,48.9,PRE-REGISTERED,7899045,MOD-X-00993 +2025-09-09 18:39:44.569000+00:00,2025-09-09 18:39:44.692413+00:00,2025-09-09 18:39:45.051729+00:00,2025-09-09 18:39:45.051765+00:00,1.5109,0.1698,0.063,0.0132,0.0099,0.0,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.41,0.6,0.0,0.0,0.0,33.0,0,749.1,626.9,696.9,677.0,1648.4,1648.3,1647.3,1644.0,122.20000000000005,19.899999999999977,0.10000000000013642,-1.1000000000001364,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:37:47,2025-09-09 18:37:47,,6,0,,,23.2,48.9,PRE-REGISTERED,7898684,MOD-X-00993 +2025-09-09 18:39:44.569000+00:00,2025-09-09 18:39:44.692413+00:00,2025-09-09 18:39:44.980564+00:00,2025-09-09 18:39:44.980603+00:00,1.4879,0.1686,0.0713,0.0271,0.0171,0.0032,0.0098,0.0069,0.0035,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.31,0.73,1.76,0.0,0.0,0.0,44.0,0,749.3,628.4,697.0,677.2,1648.4,1648.5,1647.2,1644.1,120.89999999999998,19.799999999999955,-0.09999999999990905,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:36:47,2025-09-09 18:36:47,,6,0,,,23.2,48.9,PRE-REGISTERED,7898683,MOD-X-00993 +2025-09-09 18:39:44.569000+00:00,2025-09-09 18:39:44.692413+00:00,2025-09-09 18:39:44.940010+00:00,2025-09-09 18:39:44.940054+00:00,1.5133,0.1773,0.0752,0.0066,0.0097,0.0098,0.0033,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.29,0.53,1.08,0.0,0.0,0.0,35.5,0,748.8,628.6,696.7,676.8,1648.5,1648.4,1647.2,1644.1,120.19999999999993,19.90000000000009,0.09999999999990905,-1.2999999999999545,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:35:47,2025-09-09 18:35:47,,6,0,,,23.2,48.9,PRE-REGISTERED,7898682,MOD-X-00993 +2025-09-09 18:39:44.569000+00:00,2025-09-09 18:39:44.692413+00:00,2025-09-09 18:39:44.857447+00:00,2025-09-09 18:39:44.857484+00:00,1.5213,0.1394,0.043,0.0132,0.0099,0.0033,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26,0.42,0.61,0.0,0.0,0.0,39.33,0,749.6,628.3,696.5,676.6,1648.5,1648.6,1647.3,1644.1,121.30000000000007,19.899999999999977,-0.09999999999990905,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:34:47,2025-09-09 18:34:47,,6,0,,,23.2,48.8,PRE-REGISTERED,7898681,MOD-X-00993 +2025-09-09 18:39:44.569000+00:00,2025-09-09 18:39:44.692413+00:00,2025-09-09 18:39:44.832643+00:00,2025-09-09 18:39:44.832686+00:00,1.3519,0.1803,0.0566,0.0299,0.0065,0.0034,0.0033,0.0,0.0067,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.51,1.48,0.0,0.0,0.0,35.67,0,749.1,627.8,698.2,678.2,1648.3,1648.3,1647.1,1644.0,121.30000000000007,20.0,0.0,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:33:47,2025-09-09 18:33:47,,6,0,,,23.2,48.5,PRE-REGISTERED,7898680,MOD-X-00993 +2025-09-09 18:34:44.345000+00:00,2025-09-09 18:34:44.461807+00:00,2025-09-09 18:34:44.581516+00:00,2025-09-09 18:34:44.581550+00:00,1.4407,0.1199,0.0226,0.0033,0.0065,0.0032,0.0032,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.22,0.38,0.62,0.0,0.0,0.0,37.83,0,749.0,628.7,696.5,676.6,1648.3,1648.5,1647.1,1644.2,120.29999999999995,19.899999999999977,-0.20000000000004547,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:32:47,2025-09-09 18:32:47,,6,0,,,23.2,48.2,PRE-REGISTERED,7898308,MOD-X-00993 +2025-09-09 18:34:44.345000+00:00,2025-09-09 18:34:44.461807+00:00,2025-09-09 18:34:44.589121+00:00,2025-09-09 18:34:44.589155+00:00,1.336,0.1454,0.0431,0.0093,0.0124,0.0092,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24,0.41,0.45,0.0,0.0,0.0,41.17,0,749.0,627.7,696.8,676.7,1648.2,1648.4,1646.9,1644.0,121.29999999999995,20.09999999999991,-0.20000000000004547,-1.2999999999999545,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:31:47,2025-09-09 18:31:47,,6,0,,,23.2,48.1,PRE-REGISTERED,7898309,MOD-X-00993 \ No newline at end of file diff --git a/tests/files/modulair-x/MOD-X-00993-cloudapi-file2.csv b/tests/files/modulair-x/MOD-X-00993-cloudapi-file2.csv new file mode 100644 index 0000000..88c1514 --- /dev/null +++ b/tests/files/modulair-x/MOD-X-00993-cloudapi-file2.csv @@ -0,0 +1,32 @@ +particle_published_at,api_received_at,db_created_at,db_updated_at,bin0,bin1,bin2,bin3,bin4,bin5,bin6,bin7,bin8,bin9,bin10,bin11,bin12,bin13,bin14,bin15,bin16,bin17,bin18,bin19,bin20,bin21,bin22,bin23,opc_pm1,opc_pm25,opc_pm10,pm1_env,pm25_env,pm10_env,neph_bin0,dd_operating_state,co_we,co_ae,no_we,no_ae,no2_we,no2_ae,o3_we,o3_ae,co_diff,no_diff,no2_diff,ox_diff,wx_ws,wx_wd,wx_u,wx_v,wx_ws_scalar,wx_temp,wx_rh,wx_pressure,wx_dew_point,timestamp,timestamp_local,timezone,fw,flag,lat,lon,sample_temp,sample_rh,device_state,id,sn +2025-09-09 18:34:44.345000+00:00,2025-09-09 18:34:44.461807+00:00,2025-09-09 18:34:44.596861+00:00,2025-09-09 18:34:44.596903+00:00,1.3574,0.1669,0.0441,0.0094,0.0156,0.0032,0.0,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.25,0.41,0.85,0.0,0.0,0.0,39.33,0,750.0,629.6,697.3,677.1,1648.2,1648.4,1646.9,1644.2,120.39999999999998,20.199999999999932,-0.20000000000004547,-1.2999999999999545,0.0,0.0,nan,nan,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:30:47,2025-09-09 18:30:47,,6,0,,,23.2,48.2,PRE-REGISTERED,7898310,MOD-X-00993 +2025-09-09 18:34:44.345000+00:00,2025-09-09 18:34:44.461807+00:00,2025-09-09 18:34:44.614955+00:00,2025-09-09 18:34:44.614989+00:00,1.2664,0.1695,0.0633,0.006,0.0121,0.003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.25,0.36,0.38,0.0,0.0,0.0,34.67,0,749.8,627.9,695.4,675.3,1648.2,1648.3,1646.9,1644.2,121.89999999999998,20.100000000000023,-0.09999999999990905,-1.2999999999999545,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:29:47,2025-09-09 18:29:47,,6,0,,,23.2,48.2,PRE-REGISTERED,7898312,MOD-X-00993 +2025-09-09 18:34:44.345000+00:00,2025-09-09 18:34:44.461807+00:00,2025-09-09 18:34:44.605172+00:00,2025-09-09 18:34:44.605206+00:00,1.5361,0.145,0.0406,0.0094,0.0094,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26,0.33,0.34,0.0,0.0,0.0,43.0,0,750.1,627.9,697.3,677.1,1648.3,1648.4,1646.8,1644.0,122.20000000000005,20.199999999999932,-0.10000000000013642,-1.5,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:28:47,2025-09-09 18:28:47,,6,0,,,23.2,48.3,PRE-REGISTERED,7898311,MOD-X-00993 +2025-09-09 18:29:44.213000+00:00,2025-09-09 18:29:44.363426+00:00,2025-09-09 18:29:44.518810+00:00,2025-09-09 18:29:44.518858+00:00,1.3575,0.1734,0.0558,0.0062,0.0093,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.25,0.35,0.37,0.0,0.0,0.0,39.17,0,750.0,628.0,697.1,676.9,1648.2,1648.2,1646.9,1644.1,122.0,20.200000000000045,0.0,-1.2999999999999545,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:27:47,2025-09-09 18:27:47,,6,0,,,23.2,48.4,PRE-REGISTERED,7897955,MOD-X-00993 +2025-09-09 18:29:44.213000+00:00,2025-09-09 18:29:44.363426+00:00,2025-09-09 18:29:44.488703+00:00,2025-09-09 18:29:44.488744+00:00,1.3608,0.1298,0.0377,0.0126,0.0127,0.0063,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24,0.38,0.42,0.0,0.0,0.0,40.5,0,750.6,627.9,696.4,676.4,1648.3,1648.3,1646.9,1644.1,122.70000000000005,20.0,0.0,-1.3999999999998636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:26:47,2025-09-09 18:26:47,,6,0,,,23.2,48.5,PRE-REGISTERED,7897952,MOD-X-00993 +2025-09-09 18:29:44.213000+00:00,2025-09-09 18:29:44.363426+00:00,2025-09-09 18:29:44.480539+00:00,2025-09-09 18:29:44.480575+00:00,1.3046,0.1194,0.0459,0.0152,0.0092,0.0,0.0,0.0,0.003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.23,0.34,0.76,0.0,0.0,0.0,35.5,0,751.4,626.7,697.2,677.1,1648.3,1648.6,1647.0,1643.9,124.69999999999993,20.100000000000023,-0.2999999999999545,-1.2999999999999545,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:25:47,2025-09-09 18:25:47,,6,0,,,23.2,48.6,PRE-REGISTERED,7897951,MOD-X-00993 +2025-09-09 18:29:44.213000+00:00,2025-09-09 18:29:44.363426+00:00,2025-09-09 18:29:44.497449+00:00,2025-09-09 18:29:44.497488+00:00,1.2978,0.136,0.0544,0.0091,0.003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.23,0.28,0.28,0.0,0.0,0.0,32.67,0,750.8,628.0,697.1,677.2,1648.4,1648.4,1647.1,1644.1,122.79999999999995,19.899999999999977,0.0,-1.300000000000182,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:24:47,2025-09-09 18:24:47,,6,0,,,23.2,48.7,PRE-REGISTERED,7897953,MOD-X-00993 +2025-09-09 18:29:44.213000+00:00,2025-09-09 18:29:44.363426+00:00,2025-09-09 18:29:44.507184+00:00,2025-09-09 18:29:44.507231+00:00,1.3387,0.224,0.0254,0.0156,0.0063,0.0,0.0,0.0,0.0031,0.0,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.25,0.35,2.68,0.0,0.0,0.0,38.5,0,751.6,627.0,696.7,676.6,1648.3,1648.5,1647.1,1644.1,124.60000000000002,20.100000000000023,-0.20000000000004547,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:23:47,2025-09-09 18:23:47,,6,0,,,23.2,48.9,PRE-REGISTERED,7897954,MOD-X-00993 +2025-09-09 18:24:44.023000+00:00,2025-09-09 18:24:44.157638+00:00,2025-09-09 18:24:44.353778+00:00,2025-09-09 18:24:44.353814+00:00,1.4444,0.1243,0.0281,0.0125,0.0062,0.0062,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24,0.39,0.59,0.0,0.0,0.0,37.67,0,752.0,629.1,697.6,677.7,1648.4,1648.4,1647.1,1644.0,122.89999999999998,19.899999999999977,0.0,-1.300000000000182,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:22:47,2025-09-09 18:22:47,,6,0,,,23.2,48.9,PRE-REGISTERED,7897578,MOD-X-00993 +2025-09-09 18:24:44.023000+00:00,2025-09-09 18:24:44.157638+00:00,2025-09-09 18:24:44.346302+00:00,2025-09-09 18:24:44.346334+00:00,1.4214,0.1817,0.0468,0.0219,0.0061,0.0032,0.0032,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.45,0.93,0.0,0.0,0.0,38.17,0,751.7,627.5,696.9,676.9,1648.3,1648.2,1647.1,1644.1,124.20000000000005,20.0,0.09999999999990905,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:21:47,2025-09-09 18:21:47,,6,0,,,23.2,49.0,PRE-REGISTERED,7897577,MOD-X-00993 +2025-09-09 18:24:44.023000+00:00,2025-09-09 18:24:44.157638+00:00,2025-09-09 18:24:44.301080+00:00,2025-09-09 18:24:44.301116+00:00,1.5357,0.1684,0.0838,0.0097,0.013,0.0032,0.0033,0.0,0.0064,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3,0.53,1.47,0.0,0.0,0.0,36.33,0,751.5,627.1,697.0,677.0,1648.5,1648.5,1647.2,1644.0,124.39999999999998,20.0,0.0,-1.2999999999999545,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:20:47,2025-09-09 18:20:47,,6,0,,,23.2,49.0,PRE-REGISTERED,7897576,MOD-X-00993 +2025-09-09 18:24:44.023000+00:00,2025-09-09 18:24:44.157638+00:00,2025-09-09 18:24:44.292864+00:00,2025-09-09 18:24:44.292902+00:00,1.5246,0.1633,0.0488,0.013,0.0065,0.0064,0.0064,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.53,0.84,0.0,0.0,0.0,45.67,0,751.7,626.4,697.1,677.1,1648.5,1648.5,1647.1,1644.0,125.30000000000007,20.0,0.0,-1.400000000000091,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:19:47,2025-09-09 18:19:47,,6,0,,,23.2,49.1,PRE-REGISTERED,7897575,MOD-X-00993 +2025-09-09 18:24:44.023000+00:00,2025-09-09 18:24:44.157638+00:00,2025-09-09 18:24:44.284929+00:00,2025-09-09 18:24:44.284956+00:00,1.5127,0.1458,0.0526,0.0133,0.0032,0.0,0.0032,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26,0.41,0.64,0.0,0.0,0.0,35.67,0,751.4,626.9,695.8,675.9,1648.3,1648.3,1647.1,1644.2,124.5,19.899999999999977,0.0,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:18:47,2025-09-09 18:18:47,,6,0,,,23.2,49.1,PRE-REGISTERED,7897574,MOD-X-00993 +2025-09-09 18:19:43.881000+00:00,2025-09-09 18:19:44.010571+00:00,2025-09-09 18:19:44.372380+00:00,2025-09-09 18:19:44.372416+00:00,1.532,0.1271,0.0575,0.0201,0.0167,0.0034,0.0,0.0,0.0,0.0034,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.45,1.36,0.0,0.0,0.0,44.5,0,751.3,625.4,695.9,676.1,1648.4,1648.3,1647.2,1643.9,125.89999999999998,19.799999999999955,0.10000000000013642,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:17:47,2025-09-09 18:17:47,,6,0,,,23.2,49.1,PRE-REGISTERED,7897210,MOD-X-00993 +2025-09-09 18:19:43.881000+00:00,2025-09-09 18:19:44.010571+00:00,2025-09-09 18:19:44.362010+00:00,2025-09-09 18:19:44.362057+00:00,1.5845,0.1703,0.0579,0.0545,0.0136,0.0,0.0,0.0034,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.33,0.54,0.73,0.0,0.0,0.0,44.67,0,751.5,627.1,696.5,676.9,1648.4,1648.4,1647.2,1644.2,124.39999999999998,19.600000000000023,0.0,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:16:47,2025-09-09 18:16:47,,6,0,,,23.2,49.3,PRE-REGISTERED,7897209,MOD-X-00993 +2025-09-09 18:19:43.881000+00:00,2025-09-09 18:19:44.010571+00:00,2025-09-09 18:19:44.329174+00:00,2025-09-09 18:19:44.329212+00:00,1.5363,0.1347,0.0647,0.0203,0.0097,0.0,0.0,0.0,0.0033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.41,0.86,0.0,0.0,0.0,40.33,0,750.9,626.8,697.2,677.3,1648.3,1648.3,1647.2,1643.8,124.10000000000002,19.90000000000009,0.0,-1.099999999999909,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:15:47,2025-09-09 18:15:47,,6,0,,,23.2,49.3,PRE-REGISTERED,7897208,MOD-X-00993 +2025-09-09 18:19:43.881000+00:00,2025-09-09 18:19:44.010571+00:00,2025-09-09 18:19:44.307847+00:00,2025-09-09 18:19:44.307890+00:00,1.6296,0.1767,0.0483,0.0065,0.0225,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.29,0.45,0.47,0.0,0.0,0.0,45.0,0,750.9,625.8,697.8,678.0,1648.3,1648.2,1647.1,1644.2,125.10000000000002,19.799999999999955,0.09999999999990905,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:14:46,2025-09-09 18:14:46,,6,0,,,23.2,49.3,PRE-REGISTERED,7897207,MOD-X-00993 +2025-09-09 18:19:43.881000+00:00,2025-09-09 18:19:44.010571+00:00,2025-09-09 18:19:44.297458+00:00,2025-09-09 18:19:44.297487+00:00,1.4046,0.1926,0.0537,0.0191,0.0221,0.0063,0.0061,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.29,0.57,0.71,0.0,0.0,0.0,36.5,0,750.6,626.4,696.0,676.3,1648.4,1648.5,1647.3,1643.9,124.20000000000005,19.700000000000045,-0.09999999999990905,-1.1000000000001364,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:13:46,2025-09-09 18:13:46,,6,0,,,23.2,49.3,PRE-REGISTERED,7897206,MOD-X-00993 +2025-09-09 18:14:43.741000+00:00,2025-09-09 18:14:43.895901+00:00,2025-09-09 18:14:44.038889+00:00,2025-09-09 18:14:44.038917+00:00,1.458,0.1659,0.0751,0.0157,0.0126,0.0,0.0031,0.0032,0.0,0.0,0.0,0.0,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.29,0.48,2.99,0.0,0.0,0.0,40.17,0,750.5,628.0,695.6,675.8,1648.4,1648.3,1647.1,1644.1,122.5,19.800000000000068,0.10000000000013642,-1.300000000000182,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:12:46,2025-09-09 18:12:46,,6,0,,,23.2,49.3,PRE-REGISTERED,7896837,MOD-X-00993 +2025-09-09 18:14:43.741000+00:00,2025-09-09 18:14:43.895901+00:00,2025-09-09 18:14:44.024829+00:00,2025-09-09 18:14:44.024860+00:00,1.369,0.2019,0.0559,0.0248,0.0031,0.0031,0.0,0.0032,0.0,0.0,0.0,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.42,2.83,0.0,0.0,0.0,38.5,0,750.3,626.6,696.2,676.5,1648.2,1648.2,1647.2,1643.9,123.69999999999993,19.700000000000045,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:11:46,2025-09-09 18:11:46,,6,0,,,23.1,49.3,PRE-REGISTERED,7896835,MOD-X-00993 +2025-09-09 18:14:43.741000+00:00,2025-09-09 18:14:43.895901+00:00,2025-09-09 18:14:44.047799+00:00,2025-09-09 18:14:44.047850+00:00,1.493,0.1856,0.0861,0.006,0.0092,0.0,0.003,0.0,0.0122,0.003,0.003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.003,0.0,0.0,0.0,0.29,0.55,4.62,0.0,0.0,0.0,44.5,0,750.8,626.5,697.4,677.5,1648.3,1648.2,1647.2,1644.1,124.29999999999995,19.899999999999977,0.09999999999990905,-1.099999999999909,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:10:46,2025-09-09 18:10:46,,6,0,,,23.1,49.3,PRE-REGISTERED,7896838,MOD-X-00993 +2025-09-09 18:14:43.741000+00:00,2025-09-09 18:14:43.895901+00:00,2025-09-09 18:14:44.017764+00:00,2025-09-09 18:14:44.017795+00:00,1.4436,0.227,0.0505,0.019,0.0252,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3,0.49,2.79,0.0,0.0,0.0,45.83,0,750.7,627.4,695.8,675.9,1648.4,1648.3,1647.2,1643.9,123.30000000000007,19.899999999999977,0.10000000000013642,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:09:46,2025-09-09 18:09:46,,6,0,,,23.1,49.3,PRE-REGISTERED,7896834,MOD-X-00993 +2025-09-09 18:14:43.741000+00:00,2025-09-09 18:14:43.895901+00:00,2025-09-09 18:14:44.031832+00:00,2025-09-09 18:14:44.031864+00:00,1.3657,0.1694,0.0612,0.0092,0.0122,0.0062,0.0092,0.0,0.0,0.0,0.0,0.0,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.53,2.92,0.0,0.0,0.0,45.83,0,750.3,626.9,696.5,676.7,1648.4,1648.3,1647.2,1644.1,123.39999999999998,19.799999999999955,0.10000000000013642,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:08:46,2025-09-09 18:08:46,,6,0,,,23.1,49.3,PRE-REGISTERED,7896836,MOD-X-00993 +2025-09-09 18:09:43.527000+00:00,2025-09-09 18:09:43.726299+00:00,2025-09-09 18:09:44.010682+00:00,2025-09-09 18:09:44.010727+00:00,1.5066,0.1862,0.0526,0.0124,0.0062,0.0,0.0,0.0,0.0,0.0062,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.27,0.37,2.02,0.0,0.0,0.0,46.83,0,750.6,627.1,695.1,675.3,1648.3,1648.5,1647.1,1644.1,123.5,19.800000000000068,-0.20000000000004547,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:07:46,2025-09-09 18:07:46,,6,0,,,23.1,49.3,PRE-REGISTERED,7896478,MOD-X-00993 +2025-09-09 18:09:43.527000+00:00,2025-09-09 18:09:43.726299+00:00,2025-09-09 18:09:44.002947+00:00,2025-09-09 18:09:44.002977+00:00,1.5163,0.1917,0.0797,0.0223,0.0032,0.0032,0.0031,0.0032,0.0,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3,0.51,1.6,0.0,0.0,0.0,49.0,0,750.3,626.7,697.2,677.1,1648.3,1648.3,1647.1,1644.2,123.59999999999991,20.100000000000023,0.0,-1.2000000000000455,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:06:46,2025-09-09 18:06:46,,6,0,,,23.1,49.2,PRE-REGISTERED,7896477,MOD-X-00993 +2025-09-09 18:09:43.527000+00:00,2025-09-09 18:09:43.726299+00:00,2025-09-09 18:09:43.979099+00:00,2025-09-09 18:09:43.979134+00:00,1.597,0.1692,0.0562,0.0199,0.0164,0.0,0.0,0.0067,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3,0.51,0.88,0.0,0.0,0.0,38.33,0,750.1,628.0,696.9,677.2,1648.3,1648.2,1647.2,1643.9,122.10000000000002,19.699999999999932,0.09999999999990905,-1.099999999999909,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:05:46,2025-09-09 18:05:46,,6,0,,,23.1,49.1,PRE-REGISTERED,7896474,MOD-X-00993 +2025-09-09 18:09:43.527000+00:00,2025-09-09 18:09:43.726299+00:00,2025-09-09 18:09:43.986737+00:00,2025-09-09 18:09:43.986765+00:00,1.5843,0.1809,0.0792,0.0231,0.0129,0.0034,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.32,0.47,0.49,0.0,0.0,0.0,37.0,0,750.3,627.1,695.6,676.1,1648.5,1648.3,1647.0,1643.9,123.19999999999993,19.5,0.20000000000004547,-1.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:04:46,2025-09-09 18:04:46,,6,0,,,23.1,49.0,PRE-REGISTERED,7896475,MOD-X-00993 +2025-09-09 18:09:43.527000+00:00,2025-09-09 18:09:43.726299+00:00,2025-09-09 18:09:43.994842+00:00,2025-09-09 18:09:43.994881+00:00,1.4928,0.1803,0.0519,0.0153,0.0092,0.0031,0.0031,0.0,0.0031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.46,0.95,0.0,0.0,0.0,32.33,0,749.1,624.8,696.7,677.0,1648.4,1648.3,1647.2,1643.8,124.30000000000007,19.700000000000045,0.10000000000013642,-1.2000000000000455,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:03:46,2025-09-09 18:03:46,,6,0,,,23.1,48.8,PRE-REGISTERED,7896476,MOD-X-00993 +2025-09-09 18:04:43.378000+00:00,2025-09-09 18:04:43.581884+00:00,2025-09-09 18:04:44.007865+00:00,2025-09-09 18:04:44.007897+00:00,1.3596,0.1826,0.0626,0.0266,0.003,0.0059,0.0029,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.45,0.52,0.0,0.0,0.0,30.67,0,749.9,627.8,697.7,677.7,1648.1,1648.3,1646.9,1643.9,122.10000000000002,20.0,-0.20000000000004547,-1.199999999999818,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:02:46,2025-09-09 18:02:46,,6,0,,,23.2,48.5,PRE-REGISTERED,7896101,MOD-X-00993 +2025-09-09 18:04:43.378000+00:00,2025-09-09 18:04:43.581884+00:00,2025-09-09 18:04:44.015673+00:00,2025-09-09 18:04:44.015703+00:00,1.5656,0.1762,0.047,0.0062,0.0126,0.003,0.0032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28,0.43,0.5,0.0,0.0,0.0,36.0,0,750.0,626.5,696.4,676.4,1648.3,1648.3,1646.9,1644.1,123.5,20.0,0.0,-1.3999999999998636,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:01:46,2025-09-09 18:01:46,,6,0,,,23.2,48.5,PRE-REGISTERED,7896102,MOD-X-00993 +2025-09-09 18:04:43.378000+00:00,2025-09-09 18:04:43.581884+00:00,2025-09-09 18:04:43.993796+00:00,2025-09-09 18:04:43.993836+00:00,1.5683,0.1608,0.0658,0.0065,0.0196,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.29,0.41,0.42,0.0,0.0,0.0,48.33,0,749.9,625.9,697.7,677.6,1648.1,1648.3,1646.8,1643.9,124.0,20.100000000000023,-0.20000000000004547,-1.2999999999999545,0.0,0.0,nan,0.0,0.0,0.0,0.0,0.0,0.0,2025-09-09 18:00:46,2025-09-09 18:00:46,,6,0,,,23.2,48.5,PRE-REGISTERED,7896100,MOD-X-00993 \ No newline at end of file diff --git a/tests/files/modulair/MOD-final.csv b/tests/files/modulair/MOD-00014-db-final.csv similarity index 99% rename from tests/files/modulair/MOD-final.csv rename to tests/files/modulair/MOD-00014-db-final.csv index 30fce00..376dc92 100644 --- a/tests/files/modulair/MOD-final.csv +++ b/tests/files/modulair/MOD-00014-db-final.csv @@ -58,4 +58,4 @@ 56,4,2021-10-08T18:15:37Z,2021-10-08T18:15:37Z,MOD-00014,4,0.0,0.0,23.7,47.0,,,,,,,,,,,,,PRE-REGISTERED,,,,,,,,,, 57,3,2021-10-08T18:14:37Z,2021-10-08T18:14:37Z,MOD-00014,3,0.0,0.0,23.6,47.1,,,,,,,,,,,,,PRE-REGISTERED,,,,,,,,,, 58,2,2021-10-08T18:13:37Z,2021-10-08T18:13:37Z,MOD-00014,2,0.0,0.0,23.6,47.3,,,,,,,,,,,,,PRE-REGISTERED,,,,,,,,,, -59,1,2021-10-08T18:12:37Z,2021-10-08T18:12:37Z,MOD-00014,1,0.0,0.0,23.6,47.3,,,,,,,,,,,,,PRE-REGISTERED,,,,,,,,,, +59,1,2021-10-08T18:12:37Z,2021-10-08T18:12:37Z,MOD-00014,1,0.0,0.0,23.6,47.3,,,,,,,,,,,,,PRE-REGISTERED,,,,,,,,,, \ No newline at end of file diff --git a/tests/files/modulair/MOD-raw.csv b/tests/files/modulair/MOD-00014-db-raw.csv similarity index 99% rename from tests/files/modulair/MOD-raw.csv rename to tests/files/modulair/MOD-00014-db-raw.csv index d894b94..36f69fb 100644 --- a/tests/files/modulair/MOD-raw.csv +++ b/tests/files/modulair/MOD-00014-db-raw.csv @@ -58,4 +58,4 @@ 56,4,2021-10-08T18:15:37Z,2021-10-08T18:15:37Z,MOD-00014,47.0,23.7,3.1391,0.1685,0.0176,0.014,0.0141,0.0035,0.0035,0.0,0.0,0.0,0.0035,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.44,0.62,2.22,2.0,4.0,4.1,611.625,0.0,0.0,,3293.3,2274.2,,,,,,,669.9,661.5,,,1019.1,,,,8.39999999999998,,24,,,PRE-REGISTERED 57,3,2021-10-08T18:14:37Z,2021-10-08T18:14:37Z,MOD-00014,47.1,23.6,3.2708,0.1531,0.0348,0.0139,0.0139,0.007,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.46,0.62,0.66,4.1,5.6,6.0,843.0,0.0,0.0,,3293.3,2272.4,,,,,,,670.2,662.0,,,1020.9,,,,8.20000000000005,,24,,,PRE-REGISTERED 58,2,2021-10-08T18:13:37Z,2021-10-08T18:13:37Z,MOD-00014,47.3,23.6,3.2397,0.1408,0.0211,0.007,0.0036,0.0071,0.0035,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.43,0.58,0.67,3.0,4.4,4.4,813.375,0.0,0.0,,3293.3,2273.2,,,,,,,670.1,662.5,,,1020.1,,,,7.60000000000002,,24,,,PRE-REGISTERED -59,1,2021-10-08T18:12:37Z,2021-10-08T18:12:37Z,MOD-00014,47.3,23.6,3.2592,0.15,0.0357,0.0248,0.0108,0.0108,0.0,0.0,0.0,0.0,0.0,0.0037,0.0,0.0,0.0,0.0,0.0,0.0,0.47,0.67,2.94,3.2,5.2,5.2,769.875,0.0,0.0,,3293.3,2273.3,,,,,,,669.9,662.1,,,1020.0,,,,7.79999999999995,,24,,,PRE-REGISTERED +59,1,2021-10-08T18:12:37Z,2021-10-08T18:12:37Z,MOD-00014,47.3,23.6,3.2592,0.15,0.0357,0.0248,0.0108,0.0108,0.0,0.0,0.0,0.0,0.0,0.0037,0.0,0.0,0.0,0.0,0.0,0.0,0.47,0.67,2.94,3.2,5.2,5.2,769.875,0.0,0.0,,3293.3,2273.3,,,,,,,669.9,662.1,,,1020.0,,,,7.79999999999995,,24,,,PRE-REGISTERED \ No newline at end of file diff --git a/tests/test_clean.py b/tests/test_clean.py index 88e9864..9a4083c 100644 --- a/tests/test_clean.py +++ b/tests/test_clean.py @@ -17,11 +17,11 @@ def setUp(self): def tearDown(self): shutil.rmtree(self.test_dir) - def test_clean_file(self): + def test_clean_file_arisense_db(self): runner = CliRunner() result = runner.invoke(clean, [ - os.path.join(self.test_files_dir, "lcs-1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), os.path.join(self.test_dir, "output.csv"), ], catch_exceptions=False @@ -36,3 +36,44 @@ def test_clean_file(self): # is it a csv? self.assertEqual(p.suffix, ".csv") + + def test_clean_file_modulairpm_rawsd(self): + runner = CliRunner() + result = runner.invoke(clean, + [ + os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file1.csv"), + os.path.join(self.test_dir, "output.csv"), + ], + catch_exceptions=False + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + def test_clean_file_modulairx_cloudapi(self): + runner = CliRunner() + result = runner.invoke(clean, + [ + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file1.csv"), + os.path.join(self.test_dir, "output.csv"), + ], + catch_exceptions=False + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + \ No newline at end of file diff --git a/tests/test_concat.py b/tests/test_concat.py index 228b777..14c8d25 100644 --- a/tests/test_concat.py +++ b/tests/test_concat.py @@ -17,15 +17,15 @@ def setUp(self): def tearDown(self): shutil.rmtree(self.test_dir) - def test_concat_files_csv(self): + def test_concat_files_csv_arisense_db(self): runner = CliRunner() result = runner.invoke(concat, [ "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "lcs-1.csv"), - os.path.join(self.test_files_dir, "lcs-2.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file2.csv"), ], catch_exceptions=False ) @@ -44,8 +44,8 @@ def test_concat_files_csv(self): self.assertEqual(p.suffix, ".csv") # are the number of lines correct? - df1 = pd.read_csv(os.path.join(self.test_files_dir, "lcs-1.csv")) - df2 = pd.read_csv(os.path.join(self.test_files_dir, "lcs-2.csv"), skiprows=1) + df1 = pd.read_csv(os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv")) + df2 = pd.read_csv(os.path.join(self.test_files_dir, "arisense/SN000-063-db-file2.csv"), skiprows=1) df3 = pd.read_csv(os.path.join(self.test_dir, "output.csv")).sort_values('timestamp') self.assertEqual(df1.shape[0] + df2.shape[0], df3.shape[0]) @@ -71,15 +71,15 @@ def test_concat_logfiles(self): print (result.stdout) self.assertEqual(result.exit_code, 0) - def test_concat_files_feather(self): + def test_concat_files_feather_arisense_db(self): runner = CliRunner() result = runner.invoke(concat, [ "-o", os.path.join(self.test_dir, "output.feather"), "-v", - os.path.join(self.test_files_dir, "lcs-1.csv"), - os.path.join(self.test_files_dir, "lcs-2.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file2.csv"), ] ) @@ -96,15 +96,15 @@ def test_concat_files_feather(self): # is it a csv? self.assertEqual(p.suffix, ".feather") - def test_concat_files_mod_pm(self): + def test_concat_files_modulairx_rawsd(self): runner = CliRunner() result = runner.invoke(concat, [ "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "modulair-pm/file1.csv"), - os.path.join(self.test_files_dir, "modulair-pm/file2.csv"), + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file1.csv"), + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file2.csv"), ] ) @@ -119,9 +119,66 @@ def test_concat_files_mod_pm(self): self.assertEqual(p.suffix, ".csv") # are the number of lines correct? - df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-pm/file1.csv"), skiprows=3) - df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-pm/file2.csv"), skiprows=3) + df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file1.csv"), skiprows=3) + df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file2.csv"), skiprows=3) df3 = pd.read_csv(os.path.join(self.test_dir, "output.csv")) self.assertEqual(df1.shape[0] + df2.shape[0], df3.shape[0]) + def test_concat_files_modulairpm_rawsd(self): + runner = CliRunner() + result = runner.invoke(concat, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file1.csv"), + os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file2.csv"), + ] + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + # are the number of lines correct? + df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file1.csv"), skiprows=3) + df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file2.csv"), skiprows=3) + df3 = pd.read_csv(os.path.join(self.test_dir, "output.csv")) + + self.assertEqual(df1.shape[0] + df2.shape[0], df3.shape[0]) + + def test_concat_files_modulairx_cloudapi(self): + runner = CliRunner() + result = runner.invoke(concat, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file1.csv"), + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file2.csv"), + ] + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + # are the number of lines correct? + df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file1.csv")) + df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file2.csv")) + df3 = pd.read_csv(os.path.join(self.test_dir, "output.csv")) + + self.assertEqual(df1.shape[0] + df2.shape[0], df3.shape[0]) diff --git a/tests/test_expunge.py b/tests/test_expunge.py index 0baefcc..7e7f454 100644 --- a/tests/test_expunge.py +++ b/tests/test_expunge.py @@ -18,14 +18,14 @@ def setUp(self): def tearDown(self): shutil.rmtree(self.test_dir) - def test_expunge_csv(self): + def test_expunge_csv_arisense_db(self): runner = CliRunner() result = runner.invoke(expunge, [ "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "lcs-1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), ] ) @@ -50,7 +50,7 @@ def test_expunge_dryrun(self): os.path.join(self.test_dir, "output.feather"), "--dry-run", "--table", - os.path.join(self.test_files_dir, "lcs-1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), ] ) @@ -71,7 +71,7 @@ def test_expunge_dict(self): "-o", os.path.join(self.test_dir, "output.feather"), "--dry-run", - os.path.join(self.test_files_dir, "lcs-1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), ] ) @@ -81,13 +81,13 @@ def test_expunge_dict(self): # did it output the correct text? self.assertFalse("FLAG BREAKDOWN" in result.output) - def test_expunge_feather(self): + def test_expunge_feather_arisense_db(self): runner = CliRunner() result = runner.invoke(expunge, [ "-o", os.path.join(self.test_dir, "output.feather"), - os.path.join(self.test_files_dir, "lcs-1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), ] ) @@ -105,14 +105,14 @@ def test_expunge_feather(self): # is it a csv? self.assertEqual(p.suffix, ".feather") - def test_expunge_csv_modulair_pm(self): + def test_expunge_csv_modulairpm_rawsd(self): runner = CliRunner() result = runner.invoke(expunge, [ "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "modulair-pm/file1.csv"), + os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file1.csv"), ] ) @@ -129,14 +129,62 @@ def test_expunge_csv_modulair_pm(self): # is it a csv? self.assertEqual(p.suffix, ".csv") - def test_expunge_csv_modulair(self): + def test_expunge_csv_modulair_db(self): runner = CliRunner() result = runner.invoke(expunge, [ "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "modulair/MOD-raw.csv"), + os.path.join(self.test_files_dir, "modulair/MOD-00014-db-raw.csv"), + ] + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # did it output the correct text? + self.assertTrue("Saving file" in result.output) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + def test_expunge_csv_modulairx_rawsd(self): + runner = CliRunner() + result = runner.invoke(expunge, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file1.csv"), + ] + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # did it output the correct text? + self.assertTrue("Saving file" in result.output) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + def test_expunge_csv_modulairx_cloudapi(self): + runner = CliRunner() + result = runner.invoke(expunge, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file1.csv"), ] ) diff --git a/tests/test_flag.py b/tests/test_flag.py index d6adb24..6a48d2c 100644 --- a/tests/test_flag.py +++ b/tests/test_flag.py @@ -16,14 +16,14 @@ def setUp(self): def tearDown(self): shutil.rmtree(self.test_dir) - def test_flag_files(self): + def test_flag_files_arisense_db(self): runner = CliRunner() result = runner.invoke(flag, [ "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "lcs-1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), "co_we", "lt", "205.0" @@ -50,7 +50,7 @@ def test_flag_files_feather(self): "-o", os.path.join(self.test_dir, "output.feather"), "-v", - os.path.join(self.test_files_dir, "lcs-1.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), "co_we", "gt", "505.0" @@ -69,3 +69,84 @@ def test_flag_files_feather(self): # is it a csv? self.assertEqual(p.suffix, ".feather") + + def test_flag_files_modulair_db(self): + runner = CliRunner() + result = runner.invoke(flag, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair/MOD-00014-db-raw.csv"), + "co_we", + "lt", + "205.0" + ] + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # did it output the correct text? + self.assertTrue("File to read" in result.output) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + def test_flag_files_modulairx_rawsd(self): + runner = CliRunner() + result = runner.invoke(flag, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file1.csv"), + "co_we", + "lt", + "205.0" + ] + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # did it output the correct text? + self.assertTrue("File to read" in result.output) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + def test_flag_files_modulairx_cloudapi(self): + runner = CliRunner() + result = runner.invoke(flag, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file1.csv"), + "co_we", + "lt", + "205.0" + ] + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # did it output the correct text? + self.assertTrue("File to read" in result.output) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") diff --git a/tests/test_merge.py b/tests/test_merge.py index 6746641..ac85312 100644 --- a/tests/test_merge.py +++ b/tests/test_merge.py @@ -17,15 +17,15 @@ def setUp(self): def tearDown(self): shutil.rmtree(self.test_dir) - def test_merge_files_csv(self): + def test_merge_files_modulair_db(self): runner = CliRunner() result = runner.invoke(merge, [ "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "modulair/MOD-raw.csv"), - os.path.join(self.test_files_dir, "modulair/MOD-final.csv"), + os.path.join(self.test_files_dir, "modulair/MOD-00014-db-raw.csv"), + os.path.join(self.test_files_dir, "modulair/MOD-00014-db-final.csv"), ], catch_exceptions=False ) @@ -44,8 +44,8 @@ def test_merge_files_csv(self): self.assertEqual(p.suffix, ".csv") # are the number of lines correct? - df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair/MOD-raw.csv"), index_col=0) - df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair/MOD-final.csv"), index_col=0) + df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair/MOD-00014-db-raw.csv"), index_col=0) + df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair/MOD-00014-db-final.csv"), index_col=0) df3 = pd.read_csv(os.path.join(self.test_dir, "output.csv")) self.assertEqual(df1.shape[1] + df2.shape[1] - 1, df3.shape[1]) @@ -57,8 +57,8 @@ def test_merge_files_feather(self): "-o", os.path.join(self.test_dir, "output.feather"), "-v", - os.path.join(self.test_files_dir, "lcs-1.csv"), - os.path.join(self.test_files_dir, "ref.csv"), + os.path.join(self.test_files_dir, "arisense/SN000-063-db-file1.csv"), + os.path.join(self.test_files_dir, "arisense/ref/ref.csv"), ] ) @@ -81,8 +81,8 @@ def test_concat_then_merge(self): [ "-o", os.path.join(self.test_dir, "concat1.csv"), - os.path.join(self.test_files_dir, "modulair-pm/file1.csv"), - os.path.join(self.test_files_dir, "modulair-pm/file2.csv"), + os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file1.csv"), + os.path.join(self.test_files_dir, "modulair-pm/MOD-PM-00001-rawsd-file2.csv"), ] ) @@ -110,4 +110,73 @@ def test_concat_then_merge(self): catch_exceptions=False ) - self.assertEqual(res3.exit_code, 0) \ No newline at end of file + self.assertEqual(res3.exit_code, 0) + + def test_merge_files_modulairx_rawsd(self): + runner = CliRunner() + result = runner.invoke(merge, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file1.csv"), + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file2.csv"), + ], + catch_exceptions=False + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # did it output the correct text? + self.assertTrue("Saving file" in result.output) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + # are the number of lines correct? + df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file1.csv"), skiprows=3) + df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00891-rawsd-file2.csv"), skiprows=3) + df3 = pd.read_csv(os.path.join(self.test_dir, "output.csv")) + + print(df1.shape[1], df2.shape[1], df3.shape[1], flush=True) + self.assertEqual(df1.shape[1] + df2.shape[1] - 1, df3.shape[1]) + + def test_merge_files_modulairx_cloudapi(self): + runner = CliRunner() + result = runner.invoke(merge, + [ + "-o", + os.path.join(self.test_dir, "output.csv"), + "-v", + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file1.csv"), + os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file2.csv"), + ], + catch_exceptions=False + ) + + # did it succeed? + self.assertEqual(result.exit_code, 0) + + # did it output the correct text? + self.assertTrue("Saving file" in result.output) + + # make sure the file exists + p = Path(self.test_dir + "/output.csv") + self.assertTrue(p.exists()) + + # is it a csv? + self.assertEqual(p.suffix, ".csv") + + # are the number of lines correct? + df1 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file1.csv")) + df2 = pd.read_csv(os.path.join(self.test_files_dir, "modulair-x/MOD-X-00993-cloudapi-file2.csv")) + df3 = pd.read_csv(os.path.join(self.test_dir, "output.csv")) + + print(df1.shape[1], df2.shape[1], df3.shape[1], flush=True) + self.assertEqual(df1.shape[1] + df2.shape[1] - 1, df3.shape[1]) + \ No newline at end of file diff --git a/tests/test_resample.py b/tests/test_resample.py index 5494440..498aed1 100644 --- a/tests/test_resample.py +++ b/tests/test_resample.py @@ -25,7 +25,7 @@ def test_resample_files_csv(self): "-o", os.path.join(self.test_dir, "output.csv"), "-v", - os.path.join(self.test_files_dir, "ref.csv"), + os.path.join(self.test_files_dir, "arisense/ref/ref.csv"), "10min", ] ) @@ -58,7 +58,7 @@ def test_resample_files_feather(self): "-o", os.path.join(self.test_dir, "output.feather"), "-v", - os.path.join(self.test_files_dir, "ref.csv"), + os.path.join(self.test_files_dir, "arisense/ref/ref.csv"), "10min", ] )