From 00a6a6389a2e594fc2c61f95c0ef848052182cc9 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 09:51:51 -0400 Subject: [PATCH 01/50] unit test bad xml --- .../c++/six.sidd/unittests/test_valid_sixsidd.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index 67cf18ab6..9f2d3e27a 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -198,6 +198,14 @@ TEST_CASE(test_read_sidd300_v13_xml) test_read_sidd_xml(testName, "sidd300_ISM-v13.xml"); } +TEST_CASE(test_read_pathological00_xml) +{ + // test_read_sidd_xml(testName, "pathological00.xml"); + + const auto schemaPaths = getSchemaPaths(); + test_read_sidd_xml(testName, "pathological00.xml", &schemaPaths); +} + TEST_MAIN( TEST_CHECK(test_createFakeDerivedData); TEST_CHECK(test_createFakeDerivedData_validate); @@ -205,4 +213,5 @@ TEST_MAIN( TEST_CHECK(test_read_sidd200_xml); TEST_CHECK(test_read_sidd300_xml); TEST_CHECK(test_read_sidd300_v13_xml); + TEST_CHECK(test_read_pathological00_xml); ) From 96c659fb4245d11285530bb248ff7af1a4d43542 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 09:52:11 -0400 Subject: [PATCH 02/50] add bad xml for test --- .../tests/sample_xml/pathological00.xml | 604 ++++++++++++++++++ 1 file changed, 604 insertions(+) create mode 100644 six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml diff --git a/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml b/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml new file mode 100644 index 000000000..0b33aa8a4 --- /dev/null +++ b/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml @@ -0,0 +1,604 @@ + + + + ProcessorName + 2021-11-22T21:06:12.691000Z + Ypsilanti, MI + Profile + + + sample + + ProductName + Unclassified + The product's type + sample + + + RGB24I + 3 + + + + 1DLUT + + LUT Name + + 5 + 3 + + + + + Some predefined Filter + + + LAGRANGE + + + CONVOLUTION + + + + + + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + + + + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + + LAGRANGE + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + Some predefined Filter + + + LAGRANGE + + + CONVOLUTION + + + + + + + + Some predefined Filter + + + LAGRANGE + + + CONVOLUTION + + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + + ARBITRARY + + + + + Some custom Filter + + + + 0 + 1.5 + 3 + 4.5 + 6 + 7.5 + + + + CORRELATION + + + + + ABSOLUTE + Some source profile + Some display profile + Some ICC profile + + + + AUTO + 1 + + 0.20000000000000001 + 0.80000000000000004 + 0.10000000000000001 + 0.10000000000000001 + + + + TTC Name + + TTC DB + + + + val + + + WGS_84 + + + 1 + 0 + + + 2 + 3 + + + 3 + 6 + + + 4 + 9 + + + + + 23 + 34 + + + 23 + 35 + + + 23 + 36 + + + + GeoValue + + 36.5 + 99.870000000000005 + + + + + + + + 0 + 0 + 0 + + + 0 + 0 + + + + 0 + 0 + + + 1 + + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + 2 + 2 + + + + 0 + + + 0 + + + 0 + + + + + 1 + 2 + + + 3 + 4 + + + 5 + 6 + + + 3 + 2 + + + 3 + 1 + + + 3 + 0 + + + + + + + Sensor Name + + SPOTLIGHT + RMID + + 2021-11-22T21:06:12.691000Z + 2021-11-22T21:06:12.691000Z + 0 + + 0 + 0 + + + + 5 + 10 + + + 9 + 3 + + + + V + OTHER_RcvPolarization + 1.3700000000000001 + flub + + + + 1.2 + 3.3999999999999999 + 5.5999999999999996 + 7.7999999999999998 + 9.0999999999999996 + Parameter + + + + 1.5 + 3.7000000000000002 + + + 10.130000000000001 + 50.899999999999999 + + 3.79 + 8.1099999999999994 + Parameter + + + + + 0 + 0 + + 0 + + UNKNOWN + UNKNOWN + + 58.332000000000001 + Parameter + + + + + + 1 + 2 + + + 1.3999999999999999 + 2.8999999999999999 + + + 1.3999999999999999 + 2.8999999999999999 + + + 1.3999999999999999 + 2.8999999999999999 + + + 1.3999999999999999 + 2.8999999999999999 + + + + Processing Event + 2021-11-22T21:06:12.691000Z + Value + + + + + 0.12 + 0.72999999999999998 + 9.8399999999999999 + + + + ECF + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + 1.1000000000000001 + + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + 6.2000000000000002 + + + 48.170000000000002 + 113.965 + + + + 43.5 + 1111.0999999999999 + 85 + + 123 + 0.029999999999999999 + + + + 0.0028900000000000002 + 777 + + 0 + 98.700000000000003 + + + + 1.2 + 77632 + 0.071999999999999995 + + 48.159999999999997 + 113.964 + + + + + 1.23 + 4.56 + 7.89 + + + 12.34 + 56.78 + + + 123.4 + 567.8 + + + + + Error StatisticsParameterValue + + + + + ABSOLUTE + + 0 + + + + 0 + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + + + + + + 1 + 2 + + + 3.14 + + + + + 3 + 4 + + + 3.1415 + + + 3.1415926 + + + + + + + + 1 + 2 + + 42 + -83 + + + + UTM + World Geodetic System 1984 + World Geodetic System 1984 + Mean Sea Level + Mean Sea Level + 0 + 15 + + + 3 + + 4 + 5 + + + 6 + 7 + + + -32768 + + + + Value + + Value + Value + + + + + + Annotation identifier + + + CS Name + + + Spheroid + 69.030000000000001 + 71.472999999999999 + + + + Prime Meridian + 11.109999999999999 + + Unit + + Axis 1 + + + + 2.3999999999999999 + 3.5 + 4.5499999999999998 + 5.7569999999999997 + + + + + From c4c12616faa971c61aca7ea636d93cb62b778ac9 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 15:49:14 -0400 Subject: [PATCH 03/50] make test successful --- six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index 9f2d3e27a..b97953514 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -200,10 +200,8 @@ TEST_CASE(test_read_sidd300_v13_xml) TEST_CASE(test_read_pathological00_xml) { - // test_read_sidd_xml(testName, "pathological00.xml"); - const auto schemaPaths = getSchemaPaths(); - test_read_sidd_xml(testName, "pathological00.xml", &schemaPaths); + TEST_SPECIFIC_EXCEPTION(test_read_sidd_xml(testName, "pathological00.xml", &schemaPaths), six::DESValidationException); } TEST_MAIN( From 0d1fb2c4595abf9ff0934b4a991e24865b86d802 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 15:56:39 -0400 Subject: [PATCH 04/50] more minimal bad file --- .../tests/sample_xml/pathological00.xml | 603 +----------------- 1 file changed, 1 insertion(+), 602 deletions(-) diff --git a/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml b/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml index 0b33aa8a4..871754135 100644 --- a/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml +++ b/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml @@ -1,604 +1,3 @@ - - - ProcessorName - 2021-11-22T21:06:12.691000Z - Ypsilanti, MI - Profile - - - sample - - ProductName - Unclassified - The product's type - sample - - - RGB24I - 3 - - - - 1DLUT - - LUT Name - - 5 - 3 - - - - - Some predefined Filter - - - LAGRANGE - - - CONVOLUTION - - - - - - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - - - - - Some custom Filter - - - - 0 - 1.5 - 3 - 4.5 - 6 - 7.5 - - - - CORRELATION - - - - LAGRANGE - - Some custom Filter - - - - 0 - 1.5 - 3 - 4.5 - 6 - 7.5 - - - - CORRELATION - - - Some predefined Filter - - - LAGRANGE - - - CONVOLUTION - - - - - - - - Some predefined Filter - - - LAGRANGE - - - CONVOLUTION - - - Some custom Filter - - - - 0 - 1.5 - 3 - 4.5 - 6 - 7.5 - - - - CORRELATION - - - - ARBITRARY - - - - - Some custom Filter - - - - 0 - 1.5 - 3 - 4.5 - 6 - 7.5 - - - - CORRELATION - - - - - ABSOLUTE - Some source profile - Some display profile - Some ICC profile - - - - AUTO - 1 - - 0.20000000000000001 - 0.80000000000000004 - 0.10000000000000001 - 0.10000000000000001 - - - - TTC Name - - TTC DB - - - - val - - - WGS_84 - - - 1 - 0 - - - 2 - 3 - - - 3 - 6 - - - 4 - 9 - - - - - 23 - 34 - - - 23 - 35 - - - 23 - 36 - - - - GeoValue - - 36.5 - 99.870000000000005 - - - - - - - - 0 - 0 - 0 - - - 0 - 0 - - - - 0 - 0 - - - 1 - - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - - 2 - 2 - - - - 0 - - - 0 - - - 0 - - - - - 1 - 2 - - - 3 - 4 - - - 5 - 6 - - - 3 - 2 - - - 3 - 1 - - - 3 - 0 - - - - - - - Sensor Name - - SPOTLIGHT - RMID - - 2021-11-22T21:06:12.691000Z - 2021-11-22T21:06:12.691000Z - 0 - - 0 - 0 - - - - 5 - 10 - - - 9 - 3 - - - - V - OTHER_RcvPolarization - 1.3700000000000001 - flub - - - - 1.2 - 3.3999999999999999 - 5.5999999999999996 - 7.7999999999999998 - 9.0999999999999996 - Parameter - - - - 1.5 - 3.7000000000000002 - - - 10.130000000000001 - 50.899999999999999 - - 3.79 - 8.1099999999999994 - Parameter - - - - - 0 - 0 - - 0 - - UNKNOWN - UNKNOWN - - 58.332000000000001 - Parameter - - - - - - 1 - 2 - - - 1.3999999999999999 - 2.8999999999999999 - - - 1.3999999999999999 - 2.8999999999999999 - - - 1.3999999999999999 - 2.8999999999999999 - - - 1.3999999999999999 - 2.8999999999999999 - - - - Processing Event - 2021-11-22T21:06:12.691000Z - Value - - - - - 0.12 - 0.72999999999999998 - 9.8399999999999999 - - - - ECF - 1.1000000000000001 - 1.1000000000000001 - 1.1000000000000001 - 1.1000000000000001 - 1.1000000000000001 - 1.1000000000000001 - - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - 6.2000000000000002 - - - 48.170000000000002 - 113.965 - - - - 43.5 - 1111.0999999999999 - 85 - - 123 - 0.029999999999999999 - - - - 0.0028900000000000002 - 777 - - 0 - 98.700000000000003 - - - - 1.2 - 77632 - 0.071999999999999995 - - 48.159999999999997 - 113.964 - - - - - 1.23 - 4.56 - 7.89 - - - 12.34 - 56.78 - - - 123.4 - 567.8 - - - - - Error StatisticsParameterValue - - - - - ABSOLUTE - - 0 - - - - 0 - - - 0 - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 0 - - - - - - 1 - 2 - - - 3.14 - - - - - 3 - 4 - - - 3.1415 - - - 3.1415926 - - - - - - - - 1 - 2 - - 42 - -83 - - - - UTM - World Geodetic System 1984 - World Geodetic System 1984 - Mean Sea Level - Mean Sea Level - 0 - 15 - - - 3 - - 4 - 5 - - - 6 - 7 - - - -32768 - - - - Value - - Value - Value - - - - - - Annotation identifier - - - CS Name - - - Spheroid - 69.030000000000001 - 71.472999999999999 - - - - Prime Meridian - 11.109999999999999 - - Unit - - Axis 1 - - - - 2.3999999999999999 - 3.5 - 4.5499999999999998 - 5.7569999999999997 - - - - + From 7ca9b9d6d026ff4f756ba69eb6e3a839c028ca57 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 16:48:38 -0400 Subject: [PATCH 05/50] rename to better name --- .../tests/sample_xml/{pathological00.xml => sidd300-bad.xml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename six/modules/c++/six.sidd/tests/sample_xml/{pathological00.xml => sidd300-bad.xml} (100%) diff --git a/six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml b/six/modules/c++/six.sidd/tests/sample_xml/sidd300-bad.xml similarity index 100% rename from six/modules/c++/six.sidd/tests/sample_xml/pathological00.xml rename to six/modules/c++/six.sidd/tests/sample_xml/sidd300-bad.xml From 5065e3389260bb386befe266d5d9ee4d627deea8 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 16:51:21 -0400 Subject: [PATCH 06/50] lowercase --- six/modules/c++/six.sidd/tests/sample_xml/sidd300-bad.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/six/modules/c++/six.sidd/tests/sample_xml/sidd300-bad.xml b/six/modules/c++/six.sidd/tests/sample_xml/sidd300-bad.xml index 871754135..aee7c7eeb 100644 --- a/six/modules/c++/six.sidd/tests/sample_xml/sidd300-bad.xml +++ b/six/modules/c++/six.sidd/tests/sample_xml/sidd300-bad.xml @@ -1,3 +1,3 @@ - + From d69aa4df7fda59ee3084bd81e0dd328ad0d74d8c Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 16:52:50 -0400 Subject: [PATCH 07/50] rename test to match bad file --- six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index b97953514..e1348d29f 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -198,10 +198,12 @@ TEST_CASE(test_read_sidd300_v13_xml) test_read_sidd_xml(testName, "sidd300_ISM-v13.xml"); } -TEST_CASE(test_read_pathological00_xml) +TEST_CASE(test_read_sidd300_bad_xml) { const auto schemaPaths = getSchemaPaths(); - TEST_SPECIFIC_EXCEPTION(test_read_sidd_xml(testName, "pathological00.xml", &schemaPaths), six::DESValidationException); + TEST_SPECIFIC_EXCEPTION( + test_read_sidd_xml(testName, "sidd300-bad.xml", &schemaPaths), + six::DESValidationException); } TEST_MAIN( From c97f933329ba3ea51d11daaa9cdf8ab74a73886a Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 20:05:28 -0400 Subject: [PATCH 08/50] test files for bad parse --- six/modules/c++/six.sidd/tests/sample_xml/sidd200-bad.xml | 3 +++ .../c++/six.sidd/tests/sample_xml/sidd300_ISM-v13-bad.xml | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 six/modules/c++/six.sidd/tests/sample_xml/sidd200-bad.xml create mode 100644 six/modules/c++/six.sidd/tests/sample_xml/sidd300_ISM-v13-bad.xml diff --git a/six/modules/c++/six.sidd/tests/sample_xml/sidd200-bad.xml b/six/modules/c++/six.sidd/tests/sample_xml/sidd200-bad.xml new file mode 100644 index 000000000..b2d720690 --- /dev/null +++ b/six/modules/c++/six.sidd/tests/sample_xml/sidd200-bad.xml @@ -0,0 +1,3 @@ + + + diff --git a/six/modules/c++/six.sidd/tests/sample_xml/sidd300_ISM-v13-bad.xml b/six/modules/c++/six.sidd/tests/sample_xml/sidd300_ISM-v13-bad.xml new file mode 100644 index 000000000..b3587469f --- /dev/null +++ b/six/modules/c++/six.sidd/tests/sample_xml/sidd300_ISM-v13-bad.xml @@ -0,0 +1,3 @@ + + + From 56488e1798fb789978d98f5cfacb7296819d30ee Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 20:06:45 -0400 Subject: [PATCH 09/50] tests for bad files --- .../six.sidd/unittests/test_valid_sixsidd.cpp | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index e1348d29f..8880ad45d 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -198,6 +198,14 @@ TEST_CASE(test_read_sidd300_v13_xml) test_read_sidd_xml(testName, "sidd300_ISM-v13.xml"); } +TEST_CASE(test_read_sidd200_bad_xml) +{ + const auto schemaPaths = getSchemaPaths(); + TEST_SPECIFIC_EXCEPTION( + test_read_sidd_xml(testName, "sidd200-bad.xml", &schemaPaths), + six::DESValidationException); +} + TEST_CASE(test_read_sidd300_bad_xml) { const auto schemaPaths = getSchemaPaths(); @@ -206,6 +214,14 @@ TEST_CASE(test_read_sidd300_bad_xml) six::DESValidationException); } +TEST_CASE(test_read_sidd300_v13_bad_xml) +{ + const auto schemaPaths = getSchemaPaths(); + TEST_SPECIFIC_EXCEPTION( + test_read_sidd_xml(testName, "sidd300_ISM-v13-bad.xml", &schemaPaths), + six::DESValidationException); +} + TEST_MAIN( TEST_CHECK(test_createFakeDerivedData); TEST_CHECK(test_createFakeDerivedData_validate); @@ -213,5 +229,7 @@ TEST_MAIN( TEST_CHECK(test_read_sidd200_xml); TEST_CHECK(test_read_sidd300_xml); TEST_CHECK(test_read_sidd300_v13_xml); - TEST_CHECK(test_read_pathological00_xml); + TEST_CHECK(test_read_sidd200_bad_xml); + TEST_CHECK(test_read_sidd300_bad_xml); + TEST_CHECK(test_read_sidd300_v13_bad_xml); ) From 78b3a99cc125f484677c677b40ac8fb9d8a25d07 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Tue, 1 Oct 2024 09:39:38 -0400 Subject: [PATCH 10/50] test files for bad sicd xmls --- .../six.sicd/tests/sample_xml/sicd040-bad.xml | 1297 ++++++++++++++++ .../six.sicd/tests/sample_xml/sicd041-bad.xml | 194 +++ .../six.sicd/tests/sample_xml/sicd050-bad.xml | 1303 ++++++++++++++++ .../six.sicd/tests/sample_xml/sicd100-bad.xml | 1305 ++++++++++++++++ .../six.sicd/tests/sample_xml/sicd101-bad.xml | 1305 ++++++++++++++++ .../six.sicd/tests/sample_xml/sicd110-bad.xml | 196 +++ .../six.sicd/tests/sample_xml/sicd120-bad.xml | 1305 ++++++++++++++++ .../six.sicd/tests/sample_xml/sicd121-bad.xml | 1372 +++++++++++++++++ 8 files changed, 8277 insertions(+) create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd040-bad.xml create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd041-bad.xml create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd050-bad.xml create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd100-bad.xml create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd101-bad.xml create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd110-bad.xml create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd120-bad.xml create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/sicd121-bad.xml diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd040-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd040-bad.xml new file mode 100644 index 000000000..12dcf0fd7 --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd040-bad.xml @@ -0,0 +1,1297 @@ + + + + + TSX-1 + C21_N93_D_SL_spot_072_R_2008-01-27T05:17:46.760537Z + MONOSTATIC + + DYNAMIC STRIPMAP + SL + + UNCLASSIFIED + + + 2008-01-28T14:54:46.000000Z + Prototype + + + RE16I_IM16I + 5 + 5 + 100 + 100 + + 9504 + 8330 + + + 4839 + 4299 + + + + WGS_84 + + + 4.191860331112470E06 + 9.016414035350683E05 + 4.706688748498361E06 + + + 4.785840035803692E01 + 1.213899391613695E01 + 4.880295281264820E02 + + + + + 4.789810839214282E01 + 1.222765721977077E01 + + + 4.789806289085421E01 + 1.222764692948162E01 + + + 4.789806972979798E01 + 1.222758101011451E01 + + + 4.789811523108673E01 + 1.222759130034758E01 + + + + + SLANT + RGZERO + + 1.978794889212633E00 + 2.626962861230997E-04 + 6.131681355197419E-16 + -8.953947963421265E-09 + -9.825215436096418E-13 + -9.621627844218110E-24 + 3.350056876670029E-17 + 3.674343486691870E-21 + -3.950885079742213E-28 + + + + -3.749303942812739E-01 + -8.220060859048532E-01 + -4.286411018316738E-01 + + 9.094034154201429E-01 + 1.168655293258210E00 + -1 + 1.000692285594456E00 + 6.437787037324334E01 + -5.003461427972281E-01 + 5.003461427972281E-01 + + 0.000000000000000E00 + + HAMMING + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 7.471615423154929E-01 + 5.777028296431175E-03 + -6.646173753587820E-01 + + 1.279314517974854E00 + 1.661747878952145E00 + -1 + 7.037555764596798E-01 + 0.000000000000000E00 + -3.908343046020432E-01 + 3.908343046020432E-01 + + -1.698739114060377E-02 + -8.210259382327485E-05 + -4.175196504749792E-16 + 6.096985553940277E-09 + 6.690255160405476E-13 + 6.523243026206749E-24 + -2.280307821159576E-17 + -2.502140816576197E-21 + -1.809576253936911E-29 + + HAMMING + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 2008-01-27T05:17:45.588000Z + 3.864829000000000E00 + + + 0.000000000000000E00 + 3.864829000000000E00 + 0 + 14681 + + 0.000000000000000E00 + 3.798607853982301E03 + + + + + + + + 4.453030084213504E06 + 5.751533224176324E03 + -2.701460186278990E00 + -1.232314334502686E-03 + 2.767977579632777E-07 + 8.573555430347218E-11 + + + 1.498761460380943E06 + 4.958488150457533E01 + -1.329901152397693E00 + 1.203537682078138E-04 + 1.797597475279295E-07 + -1.805353252780213E-11 + + + 5.028076193124518E06 + -5.094706679283640E03 + -3.076367686373969E00 + 1.035836350032695E-03 + 3.164089926425110E-07 + -6.048720512751894E-11 + + + + + + 9.575000000000000E09 + 9.725000000000000E09 + + H + + + 5.183547826892217E-05 + 1.500000000000000E08 + 9.575000000000000E09 + 2.893770926966293E12 + CHIRP + 1.094951675792963E-04 + 1.648291920000000E08 + 0.000000000000000E00 + + + + + H:H + + + + + + 1 + 1.000000000000000E00 + 1 + + H:H + RMA + 0.000000000000000E00 + 3.864829000000000E00 + + 9.575000000000000E09 + 9.725000000000000E09 + + SV + NO + NO + NO + + + 1.978794889212633E00 + + 4.464400601302211E06 + 1.498854372226527E06 + 5.017982775701074E06 + + + 5.740827485683599E03 + 4.432309764961589E01 + -5.106869502938895E03 + + + -5.417538337065467E00 + -2.658364928594254E00 + -6.140422268784738E00 + + R + 7.265297655433301E05 + 4.932683179209292E05 + 9.001374323548251E01 + 4.282425590831252E01 + 4.717574409168748E01 + 1.618550968677545E-01 + 4.282450257715610E01 + + + OMEGA_K + INCA + + + 1.954027443465525E00 + 1.421215617195412E-04 + + 7.265297427195406E05 + 9.650000000000000E09 + + 9.157320868504847E-01 + -3.532437517714102E-08 + 3.625716232913313E-13 + 2.953824195070095E-18 + -6.012488258835277E-38 + + + -1.195271916173158E02 + -5.776927359220403E-01 + -2.937764301372519E-12 + 4.289979282645305E-05 + 4.707417424533966E-09 + 4.589903845188205E-20 + -1.604477036116078E-13 + -1.760563834440445E-17 + -1.273259477339462E-25 + + true + + + diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd041-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd041-bad.xml new file mode 100644 index 000000000..6dbeeac97 --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd041-bad.xml @@ -0,0 +1,194 @@ + + + + + sensorname + corename + + SPOTLIGHT + + UNCLASSIFIED + + + 2016-01-16T14:46:25.775974Z + + + RE32F_IM32F + 2 + 2 + 0 + 0 + + 2 + 2 + + + 1 + 1 + + + + WGS_84 + + + 5.165293843888324E05 + -4.698512226124156E06 + 4.267909507691634E06 + + + 4.227080000000000E01 + -8.372640000000000E01 + 0.000000000000000E00 + + + + + 4.229722222222222E01 + -8.376222222222222E01 + + + 4.229722222222222E01 + -8.370333333333333E01 + + + 4.225388888888889E01 + -8.370333333333333E01 + + + 4.225388888888889E01 + -8.376222222222222E01 + + + + + SLANT + RGAZIM + + 1.560574314284600E07 + + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + 0.000000000000000E00 + +1 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + 0.000000000000000E00 + +1 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + + 1970-01-01T00:00:00.000000Z + 0.000000000000000E00 + + + + + 0.000000000000000E00 + + + 0.000000000000000E00 + + + 0.000000000000000E00 + + + + + + 0.000000000000000E00 + 0.000000000000000E00 + + OTHER + + + OTHER + + + + + + 1 + 0 + + OTHER + PFA + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + 0.000000000000000E00 + + NO + NO + NO + NO + + + 1.560574314284600E07 + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + L + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + + 4.200000000000000E01 + + + 4.200000000000000E01 + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd050-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd050-bad.xml new file mode 100644 index 000000000..f56c56994 --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd050-bad.xml @@ -0,0 +1,1303 @@ + + + + + TSX-1 + C21_N93_D_SL_spot_072_R_2008-01-27T05:17:46.760537Z + MONOSTATIC + + DYNAMIC STRIPMAP + SL + + UNCLASSIFIED + + + 2008-01-28T14:54:46.000000Z + Prototype + + + RE16I_IM16I + 5 + 5 + 100 + 100 + + 9504 + 8330 + + + 4839 + 4299 + + + + WGS_84 + + + 4.191860331112470E06 + 9.016414035350683E05 + 4.706688748498361E06 + + + 4.785840035803692E01 + 1.213899391613695E01 + 4.880295281264820E02 + + + + + 4.789810839214282E01 + 1.222765721977077E01 + + + 4.789806289085421E01 + 1.222764692948162E01 + + + 4.789806972979798E01 + 1.222758101011451E01 + + + 4.789811523108673E01 + 1.222759130034758E01 + + + + + SLANT + RGZERO + + 1.978794889212633E00 + 2.626962861230997E-04 + 6.131681355197419E-16 + -8.953947963421265E-09 + -9.825215436096418E-13 + -9.621627844218110E-24 + 3.350056876670029E-17 + 3.674343486691870E-21 + -3.950885079742213E-28 + + + + -3.749303942812739E-01 + -8.220060859048532E-01 + -4.286411018316738E-01 + + 9.094034154201429E-01 + 1.168655293258210E00 + -1 + 1.000692285594456E00 + 6.437787037324334E01 + -5.003461427972281E-01 + 5.003461427972281E-01 + + 0.000000000000000E00 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 7.471615423154929E-01 + 5.777028296431175E-03 + -6.646173753587820E-01 + + 1.279314517974854E00 + 1.661747878952145E00 + -1 + 7.037555764596798E-01 + 0.000000000000000E00 + -3.908343046020432E-01 + 3.908343046020432E-01 + + -1.698739114060377E-02 + -8.210259382327485E-05 + -4.175196504749792E-16 + 6.096985553940277E-09 + 6.690255160405476E-13 + 6.523243026206749E-24 + -2.280307821159576E-17 + -2.502140816576197E-21 + -1.809576253936911E-29 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 2008-01-27T05:17:45.588000Z + 3.864829000000000E00 + + + 0.000000000000000E00 + 3.864829000000000E00 + 0 + 14681 + + 0.000000000000000E00 + 3.798607853982301E03 + + + + + + + + 4.453030084213504E06 + 5.751533224176324E03 + -2.701460186278990E00 + -1.232314334502686E-03 + 2.767977579632777E-07 + 8.573555430347218E-11 + + + 1.498761460380943E06 + 4.958488150457533E01 + -1.329901152397693E00 + 1.203537682078138E-04 + 1.797597475279295E-07 + -1.805353252780213E-11 + + + 5.028076193124518E06 + -5.094706679283640E03 + -3.076367686373969E00 + 1.035836350032695E-03 + 3.164089926425110E-07 + -6.048720512751894E-11 + + + + + + 9.575000000000000E09 + 9.725000000000000E09 + + H + + + 5.183547826892217E-05 + 1.500000000000000E08 + 9.575000000000000E09 + 2.893770926966293E12 + CHIRP + 1.094951675792963E-04 + 1.648291920000000E08 + 0.000000000000000E00 + + + + + H:H + + + + + + 1 + 1.000000000000000E00 + 1 + + H:H + RMA + 0.000000000000000E00 + 3.864829000000000E00 + + 9.575000000000000E09 + 9.725000000000000E09 + + SV + NO + NO + NO + + + 1.978794889212633E00 + + 4.464400601302211E06 + 1.498854372226527E06 + 5.017982775701074E06 + + + 5.740827485683599E03 + 4.432309764961589E01 + -5.106869502938895E03 + + + -5.417538337065467E00 + -2.658364928594254E00 + -6.140422268784738E00 + + R + 7.265297655433301E05 + 4.932683179209292E05 + 9.001374323548251E01 + 4.282425590831252E01 + 4.717574409168748E01 + 1.618550968677545E-01 + 4.282450257715610E01 + + + OMEGA_K + INCA + + + 1.954027443465525E00 + 1.421215617195412E-04 + + 7.265297427195406E05 + 9.650000000000000E09 + + 9.157320868504847E-01 + -3.532437517714102E-08 + 3.625716232913313E-13 + 2.953824195070095E-18 + -6.012488258835277E-38 + + + -1.195271916173158E02 + -5.776927359220403E-01 + -2.937764301372519E-12 + 4.289979282645305E-05 + 4.707417424533966E-09 + 4.589903845188205E-20 + -1.604477036116078E-13 + -1.760563834440445E-17 + -1.273259477339462E-25 + + true + + + diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd100-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd100-bad.xml new file mode 100644 index 000000000..557053950 --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd100-bad.xml @@ -0,0 +1,1305 @@ + + + + + TSX-1 + C21_N93_D_SL_spot_072_R_2008-01-27T05:17:46.760537Z + MONOSTATIC + + DYNAMIC STRIPMAP + SL + + UNCLASSIFIED + + + 2008-01-28T14:54:46.000000Z + Prototype + + + RE16I_IM16I + 5 + 5 + 100 + 100 + + 9504 + 8330 + + + 4839 + 4299 + + + + WGS_84 + + + 4.191860331112470E06 + 9.016414035350683E05 + 4.706688748498361E06 + + + 4.785840035803692E01 + 1.213899391613695E01 + 4.880295281264820E02 + + + + + 4.789810839214282E01 + 1.222765721977077E01 + + + 4.789806289085421E01 + 1.222764692948162E01 + + + 4.789806972979798E01 + 1.222758101011451E01 + + + 4.789811523108673E01 + 1.222759130034758E01 + + + + + SLANT + RGZERO + + 1.978794889212633E00 + 2.626962861230997E-04 + 6.131681355197419E-16 + -8.953947963421265E-09 + -9.825215436096418E-13 + -9.621627844218110E-24 + 3.350056876670029E-17 + 3.674343486691870E-21 + -3.950885079742213E-28 + + + + -3.749303942812739E-01 + -8.220060859048532E-01 + -4.286411018316738E-01 + + 9.094034154201429E-01 + 1.168655293258210E00 + -1 + 1.000692285594456E00 + 6.437787037324334E01 + -5.003461427972281E-01 + 5.003461427972281E-01 + + 0.000000000000000E00 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 7.471615423154929E-01 + 5.777028296431175E-03 + -6.646173753587820E-01 + + 1.279314517974854E00 + 1.661747878952145E00 + -1 + 7.037555764596798E-01 + 0.000000000000000E00 + -3.908343046020432E-01 + 3.908343046020432E-01 + + -1.698739114060377E-02 + -8.210259382327485E-05 + -4.175196504749792E-16 + 6.096985553940277E-09 + 6.690255160405476E-13 + 6.523243026206749E-24 + -2.280307821159576E-17 + -2.502140816576197E-21 + -1.809576253936911E-29 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 2008-01-27T05:17:45.588000Z + 3.864829000000000E00 + + + 0.000000000000000E00 + 3.864829000000000E00 + 0 + 14681 + + 0.000000000000000E00 + 3.798607853982301E03 + + + + + + + + 4.453030084213504E06 + 5.751533224176324E03 + -2.701460186278990E00 + -1.232314334502686E-03 + 2.767977579632777E-07 + 8.573555430347218E-11 + + + 1.498761460380943E06 + 4.958488150457533E01 + -1.329901152397693E00 + 1.203537682078138E-04 + 1.797597475279295E-07 + -1.805353252780213E-11 + + + 5.028076193124518E06 + -5.094706679283640E03 + -3.076367686373969E00 + 1.035836350032695E-03 + 3.164089926425110E-07 + -6.048720512751894E-11 + + + + + + 9.575000000000000E09 + 9.725000000000000E09 + + + + 5.183547826892217E-05 + 1.500000000000000E08 + 9.575000000000000E09 + 2.893770926966293E12 + CHIRP + 1.094951675792963E-04 + 1.648291920000000E08 + 0.000000000000000E00 + + + H + + + H:H + + + + + + 1 + 1.000000000000000E00 + 1 + + H:H + 0.000000000000000E00 + 3.864829000000000E00 + + 9.575000000000000E09 + 9.725000000000000E09 + + RMA + SV + NO + NO + NO + + + 1.978794889212633E00 + + 4.464400601302211E06 + 1.498854372226527E06 + 5.017982775701074E06 + + + 5.740827485683599E03 + 4.432309764961589E01 + -5.106869502938895E03 + + + -5.417538337065467E00 + -2.658364928594254E00 + -6.140422268784738E00 + + R + 7.265297655433301E05 + 4.932683179209292E05 + 9.001374323548251E01 + 4.282425590831252E01 + 4.717574409168748E01 + 1.618550968677545E-01 + 4.282450257715610E01 + 9.883241207398598E01 + 9.859430372288240E01 + + + OMEGA_K + INCA + + + 1.954027443465525E00 + 1.421215617195412E-04 + + 7.265297427195406E05 + 9.650000000000000E09 + + 9.157320868504847E-01 + -3.532437517714102E-08 + 3.625716232913313E-13 + 2.953824195070095E-18 + -6.012488258835277E-38 + + + -1.195271916173158E02 + -5.776927359220403E-01 + -2.937764301372519E-12 + 4.289979282645305E-05 + 4.707417424533966E-09 + 4.589903845188205E-20 + -1.604477036116078E-13 + -1.760563834440445E-17 + -1.273259477339462E-25 + + true + + + diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd101-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd101-bad.xml new file mode 100644 index 000000000..334a81f40 --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd101-bad.xml @@ -0,0 +1,1305 @@ + + + + + TSX-1 + C21_N93_D_SL_spot_072_R_2008-01-27T05:17:46.760537Z + MONOSTATIC + + DYNAMIC STRIPMAP + SL + + UNCLASSIFIED + + + 2008-01-28T14:54:46.000000Z + Prototype + + + RE16I_IM16I + 5 + 5 + 100 + 100 + + 9504 + 8330 + + + 4839 + 4299 + + + + WGS_84 + + + 4.191860331112470E06 + 9.016414035350683E05 + 4.706688748498361E06 + + + 4.785840035803692E01 + 1.213899391613695E01 + 4.880295281264820E02 + + + + + 4.789810839214282E01 + 1.222765721977077E01 + + + 4.789806289085421E01 + 1.222764692948162E01 + + + 4.789806972979798E01 + 1.222758101011451E01 + + + 4.789811523108673E01 + 1.222759130034758E01 + + + + + SLANT + RGZERO + + 1.978794889212633E00 + 2.626962861230997E-04 + 6.131681355197419E-16 + -8.953947963421265E-09 + -9.825215436096418E-13 + -9.621627844218110E-24 + 3.350056876670029E-17 + 3.674343486691870E-21 + -3.950885079742213E-28 + + + + -3.749303942812739E-01 + -8.220060859048532E-01 + -4.286411018316738E-01 + + 9.094034154201429E-01 + 1.168655293258210E00 + -1 + 1.000692285594456E00 + 6.437787037324334E01 + -5.003461427972281E-01 + 5.003461427972281E-01 + + 0.000000000000000E00 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 7.471615423154929E-01 + 5.777028296431175E-03 + -6.646173753587820E-01 + + 1.279314517974854E00 + 1.661747878952145E00 + -1 + 7.037555764596798E-01 + 0.000000000000000E00 + -3.908343046020432E-01 + 3.908343046020432E-01 + + -1.698739114060377E-02 + -8.210259382327485E-05 + -4.175196504749792E-16 + 6.096985553940277E-09 + 6.690255160405476E-13 + 6.523243026206749E-24 + -2.280307821159576E-17 + -2.502140816576197E-21 + -1.809576253936911E-29 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 2008-01-27T05:17:45.588000Z + 3.864829000000000E00 + + + 0.000000000000000E00 + 3.864829000000000E00 + 0 + 14681 + + 0.000000000000000E00 + 3.798607853982301E03 + + + + + + + + 4.453030084213504E06 + 5.751533224176324E03 + -2.701460186278990E00 + -1.232314334502686E-03 + 2.767977579632777E-07 + 8.573555430347218E-11 + + + 1.498761460380943E06 + 4.958488150457533E01 + -1.329901152397693E00 + 1.203537682078138E-04 + 1.797597475279295E-07 + -1.805353252780213E-11 + + + 5.028076193124518E06 + -5.094706679283640E03 + -3.076367686373969E00 + 1.035836350032695E-03 + 3.164089926425110E-07 + -6.048720512751894E-11 + + + + + + 9.575000000000000E09 + 9.725000000000000E09 + + + + 5.183547826892217E-05 + 1.500000000000000E08 + 9.575000000000000E09 + 2.893770926966293E12 + CHIRP + 1.094951675792963E-04 + 1.648291920000000E08 + 0.000000000000000E00 + + + H + + + H:H + + + + + + 1 + 1.000000000000000E00 + 1 + + H:H + 0.000000000000000E00 + 3.864829000000000E00 + + 9.575000000000000E09 + 9.725000000000000E09 + + RMA + SV + NO + NO + NO + + + 1.978794889212633E00 + + 4.464400601302211E06 + 1.498854372226527E06 + 5.017982775701074E06 + + + 5.740827485683599E03 + 4.432309764961589E01 + -5.106869502938895E03 + + + -5.417538337065467E00 + -2.658364928594254E00 + -6.140422268784738E00 + + R + 7.265297655433301E05 + 4.932683179209292E05 + 9.001374323548251E01 + 4.282425590831252E01 + 4.717574409168748E01 + 1.618550968677545E-01 + 4.282450257715610E01 + 9.883241207398598E01 + 9.859430372288240E01 + + + OMEGA_K + INCA + + + 1.954027443465525E00 + 1.421215617195412E-04 + + 7.265297427195406E05 + 9.650000000000000E09 + + 9.157320868504847E-01 + -3.532437517714102E-08 + 3.625716232913313E-13 + 2.953824195070095E-18 + -6.012488258835277E-38 + + + -1.195271916173158E02 + -5.776927359220403E-01 + -2.937764301372519E-12 + 4.289979282645305E-05 + 4.707417424533966E-09 + 4.589903845188205E-20 + -1.604477036116078E-13 + -1.760563834440445E-17 + -1.273259477339462E-25 + + true + + + diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd110-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd110-bad.xml new file mode 100644 index 000000000..2abb82457 --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd110-bad.xml @@ -0,0 +1,196 @@ + + + + + sensorname + corename + + SPOTLIGHT + + UNCLASSIFIED + + + 2016-01-16T14:46:51.257074Z + + + RE32F_IM32F + 2 + 2 + 0 + 0 + + 2 + 2 + + + 1 + 1 + + + + WGS_84 + + + 5.165293843888324E05 + -4.698512226124156E06 + 4.267909507691634E06 + + + 4.227080000000000E01 + -8.372640000000000E01 + 0.000000000000000E00 + + + + + 4.229722222222222E01 + -8.376222222222222E01 + + + 4.229722222222222E01 + -8.370333333333333E01 + + + 4.225388888888889E01 + -8.370333333333333E01 + + + 4.225388888888889E01 + -8.376222222222222E01 + + + + + SLANT + RGAZIM + + 1.560574314284600E07 + + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + 0.000000000000000E00 + +1 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + 0.000000000000000E00 + +1 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + + 1970-01-01T00:00:00.000000Z + 0.000000000000000E00 + + + + + 0.000000000000000E00 + + + 0.000000000000000E00 + + + 0.000000000000000E00 + + + + + + 0.000000000000000E00 + 0.000000000000000E00 + + OTHER + + + OTHER + + + + + + 1 + 0 + + OTHER + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + 0.000000000000000E00 + + PFA + NO + NO + NO + NO + + + 1.560574314284600E07 + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + L + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + 0.000000000000000E00 + + 4.200000000000000E01 + + + 4.200000000000000E01 + + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + 0.000000000000000E00 + + diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd120-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd120-bad.xml new file mode 100644 index 000000000..cdab20ded --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd120-bad.xml @@ -0,0 +1,1305 @@ + + + + + TSX-1 + C21_N93_D_SL_spot_072_R_2008-01-27T05:17:46.760537Z + MONOSTATIC + + DYNAMIC STRIPMAP + SL + + UNCLASSIFIED + + + 2008-01-28T14:54:46.000000Z + Prototype + + + RE16I_IM16I + 5 + 5 + 100 + 100 + + 9504 + 8330 + + + 4839 + 4299 + + + + WGS_84 + + + 4.191860331112470E06 + 9.016414035350683E05 + 4.706688748498361E06 + + + 4.785840035803692E01 + 1.213899391613695E01 + 4.880295281264820E02 + + + + + 4.789810839214282E01 + 1.222765721977077E01 + + + 4.789806289085421E01 + 1.222764692948162E01 + + + 4.789806972979798E01 + 1.222758101011451E01 + + + 4.789811523108673E01 + 1.222759130034758E01 + + + + + SLANT + RGZERO + + 1.978794889212633E00 + 2.626962861230997E-04 + 6.131681355197419E-16 + -8.953947963421265E-09 + -9.825215436096418E-13 + -9.621627844218110E-24 + 3.350056876670029E-17 + 3.674343486691870E-21 + -3.950885079742213E-28 + + + + -3.749303942812739E-01 + -8.220060859048532E-01 + -4.286411018316738E-01 + + 9.094034154201429E-01 + 1.168655293258210E00 + -1 + 1.000692285594456E00 + 6.437787037324334E01 + -5.003461427972281E-01 + 5.003461427972281E-01 + + 0.000000000000000E00 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 7.471615423154929E-01 + 5.777028296431175E-03 + -6.646173753587820E-01 + + 1.279314517974854E00 + 1.661747878952145E00 + -1 + 7.037555764596798E-01 + 0.000000000000000E00 + -3.908343046020432E-01 + 3.908343046020432E-01 + + -1.698739114060377E-02 + -8.210259382327485E-05 + -4.175196504749792E-16 + 6.096985553940277E-09 + 6.690255160405476E-13 + 6.523243026206749E-24 + -2.280307821159576E-17 + -2.502140816576197E-21 + -1.809576253936911E-29 + + + HAMMING + 6.00000023841857910E-01 + + + 2.000000476837158E-01 + 2.000302849437328E-01 + 2.001209921523241E-01 + 2.002721555958016E-01 + 2.004837524203222E-01 + 2.007557506353431E-01 + 2.010881091184579E-01 + 2.014807776216143E-01 + 2.019336967787107E-01 + 2.024467981145713E-01 + 2.030200040552991E-01 + 2.036532279400034E-01 + 2.043463740339024E-01 + 2.050993375427963E-01 + 2.059120046289115E-01 + 2.067842524281106E-01 + 2.077159490684682E-01 + 2.087069536902081E-01 + 2.097571164669994E-01 + 2.108662786286076E-01 + 2.120342724848996E-01 + 2.132609214511951E-01 + 2.145460400749643E-01 + 2.158894340638657E-01 + 2.172909003151206E-01 + 2.187502269462189E-01 + 2.202671933269537E-01 + 2.218415701127768E-01 + 2.234731192794728E-01 + 2.251615941591452E-01 + 2.269067394775087E-01 + 2.287082913924840E-01 + 2.305659775340864E-01 + 2.324795170456045E-01 + 2.344486206260625E-01 + 2.364729905739577E-01 + 2.385523208322695E-01 + 2.406862970347307E-01 + 2.428745965533555E-01 + 2.451168885472166E-01 + 2.474128340124635E-01 + 2.497620858335753E-01 + 2.521642888358402E-01 + 2.546190798390525E-01 + 2.571260877124209E-01 + 2.596849334306779E-01 + 2.622952301313841E-01 + 2.649565831734156E-01 + 2.676685901966288E-01 + 2.704308411826915E-01 + 2.732429185170723E-01 + 2.761043970521783E-01 + 2.790148441716310E-01 + 2.819738198556728E-01 + 2.849808767476912E-01 + 2.880355602218536E-01 + 2.911374084518398E-01 + 2.942859524806648E-01 + 2.974807162915776E-01 + 3.007212168800295E-01 + 3.040069643266967E-01 + 3.073374618715501E-01 + 3.107122059889586E-01 + 3.141306864638149E-01 + 3.175923864686731E-01 + 3.210967826418865E-01 + 3.246433451667319E-01 + 3.282315378515113E-01 + 3.318608182106163E-01 + 3.355306375465447E-01 + 3.392404410328561E-01 + 3.429896677980540E-01 + 3.467777510103817E-01 + 3.506041179635198E-01 + 3.544681901631713E-01 + 3.583693834145225E-01 + 3.623071079105645E-01 + 3.662807683212646E-01 + 3.702897638835715E-01 + 3.743334884922431E-01 + 3.784113307914809E-01 + 3.825226742673584E-01 + 3.866668973410302E-01 + 3.908433734627057E-01 + 3.950514712063749E-01 + 3.992905543652718E-01 + 4.035599820480595E-01 + 4.078591087757248E-01 + 4.121872845791653E-01 + 4.165438550974564E-01 + 4.209281616767808E-01 + 4.253395414700090E-01 + 4.297773275369120E-01 + 4.342408489449938E-01 + 4.387294308709272E-01 + 4.432423947025775E-01 + 4.477790581416001E-01 + 4.523387353065942E-01 + 4.569207368367982E-01 + 4.615243699963129E-01 + 4.661489387788320E-01 + 4.707937440128703E-01 + 4.754580834674682E-01 + 4.801412519583589E-01 + 4.848425414545836E-01 + 4.895612411855352E-01 + 4.942966377484177E-01 + 4.990480152161027E-01 + 5.038146552453676E-01 + 5.085958371854998E-01 + 5.133908381872486E-01 + 5.181989333121103E-01 + 5.230193956419292E-01 + 5.278514963887976E-01 + 5.326945050052384E-01 + 5.375476892946540E-01 + 5.424103155220241E-01 + 5.472816485248371E-01 + 5.521609518242359E-01 + 5.570474877363635E-01 + 5.619405174838913E-01 + 5.668393013077114E-01 + 5.717430985787785E-01 + 5.766511679100823E-01 + 5.815627672687361E-01 + 5.864771540881611E-01 + 5.913935853803527E-01 + 5.963113178482097E-01 + 6.012296079979111E-01 + 6.061477122513224E-01 + 6.110648870584134E-01 + 6.159803890096742E-01 + 6.208934749485072E-01 + 6.258034020835831E-01 + 6.307094281011404E-01 + 6.356108112772132E-01 + 6.405068105897697E-01 + 6.453966858307444E-01 + 6.502796977179476E-01 + 6.551551080068350E-01 + 6.600221796021195E-01 + 6.648801766692106E-01 + 6.697283647454623E-01 + 6.745660108512131E-01 + 6.793923836006039E-01 + 6.842067533121524E-01 + 6.890083921190712E-01 + 6.937965740793115E-01 + 6.985705752853153E-01 + 7.033296739734608E-01 + 7.080731506331825E-01 + 7.128002881157524E-01 + 7.175103717427015E-01 + 7.222026894138709E-01 + 7.268765317150706E-01 + 7.315311920253340E-01 + 7.361659666237486E-01 + 7.407801547958492E-01 + 7.453730589395571E-01 + 7.499439846706462E-01 + 7.544922409277262E-01 + 7.590171400767209E-01 + 7.635179980148290E-01 + 7.679941342739507E-01 + 7.724448721235666E-01 + 7.768695386730478E-01 + 7.812674649733903E-01 + 7.856379861183485E-01 + 7.899804413449620E-01 + 7.942941741334526E-01 + 7.985785323064816E-01 + 8.028328681277499E-01 + 8.070565383999272E-01 + 8.112489045618939E-01 + 8.154093327852839E-01 + 8.195371940703097E-01 + 8.236318643408592E-01 + 8.276927245388472E-01 + 8.317191607178087E-01 + 8.357105641357188E-01 + 8.396663313470267E-01 + 8.435858642938882E-01 + 8.474685703965836E-01 + 8.513138626431078E-01 + 8.551211596779189E-01 + 8.588898858898304E-01 + 8.626194714990365E-01 + 8.663093526432544E-01 + 8.699589714629726E-01 + 8.735677761857925E-01 + 8.771352212098478E-01 + 8.806607671862920E-01 + 8.841438811008420E-01 + 8.875840363543606E-01 + 8.909807128424720E-01 + 8.943333970341953E-01 + 8.976415820495817E-01 + 9.009047677363489E-01 + 9.041224607454972E-01 + 9.072941746058966E-01 + 9.104194297978350E-01 + 9.134977538255149E-01 + 9.165286812884885E-01 + 9.195117539520196E-01 + 9.224465208163621E-01 + 9.253325381849462E-01 + 9.281693697314575E-01 + 9.309565865658053E-01 + 9.336937672989636E-01 + 9.363804981066800E-01 + 9.390163727920401E-01 + 9.416009928468791E-01 + 9.441339675120305E-01 + 9.466149138364036E-01 + 9.490434567348804E-01 + 9.514192290450241E-01 + 9.537418715825872E-01 + 9.560110331958176E-01 + 9.582263708185459E-01 + 9.603875495220537E-01 + 9.624942425657097E-01 + 9.645461314463679E-01 + 9.665429059465220E-01 + 9.684842641812049E-01 + 9.703699126436309E-01 + 9.721995662495684E-01 + 9.739729483804418E-01 + 9.756897909251523E-01 + 9.773498343206122E-01 + 9.789528275909876E-01 + 9.804985283856422E-01 + 9.819867030157783E-01 + 9.834171264897660E-01 + 9.847895825471600E-01 + 9.861038636913944E-01 + 9.873597712211539E-01 + 9.885571152604147E-01 + 9.896957147871507E-01 + 9.907753976607019E-01 + 9.917960006477995E-01 + 9.927573694472451E-01 + 9.936593587132381E-01 + 9.945018320773504E-01 + 9.952846621691438E-01 + 9.960077306354259E-01 + 9.966709281581441E-01 + 9.972741544709129E-01 + 9.978173183741723E-01 + 9.983003377489766E-01 + 9.987231395694094E-01 + 9.990856599136239E-01 + 9.993878439735072E-01 + 9.996296460629668E-01 + 9.998110296248371E-01 + 9.999319672364071E-01 + 9.999924406135654E-01 + 9.999924406135654E-01 + 9.999319672364071E-01 + 9.998110296248371E-01 + 9.996296460629668E-01 + 9.993878439735072E-01 + 9.990856599136239E-01 + 9.987231395694094E-01 + 9.983003377489766E-01 + 9.978173183741723E-01 + 9.972741544709129E-01 + 9.966709281581441E-01 + 9.960077306354259E-01 + 9.952846621691438E-01 + 9.945018320773504E-01 + 9.936593587132381E-01 + 9.927573694472451E-01 + 9.917960006477995E-01 + 9.907753976607019E-01 + 9.896957147871507E-01 + 9.885571152604147E-01 + 9.873597712211539E-01 + 9.861038636913944E-01 + 9.847895825471600E-01 + 9.834171264897660E-01 + 9.819867030157783E-01 + 9.804985283856422E-01 + 9.789528275909876E-01 + 9.773498343206122E-01 + 9.756897909251523E-01 + 9.739729483804418E-01 + 9.721995662495684E-01 + 9.703699126436309E-01 + 9.684842641812049E-01 + 9.665429059465220E-01 + 9.645461314463679E-01 + 9.624942425657097E-01 + 9.603875495220537E-01 + 9.582263708185459E-01 + 9.560110331958176E-01 + 9.537418715825872E-01 + 9.514192290450241E-01 + 9.490434567348804E-01 + 9.466149138364036E-01 + 9.441339675120305E-01 + 9.416009928468791E-01 + 9.390163727920401E-01 + 9.363804981066800E-01 + 9.336937672989636E-01 + 9.309565865658053E-01 + 9.281693697314575E-01 + 9.253325381849462E-01 + 9.224465208163621E-01 + 9.195117539520196E-01 + 9.165286812884885E-01 + 9.134977538255149E-01 + 9.104194297978350E-01 + 9.072941746058966E-01 + 9.041224607454972E-01 + 9.009047677363489E-01 + 8.976415820495817E-01 + 8.943333970341953E-01 + 8.909807128424720E-01 + 8.875840363543606E-01 + 8.841438811008420E-01 + 8.806607671862920E-01 + 8.771352212098478E-01 + 8.735677761857925E-01 + 8.699589714629726E-01 + 8.663093526432544E-01 + 8.626194714990365E-01 + 8.588898858898304E-01 + 8.551211596779189E-01 + 8.513138626431078E-01 + 8.474685703965836E-01 + 8.435858642938882E-01 + 8.396663313470267E-01 + 8.357105641357188E-01 + 8.317191607178087E-01 + 8.276927245388472E-01 + 8.236318643408592E-01 + 8.195371940703097E-01 + 8.154093327852839E-01 + 8.112489045618939E-01 + 8.070565383999272E-01 + 8.028328681277499E-01 + 7.985785323064816E-01 + 7.942941741334526E-01 + 7.899804413449620E-01 + 7.856379861183485E-01 + 7.812674649733903E-01 + 7.768695386730478E-01 + 7.724448721235666E-01 + 7.679941342739507E-01 + 7.635179980148290E-01 + 7.590171400767209E-01 + 7.544922409277262E-01 + 7.499439846706462E-01 + 7.453730589395571E-01 + 7.407801547958492E-01 + 7.361659666237486E-01 + 7.315311920253340E-01 + 7.268765317150706E-01 + 7.222026894138709E-01 + 7.175103717427015E-01 + 7.128002881157524E-01 + 7.080731506331825E-01 + 7.033296739734608E-01 + 6.985705752853153E-01 + 6.937965740793115E-01 + 6.890083921190712E-01 + 6.842067533121524E-01 + 6.793923836006039E-01 + 6.745660108512131E-01 + 6.697283647454623E-01 + 6.648801766692106E-01 + 6.600221796021195E-01 + 6.551551080068350E-01 + 6.502796977179476E-01 + 6.453966858307444E-01 + 6.405068105897697E-01 + 6.356108112772132E-01 + 6.307094281011404E-01 + 6.258034020835831E-01 + 6.208934749485072E-01 + 6.159803890096742E-01 + 6.110648870584134E-01 + 6.061477122513224E-01 + 6.012296079979111E-01 + 5.963113178482097E-01 + 5.913935853803527E-01 + 5.864771540881611E-01 + 5.815627672687361E-01 + 5.766511679100823E-01 + 5.717430985787785E-01 + 5.668393013077114E-01 + 5.619405174838913E-01 + 5.570474877363635E-01 + 5.521609518242359E-01 + 5.472816485248371E-01 + 5.424103155220241E-01 + 5.375476892946540E-01 + 5.326945050052384E-01 + 5.278514963887976E-01 + 5.230193956419292E-01 + 5.181989333121103E-01 + 5.133908381872486E-01 + 5.085958371854998E-01 + 5.038146552453676E-01 + 4.990480152161027E-01 + 4.942966377484177E-01 + 4.895612411855352E-01 + 4.848425414545836E-01 + 4.801412519583589E-01 + 4.754580834674682E-01 + 4.707937440128703E-01 + 4.661489387788320E-01 + 4.615243699963129E-01 + 4.569207368367982E-01 + 4.523387353065942E-01 + 4.477790581416001E-01 + 4.432423947025775E-01 + 4.387294308709272E-01 + 4.342408489449938E-01 + 4.297773275369120E-01 + 4.253395414700090E-01 + 4.209281616767808E-01 + 4.165438550974564E-01 + 4.121872845791653E-01 + 4.078591087757248E-01 + 4.035599820480595E-01 + 3.992905543652718E-01 + 3.950514712063749E-01 + 3.908433734627057E-01 + 3.866668973410302E-01 + 3.825226742673584E-01 + 3.784113307914809E-01 + 3.743334884922431E-01 + 3.702897638835715E-01 + 3.662807683212646E-01 + 3.623071079105645E-01 + 3.583693834145225E-01 + 3.544681901631713E-01 + 3.506041179635198E-01 + 3.467777510103817E-01 + 3.429896677980540E-01 + 3.392404410328561E-01 + 3.355306375465447E-01 + 3.318608182106163E-01 + 3.282315378515113E-01 + 3.246433451667319E-01 + 3.210967826418865E-01 + 3.175923864686731E-01 + 3.141306864638149E-01 + 3.107122059889586E-01 + 3.073374618715501E-01 + 3.040069643266967E-01 + 3.007212168800295E-01 + 2.974807162915776E-01 + 2.942859524806648E-01 + 2.911374084518398E-01 + 2.880355602218536E-01 + 2.849808767476912E-01 + 2.819738198556728E-01 + 2.790148441716310E-01 + 2.761043970521783E-01 + 2.732429185170723E-01 + 2.704308411826915E-01 + 2.676685901966288E-01 + 2.649565831734156E-01 + 2.622952301313841E-01 + 2.596849334306779E-01 + 2.571260877124209E-01 + 2.546190798390525E-01 + 2.521642888358402E-01 + 2.497620858335753E-01 + 2.474128340124635E-01 + 2.451168885472166E-01 + 2.428745965533555E-01 + 2.406862970347307E-01 + 2.385523208322695E-01 + 2.364729905739577E-01 + 2.344486206260625E-01 + 2.324795170456045E-01 + 2.305659775340864E-01 + 2.287082913924840E-01 + 2.269067394775087E-01 + 2.251615941591452E-01 + 2.234731192794728E-01 + 2.218415701127768E-01 + 2.202671933269537E-01 + 2.187502269462189E-01 + 2.172909003151206E-01 + 2.158894340638657E-01 + 2.145460400749643E-01 + 2.132609214511951E-01 + 2.120342724848996E-01 + 2.108662786286076E-01 + 2.097571164669994E-01 + 2.087069536902081E-01 + 2.077159490684682E-01 + 2.067842524281106E-01 + 2.059120046289115E-01 + 2.050993375427963E-01 + 2.043463740339024E-01 + 2.036532279400034E-01 + 2.030200040552991E-01 + 2.024467981145713E-01 + 2.019336967787107E-01 + 2.014807776216143E-01 + 2.010881091184579E-01 + 2.007557506353431E-01 + 2.004837524203222E-01 + 2.002721555958016E-01 + 2.001209921523241E-01 + 2.000302849437328E-01 + 2.000000476837158E-01 + + + + + 2008-01-27T05:17:45.588000Z + 3.864829000000000E00 + + + 0.000000000000000E00 + 3.864829000000000E00 + 0 + 14681 + + 0.000000000000000E00 + 3.798607853982301E03 + + + + + + + + 4.453030084213504E06 + 5.751533224176324E03 + -2.701460186278990E00 + -1.232314334502686E-03 + 2.767977579632777E-07 + 8.573555430347218E-11 + + + 1.498761460380943E06 + 4.958488150457533E01 + -1.329901152397693E00 + 1.203537682078138E-04 + 1.797597475279295E-07 + -1.805353252780213E-11 + + + 5.028076193124518E06 + -5.094706679283640E03 + -3.076367686373969E00 + 1.035836350032695E-03 + 3.164089926425110E-07 + -6.048720512751894E-11 + + + + + + 9.575000000000000E09 + 9.725000000000000E09 + + + + 5.183547826892217E-05 + 1.500000000000000E08 + 9.575000000000000E09 + 2.893770926966293E12 + CHIRP + 1.094951675792963E-04 + 1.648291920000000E08 + 0.000000000000000E00 + + + H + + + H:H + + + + + + 1 + 1.000000000000000E00 + 1 + + H:H + 0.000000000000000E00 + 3.864829000000000E00 + + 9.575000000000000E09 + 9.725000000000000E09 + + RMA + SV + NO + NO + NO + + + 1.978794889212633E00 + + 4.464400601302211E06 + 1.498854372226527E06 + 5.017982775701074E06 + + + 5.740827485683599E03 + 4.432309764961589E01 + -5.106869502938895E03 + + + -5.417538337065467E00 + -2.658364928594254E00 + -6.140422268784738E00 + + R + 7.265297655433301E05 + 4.932683179209292E05 + 9.001374323548251E01 + 4.282425590831252E01 + 4.717574409168748E01 + 1.618550968677545E-01 + 4.282450257715610E01 + 9.883241207398598E01 + 9.859430372288240E01 + + + OMEGA_K + INCA + + + 1.954027443465525E00 + 1.421215617195412E-04 + + 7.265297427195406E05 + 9.650000000000000E09 + + 9.157320868504847E-01 + -3.532437517714102E-08 + 3.625716232913313E-13 + 2.953824195070095E-18 + -6.012488258835277E-38 + + + -1.195271916173158E02 + -5.776927359220403E-01 + -2.937764301372519E-12 + 4.289979282645305E-05 + 4.707417424533966E-09 + 4.589903845188205E-20 + -1.604477036116078E-13 + -1.760563834440445E-17 + -1.273259477339462E-25 + + true + + + diff --git a/six/modules/c++/six.sicd/tests/sample_xml/sicd121-bad.xml b/six/modules/c++/six.sicd/tests/sample_xml/sicd121-bad.xml new file mode 100644 index 000000000..644b2947d --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/sicd121-bad.xml @@ -0,0 +1,1372 @@ + + + + + RCM-1 + 28OCT19RCM1224339 + MONOSTATIC + + STRIPMAP + 16M11 + + NON CLASSIFIÉ / UNCLASSIFIED + 0.19 + 2.8 + + + RCM PGS 6.25 + 2020-02-14T21:03:34.000000Z + SHUB + sarpy 1.1.0 + + + RE32F_IM32F + 50 + 50 + 1 + 1 + + 2710 + 19227 + + + 1354 + 9613 + + + + 0 + 0 + + + 0 + 19226 + + + 2709 + 19226 + + + 2709 + 0 + + + + + WGS_84 + + + 1.27490850928838691E06 + -4.29019322830182128E06 + 4.52892691288558207E06 + + + 4.55316069498991283E01 + -7.34497309334072952E01 + -5.31702823219915732E00 + + + + + 4.52920973138038576E01 + -7.35906353176376200E01 + + + 4.52931944278531375E01 + -7.35909162490102489E01 + + + 4.52940861173784057E01 + -7.35837954779031520E01 + + + 4.52929890004868128E01 + -7.35835146897888137E01 + + + + + 4.52921069120218078E01 + -7.35903707774373572E01 + + + 4.57225897929090621E01 + -7.37006651856854234E01 + + + 4.57702292775726676E01 + -7.33121440633477590E01 + + + 4.53396988535393533E01 + -7.32049017323283948E01 + + + + + SLANT + RGZERO + + 5.27470685260602323E00 + 1.44254410135143991E-04 + -4.68165441780604515E-23 + 2.89572385533139095E-07 + 4.05617765831887386E-24 + 1.60578593968476687E-26 + -4.00911916132210198E-13 + 1.68662995167607514E-26 + 3.13719054162703115E-29 + + + + 4.01984272319168112E-01 + 7.75435042565527199E-01 + -4.86938537773945523E-01 + + 6.97191810607910156E00 + 8.55150483752094814E00 + -1 + 1.26754356175297789E-01 + 3.60582786872469612E01 + -6.33771780876488944E-02 + 6.33771780876488944E-02 + + 0.00000000000000000E00 + + + KAISER + 2.900000e+00 + + + 2.22086568719439104E-01 + 2.25749507486731504E-01 + 2.29428028981866011E-01 + 2.33121942344999888E-01 + 2.36831054930142809E-01 + 2.40555172319217109E-01 + 2.44294098336307913E-01 + 2.48047635062103894E-01 + 2.51815582848526176E-01 + 2.55597740333544599E-01 + 2.59393904456178881E-01 + 2.63203870471685197E-01 + 2.67027431966926188E-01 + 2.70864380875922017E-01 + 2.74714507495581572E-01 + 2.78577600501613676E-01 + 2.82453446964615773E-01 + 2.86341832366336979E-01 + 2.90242540616118483E-01 + 2.94155354067505592E-01 + 2.98080053535030587E-01 + 3.02016418311168378E-01 + 3.05964226183457977E-01 + 3.09923253451792613E-01 + 3.13893274945874712E-01 + 3.17874064042835913E-01 + 3.21865392685016627E-01 + 3.25867031397909512E-01 + 3.29878749308259112E-01 + 3.33900314162321077E-01 + 3.37931492344275775E-01 + 3.41972048894794323E-01 + 3.46021747529761114E-01 + 3.50080350659141504E-01 + 3.54147619406002589E-01 + 3.58223313625677275E-01 + 3.62307191925076877E-01 + 3.66399011682144393E-01 + 3.70498529065450222E-01 + 3.74605499053927482E-01 + 3.78719675456745397E-01 + 3.82840810933318010E-01 + 3.86968657013446682E-01 + 3.91102964117596708E-01 + 3.95243481577300881E-01 + 3.99389957655694072E-01 + 4.03542139568172809E-01 + 4.07699773503179708E-01 + 4.11862604643109587E-01 + 4.16030377185337474E-01 + 4.20202834363362421E-01 + 4.24379718468070988E-01 + 4.28560770869112317E-01 + 4.32745732036386277E-01 + 4.36934341561643180E-01 + 4.41126338180189204E-01 + 4.45321459792700103E-01 + 4.49519443487138015E-01 + 4.53720025560769624E-01 + 4.57922941542285411E-01 + 4.62127926214014495E-01 + 4.66334713634238007E-01 + 4.70543037159591504E-01 + 4.74752629467563525E-01 + 4.78963222579078918E-01 + 4.83174547881171201E-01 + 4.87386336149739474E-01 + 4.91598317572385923E-01 + 4.95810221771335824E-01 + 5.00021777826434088E-01 + 5.04232714298218254E-01 + 5.08442759251063747E-01 + 5.12651640276402198E-01 + 5.16859084516006484E-01 + 5.21064818685344489E-01 + 5.25268569096996152E-01 + 5.29470061684132798E-01 + 5.33669022024056194E-01 + 5.37865175361794901E-01 + 5.42058246633757124E-01 + 5.46247960491434315E-01 + 5.50434041325157275E-01 + 5.54616213287899118E-01 + 5.58794200319124745E-01 + 5.62967726168682958E-01 + 5.67136514420741755E-01 + 5.71300288517761157E-01 + 5.75458771784500556E-01 + 5.79611687452064706E-01 + 5.83758758681976797E-01 + 5.87899708590283510E-01 + 5.92034260271687263E-01 + 5.96162136823700228E-01 + 6.00283061370825211E-01 + 6.04396757088751180E-01 + 6.08502947228569235E-01 + 6.12601355141004111E-01 + 6.16691704300654786E-01 + 6.20773718330250524E-01 + 6.24847121024909580E-01 + 6.28911636376405458E-01 + 6.32966988597438052E-01 + 6.37012902145901561E-01 + 6.41049101749153527E-01 + 6.45075312428277758E-01 + 6.49091259522342034E-01 + 6.53096668712645156E-01 + 6.57091266046954114E-01 + 6.61074777963726268E-01 + 6.65046931316315093E-01 + 6.69007453397157614E-01 + 6.72956071961940627E-01 + 6.76892515253743721E-01 + 6.80816512027154652E-01 + 6.84727791572358080E-01 + 6.88626083739193762E-01 + 6.92511118961177896E-01 + 6.96382628279495042E-01 + 7.00240343366945739E-01 + 7.04083996551857272E-01 + 7.07913320841951021E-01 + 7.11728049948164410E-01 + 7.15527918308424549E-01 + 7.19312661111372487E-01 + 7.23082014320035271E-01 + 7.26835714695443280E-01 + 7.30573499820190153E-01 + 7.34295108121931439E-01 + 7.38000278896826178E-01 + 7.41688752332909096E-01 + 7.45360269533398179E-01 + 7.49014572539935197E-01 + 7.52651404355751619E-01 + 7.56270508968763577E-01 + 7.59871631374589573E-01 + 7.63454517599489235E-01 + 7.67018914723225032E-01 + 7.70564570901836055E-01 + 7.74091235390331089E-01 + 7.77598658565290757E-01 + 7.81086591947383391E-01 + 7.84554788223785771E-01 + 7.88003001270510706E-01 + 7.91430986174639584E-01 + 7.94838499256453224E-01 + 7.98225298091465807E-01 + 8.01591141532349227E-01 + 8.04935789730759743E-01 + 8.08259004159050720E-01 + 8.11560547631879459E-01 + 8.14840184327698003E-01 + 8.18097679810134704E-01 + 8.21332801049255767E-01 + 8.24545316442708787E-01 + 8.27734995836747145E-01 + 8.30901610547128744E-01 + 8.34044933379894049E-01 + 8.37164738652012352E-01 + 8.40260802211902358E-01 + 8.43332901459820872E-01 + 8.46380815368115824E-01 + 8.49404324501347507E-01 + 8.52403211036269592E-01 + 8.55377258781672922E-01 + 8.58326253198085198E-01 + 8.61249981417331001E-01 + 8.64148232261942151E-01 + 8.67020796264422744E-01 + 8.69867465686367192E-01 + 8.72688034537421053E-01 + 8.75482298594094765E-01 + 8.78250055418419162E-01 + 8.80991104376442236E-01 + 8.83705246656573129E-01 + 8.86392285287755932E-01 + 8.89052025157491266E-01 + 8.91684273029685448E-01 + 8.94288837562336791E-01 + 8.96865529325053146E-01 + 8.99414160816400021E-01 + 9.01934546481075738E-01 + 9.04426502726914716E-01 + 9.06889847941716232E-01 + 9.09324402509891883E-01 + 9.11729988828940408E-01 + 9.14106431325738100E-01 + 9.16453556472649367E-01 + 9.18771192803452985E-01 + 9.21059170929082960E-01 + 9.23317323553183633E-01 + 9.25545485487475283E-01 + 9.27743493666929431E-01 + 9.29911187164755515E-01 + 9.32048407207189955E-01 + 9.34154997188096248E-01 + 9.36230802683362451E-01 + 9.38275671465108374E-01 + 9.40289453515687934E-01 + 9.42272001041493446E-01 + 9.44223168486558961E-01 + 9.46142812545959999E-01 + 9.48030792179006099E-01 + 9.49886968622232208E-01 + 9.51711205402179128E-01 + 9.53503368347966784E-01 + 9.55263325603656566E-01 + 9.56990947640405265E-01 + 9.58686107268404197E-01 + 9.60348679648604153E-01 + 9.61978542304230078E-01 + 9.63575575132073703E-01 + 9.65139660413573242E-01 + 9.66670682825674588E-01 + 9.68168529451470694E-01 + 9.69633089790623126E-01 + 9.71064255769561901E-01 + 9.72461921751460068E-01 + 9.73825984545989787E-01 + 9.75156343418846383E-01 + 9.76452900101055565E-01 + 9.77715558798047613E-01 + 9.78944226198507961E-01 + 9.80138811482995975E-01 + 9.81299226332336905E-01 + 9.82425384935786350E-01 + 9.83517203998956369E-01 + 9.84574602751517647E-01 + 9.85597502954663307E-01 + 9.86585828908345563E-01 + 9.87539507458270904E-01 + 9.88458468002666901E-01 + 9.89342642498810765E-01 + 9.90191965469321533E-01 + 9.91006374008217228E-01 + 9.91785807786732088E-01 + 9.92530209058900104E-01 + 9.93239522666893526E-01 + 9.93913696046130002E-01 + 9.94552679230133685E-01 + 9.95156424855160204E-01 + 9.95724888164577271E-01 + 9.96258027013011249E-01 + 9.96755801870242375E-01 + 9.97218175824867603E-01 + 9.97645114587714099E-01 + 9.98036586495015920E-01 + 9.98392562511341897E-01 + 9.98713016232287143E-01 + 9.98997923886913219E-01 + 9.99247264339953478E-01 + 9.99461019093764835E-01 + 9.99639172290044842E-01 + 9.99781710711296623E-01 + 9.99888623782053010E-01 + 9.99959903569858866E-01 + 9.99995544786001389E-01 + 9.99995544786001389E-01 + 9.99959903569858866E-01 + 9.99888623782053010E-01 + 9.99781710711296623E-01 + 9.99639172290044842E-01 + 9.99461019093764835E-01 + 9.99247264339953478E-01 + 9.98997923886913219E-01 + 9.98713016232287143E-01 + 9.98392562511341897E-01 + 9.98036586495015920E-01 + 9.97645114587714099E-01 + 9.97218175824867603E-01 + 9.96755801870242375E-01 + 9.96258027013011249E-01 + 9.95724888164577271E-01 + 9.95156424855160204E-01 + 9.94552679230133685E-01 + 9.93913696046130002E-01 + 9.93239522666893526E-01 + 9.92530209058900104E-01 + 9.91785807786732088E-01 + 9.91006374008217228E-01 + 9.90191965469321533E-01 + 9.89342642498810765E-01 + 9.88458468002666901E-01 + 9.87539507458270904E-01 + 9.86585828908345563E-01 + 9.85597502954663307E-01 + 9.84574602751517647E-01 + 9.83517203998956369E-01 + 9.82425384935786350E-01 + 9.81299226332336905E-01 + 9.80138811482995975E-01 + 9.78944226198507961E-01 + 9.77715558798047613E-01 + 9.76452900101055565E-01 + 9.75156343418846383E-01 + 9.73825984545989787E-01 + 9.72461921751460068E-01 + 9.71064255769561901E-01 + 9.69633089790623126E-01 + 9.68168529451470694E-01 + 9.66670682825674588E-01 + 9.65139660413573242E-01 + 9.63575575132073703E-01 + 9.61978542304230078E-01 + 9.60348679648604153E-01 + 9.58686107268404197E-01 + 9.56990947640405265E-01 + 9.55263325603656566E-01 + 9.53503368347966784E-01 + 9.51711205402179128E-01 + 9.49886968622232208E-01 + 9.48030792179006099E-01 + 9.46142812545959999E-01 + 9.44223168486558961E-01 + 9.42272001041493446E-01 + 9.40289453515687934E-01 + 9.38275671465108374E-01 + 9.36230802683362451E-01 + 9.34154997188096248E-01 + 9.32048407207189955E-01 + 9.29911187164755515E-01 + 9.27743493666929431E-01 + 9.25545485487475283E-01 + 9.23317323553183633E-01 + 9.21059170929082960E-01 + 9.18771192803452985E-01 + 9.16453556472649367E-01 + 9.14106431325738100E-01 + 9.11729988828940408E-01 + 9.09324402509891883E-01 + 9.06889847941716232E-01 + 9.04426502726914716E-01 + 9.01934546481075738E-01 + 8.99414160816400021E-01 + 8.96865529325053146E-01 + 8.94288837562336791E-01 + 8.91684273029685448E-01 + 8.89052025157491266E-01 + 8.86392285287755932E-01 + 8.83705246656573129E-01 + 8.80991104376442236E-01 + 8.78250055418419162E-01 + 8.75482298594094765E-01 + 8.72688034537421053E-01 + 8.69867465686367192E-01 + 8.67020796264422744E-01 + 8.64148232261942151E-01 + 8.61249981417331001E-01 + 8.58326253198085198E-01 + 8.55377258781672922E-01 + 8.52403211036269592E-01 + 8.49404324501347507E-01 + 8.46380815368115824E-01 + 8.43332901459820872E-01 + 8.40260802211902358E-01 + 8.37164738652012352E-01 + 8.34044933379894049E-01 + 8.30901610547128744E-01 + 8.27734995836747145E-01 + 8.24545316442708787E-01 + 8.21332801049255767E-01 + 8.18097679810134704E-01 + 8.14840184327698003E-01 + 8.11560547631879459E-01 + 8.08259004159050720E-01 + 8.04935789730759743E-01 + 8.01591141532349227E-01 + 7.98225298091465807E-01 + 7.94838499256453224E-01 + 7.91430986174639584E-01 + 7.88003001270510706E-01 + 7.84554788223785771E-01 + 7.81086591947383391E-01 + 7.77598658565290757E-01 + 7.74091235390331089E-01 + 7.70564570901836055E-01 + 7.67018914723225032E-01 + 7.63454517599489235E-01 + 7.59871631374589573E-01 + 7.56270508968763577E-01 + 7.52651404355751619E-01 + 7.49014572539935197E-01 + 7.45360269533398179E-01 + 7.41688752332909096E-01 + 7.38000278896826178E-01 + 7.34295108121931439E-01 + 7.30573499820190153E-01 + 7.26835714695443280E-01 + 7.23082014320035271E-01 + 7.19312661111372487E-01 + 7.15527918308424549E-01 + 7.11728049948164410E-01 + 7.07913320841951021E-01 + 7.04083996551857272E-01 + 7.00240343366945739E-01 + 6.96382628279495042E-01 + 6.92511118961177896E-01 + 6.88626083739193762E-01 + 6.84727791572358080E-01 + 6.80816512027154652E-01 + 6.76892515253743721E-01 + 6.72956071961940627E-01 + 6.69007453397157614E-01 + 6.65046931316315093E-01 + 6.61074777963726268E-01 + 6.57091266046954114E-01 + 6.53096668712645156E-01 + 6.49091259522342034E-01 + 6.45075312428277758E-01 + 6.41049101749153527E-01 + 6.37012902145901561E-01 + 6.32966988597438052E-01 + 6.28911636376405458E-01 + 6.24847121024909580E-01 + 6.20773718330250524E-01 + 6.16691704300654786E-01 + 6.12601355141004111E-01 + 6.08502947228569235E-01 + 6.04396757088751180E-01 + 6.00283061370825211E-01 + 5.96162136823700228E-01 + 5.92034260271687263E-01 + 5.87899708590283510E-01 + 5.83758758681976797E-01 + 5.79611687452064706E-01 + 5.75458771784500556E-01 + 5.71300288517761157E-01 + 5.67136514420741755E-01 + 5.62967726168682958E-01 + 5.58794200319124745E-01 + 5.54616213287899118E-01 + 5.50434041325157275E-01 + 5.46247960491434315E-01 + 5.42058246633757124E-01 + 5.37865175361794901E-01 + 5.33669022024056194E-01 + 5.29470061684132798E-01 + 5.25268569096996152E-01 + 5.21064818685344489E-01 + 5.16859084516006484E-01 + 5.12651640276402198E-01 + 5.08442759251063747E-01 + 5.04232714298218254E-01 + 5.00021777826434088E-01 + 4.95810221771335824E-01 + 4.91598317572385923E-01 + 4.87386336149739474E-01 + 4.83174547881171201E-01 + 4.78963222579078918E-01 + 4.74752629467563525E-01 + 4.70543037159591504E-01 + 4.66334713634238007E-01 + 4.62127926214014495E-01 + 4.57922941542285411E-01 + 4.53720025560769624E-01 + 4.49519443487138015E-01 + 4.45321459792700103E-01 + 4.41126338180189204E-01 + 4.36934341561643180E-01 + 4.32745732036386277E-01 + 4.28560770869112317E-01 + 4.24379718468070988E-01 + 4.20202834363362421E-01 + 4.16030377185337474E-01 + 4.11862604643109587E-01 + 4.07699773503179708E-01 + 4.03542139568172809E-01 + 3.99389957655694072E-01 + 3.95243481577300881E-01 + 3.91102964117596708E-01 + 3.86968657013446682E-01 + 3.82840810933318010E-01 + 3.78719675456745397E-01 + 3.74605499053927482E-01 + 3.70498529065450222E-01 + 3.66399011682144393E-01 + 3.62307191925076877E-01 + 3.58223313625677275E-01 + 3.54147619406002589E-01 + 3.50080350659141504E-01 + 3.46021747529761114E-01 + 3.41972048894794323E-01 + 3.37931492344275775E-01 + 3.33900314162321077E-01 + 3.29878749308259112E-01 + 3.25867031397909512E-01 + 3.21865392685016627E-01 + 3.17874064042835913E-01 + 3.13893274945874712E-01 + 3.09923253451792613E-01 + 3.05964226183457977E-01 + 3.02016418311168378E-01 + 2.98080053535030587E-01 + 2.94155354067505592E-01 + 2.90242540616118483E-01 + 2.86341832366336979E-01 + 2.82453446964615773E-01 + 2.78577600501613676E-01 + 2.74714507495581572E-01 + 2.70864380875922017E-01 + 2.67027431966926188E-01 + 2.63203870471685197E-01 + 2.59393904456178881E-01 + 2.55597740333544599E-01 + 2.51815582848526176E-01 + 2.48047635062103894E-01 + 2.44294098336307913E-01 + 2.40555172319217109E-01 + 2.36831054930142809E-01 + 2.33121942344999888E-01 + 2.29428028981866011E-01 + 2.25749507486731504E-01 + 2.22086568719439104E-01 + + + + + -3.65130959837855207E-01 + 6.23438116622406335E-01 + 6.91378548199315879E-01 + + 2.52761044295888482E00 + 4.78604400914684902E00 + -1 + 2.26479423912178707E-01 + 0.00000000000000000E00 + -9.69192738444477342E-02 + 1.32066612012117002E-01 + + 1.75443001199153403E-02 + -1.32711166056231496E-07 + 3.34513588066639779E-13 + + + KAISER + 2.900000e+00 + + + 2.22086568719439104E-01 + 2.25749507486731504E-01 + 2.29428028981866011E-01 + 2.33121942344999888E-01 + 2.36831054930142809E-01 + 2.40555172319217109E-01 + 2.44294098336307913E-01 + 2.48047635062103894E-01 + 2.51815582848526176E-01 + 2.55597740333544599E-01 + 2.59393904456178881E-01 + 2.63203870471685197E-01 + 2.67027431966926188E-01 + 2.70864380875922017E-01 + 2.74714507495581572E-01 + 2.78577600501613676E-01 + 2.82453446964615773E-01 + 2.86341832366336979E-01 + 2.90242540616118483E-01 + 2.94155354067505592E-01 + 2.98080053535030587E-01 + 3.02016418311168378E-01 + 3.05964226183457977E-01 + 3.09923253451792613E-01 + 3.13893274945874712E-01 + 3.17874064042835913E-01 + 3.21865392685016627E-01 + 3.25867031397909512E-01 + 3.29878749308259112E-01 + 3.33900314162321077E-01 + 3.37931492344275775E-01 + 3.41972048894794323E-01 + 3.46021747529761114E-01 + 3.50080350659141504E-01 + 3.54147619406002589E-01 + 3.58223313625677275E-01 + 3.62307191925076877E-01 + 3.66399011682144393E-01 + 3.70498529065450222E-01 + 3.74605499053927482E-01 + 3.78719675456745397E-01 + 3.82840810933318010E-01 + 3.86968657013446682E-01 + 3.91102964117596708E-01 + 3.95243481577300881E-01 + 3.99389957655694072E-01 + 4.03542139568172809E-01 + 4.07699773503179708E-01 + 4.11862604643109587E-01 + 4.16030377185337474E-01 + 4.20202834363362421E-01 + 4.24379718468070988E-01 + 4.28560770869112317E-01 + 4.32745732036386277E-01 + 4.36934341561643180E-01 + 4.41126338180189204E-01 + 4.45321459792700103E-01 + 4.49519443487138015E-01 + 4.53720025560769624E-01 + 4.57922941542285411E-01 + 4.62127926214014495E-01 + 4.66334713634238007E-01 + 4.70543037159591504E-01 + 4.74752629467563525E-01 + 4.78963222579078918E-01 + 4.83174547881171201E-01 + 4.87386336149739474E-01 + 4.91598317572385923E-01 + 4.95810221771335824E-01 + 5.00021777826434088E-01 + 5.04232714298218254E-01 + 5.08442759251063747E-01 + 5.12651640276402198E-01 + 5.16859084516006484E-01 + 5.21064818685344489E-01 + 5.25268569096996152E-01 + 5.29470061684132798E-01 + 5.33669022024056194E-01 + 5.37865175361794901E-01 + 5.42058246633757124E-01 + 5.46247960491434315E-01 + 5.50434041325157275E-01 + 5.54616213287899118E-01 + 5.58794200319124745E-01 + 5.62967726168682958E-01 + 5.67136514420741755E-01 + 5.71300288517761157E-01 + 5.75458771784500556E-01 + 5.79611687452064706E-01 + 5.83758758681976797E-01 + 5.87899708590283510E-01 + 5.92034260271687263E-01 + 5.96162136823700228E-01 + 6.00283061370825211E-01 + 6.04396757088751180E-01 + 6.08502947228569235E-01 + 6.12601355141004111E-01 + 6.16691704300654786E-01 + 6.20773718330250524E-01 + 6.24847121024909580E-01 + 6.28911636376405458E-01 + 6.32966988597438052E-01 + 6.37012902145901561E-01 + 6.41049101749153527E-01 + 6.45075312428277758E-01 + 6.49091259522342034E-01 + 6.53096668712645156E-01 + 6.57091266046954114E-01 + 6.61074777963726268E-01 + 6.65046931316315093E-01 + 6.69007453397157614E-01 + 6.72956071961940627E-01 + 6.76892515253743721E-01 + 6.80816512027154652E-01 + 6.84727791572358080E-01 + 6.88626083739193762E-01 + 6.92511118961177896E-01 + 6.96382628279495042E-01 + 7.00240343366945739E-01 + 7.04083996551857272E-01 + 7.07913320841951021E-01 + 7.11728049948164410E-01 + 7.15527918308424549E-01 + 7.19312661111372487E-01 + 7.23082014320035271E-01 + 7.26835714695443280E-01 + 7.30573499820190153E-01 + 7.34295108121931439E-01 + 7.38000278896826178E-01 + 7.41688752332909096E-01 + 7.45360269533398179E-01 + 7.49014572539935197E-01 + 7.52651404355751619E-01 + 7.56270508968763577E-01 + 7.59871631374589573E-01 + 7.63454517599489235E-01 + 7.67018914723225032E-01 + 7.70564570901836055E-01 + 7.74091235390331089E-01 + 7.77598658565290757E-01 + 7.81086591947383391E-01 + 7.84554788223785771E-01 + 7.88003001270510706E-01 + 7.91430986174639584E-01 + 7.94838499256453224E-01 + 7.98225298091465807E-01 + 8.01591141532349227E-01 + 8.04935789730759743E-01 + 8.08259004159050720E-01 + 8.11560547631879459E-01 + 8.14840184327698003E-01 + 8.18097679810134704E-01 + 8.21332801049255767E-01 + 8.24545316442708787E-01 + 8.27734995836747145E-01 + 8.30901610547128744E-01 + 8.34044933379894049E-01 + 8.37164738652012352E-01 + 8.40260802211902358E-01 + 8.43332901459820872E-01 + 8.46380815368115824E-01 + 8.49404324501347507E-01 + 8.52403211036269592E-01 + 8.55377258781672922E-01 + 8.58326253198085198E-01 + 8.61249981417331001E-01 + 8.64148232261942151E-01 + 8.67020796264422744E-01 + 8.69867465686367192E-01 + 8.72688034537421053E-01 + 8.75482298594094765E-01 + 8.78250055418419162E-01 + 8.80991104376442236E-01 + 8.83705246656573129E-01 + 8.86392285287755932E-01 + 8.89052025157491266E-01 + 8.91684273029685448E-01 + 8.94288837562336791E-01 + 8.96865529325053146E-01 + 8.99414160816400021E-01 + 9.01934546481075738E-01 + 9.04426502726914716E-01 + 9.06889847941716232E-01 + 9.09324402509891883E-01 + 9.11729988828940408E-01 + 9.14106431325738100E-01 + 9.16453556472649367E-01 + 9.18771192803452985E-01 + 9.21059170929082960E-01 + 9.23317323553183633E-01 + 9.25545485487475283E-01 + 9.27743493666929431E-01 + 9.29911187164755515E-01 + 9.32048407207189955E-01 + 9.34154997188096248E-01 + 9.36230802683362451E-01 + 9.38275671465108374E-01 + 9.40289453515687934E-01 + 9.42272001041493446E-01 + 9.44223168486558961E-01 + 9.46142812545959999E-01 + 9.48030792179006099E-01 + 9.49886968622232208E-01 + 9.51711205402179128E-01 + 9.53503368347966784E-01 + 9.55263325603656566E-01 + 9.56990947640405265E-01 + 9.58686107268404197E-01 + 9.60348679648604153E-01 + 9.61978542304230078E-01 + 9.63575575132073703E-01 + 9.65139660413573242E-01 + 9.66670682825674588E-01 + 9.68168529451470694E-01 + 9.69633089790623126E-01 + 9.71064255769561901E-01 + 9.72461921751460068E-01 + 9.73825984545989787E-01 + 9.75156343418846383E-01 + 9.76452900101055565E-01 + 9.77715558798047613E-01 + 9.78944226198507961E-01 + 9.80138811482995975E-01 + 9.81299226332336905E-01 + 9.82425384935786350E-01 + 9.83517203998956369E-01 + 9.84574602751517647E-01 + 9.85597502954663307E-01 + 9.86585828908345563E-01 + 9.87539507458270904E-01 + 9.88458468002666901E-01 + 9.89342642498810765E-01 + 9.90191965469321533E-01 + 9.91006374008217228E-01 + 9.91785807786732088E-01 + 9.92530209058900104E-01 + 9.93239522666893526E-01 + 9.93913696046130002E-01 + 9.94552679230133685E-01 + 9.95156424855160204E-01 + 9.95724888164577271E-01 + 9.96258027013011249E-01 + 9.96755801870242375E-01 + 9.97218175824867603E-01 + 9.97645114587714099E-01 + 9.98036586495015920E-01 + 9.98392562511341897E-01 + 9.98713016232287143E-01 + 9.98997923886913219E-01 + 9.99247264339953478E-01 + 9.99461019093764835E-01 + 9.99639172290044842E-01 + 9.99781710711296623E-01 + 9.99888623782053010E-01 + 9.99959903569858866E-01 + 9.99995544786001389E-01 + 9.99995544786001389E-01 + 9.99959903569858866E-01 + 9.99888623782053010E-01 + 9.99781710711296623E-01 + 9.99639172290044842E-01 + 9.99461019093764835E-01 + 9.99247264339953478E-01 + 9.98997923886913219E-01 + 9.98713016232287143E-01 + 9.98392562511341897E-01 + 9.98036586495015920E-01 + 9.97645114587714099E-01 + 9.97218175824867603E-01 + 9.96755801870242375E-01 + 9.96258027013011249E-01 + 9.95724888164577271E-01 + 9.95156424855160204E-01 + 9.94552679230133685E-01 + 9.93913696046130002E-01 + 9.93239522666893526E-01 + 9.92530209058900104E-01 + 9.91785807786732088E-01 + 9.91006374008217228E-01 + 9.90191965469321533E-01 + 9.89342642498810765E-01 + 9.88458468002666901E-01 + 9.87539507458270904E-01 + 9.86585828908345563E-01 + 9.85597502954663307E-01 + 9.84574602751517647E-01 + 9.83517203998956369E-01 + 9.82425384935786350E-01 + 9.81299226332336905E-01 + 9.80138811482995975E-01 + 9.78944226198507961E-01 + 9.77715558798047613E-01 + 9.76452900101055565E-01 + 9.75156343418846383E-01 + 9.73825984545989787E-01 + 9.72461921751460068E-01 + 9.71064255769561901E-01 + 9.69633089790623126E-01 + 9.68168529451470694E-01 + 9.66670682825674588E-01 + 9.65139660413573242E-01 + 9.63575575132073703E-01 + 9.61978542304230078E-01 + 9.60348679648604153E-01 + 9.58686107268404197E-01 + 9.56990947640405265E-01 + 9.55263325603656566E-01 + 9.53503368347966784E-01 + 9.51711205402179128E-01 + 9.49886968622232208E-01 + 9.48030792179006099E-01 + 9.46142812545959999E-01 + 9.44223168486558961E-01 + 9.42272001041493446E-01 + 9.40289453515687934E-01 + 9.38275671465108374E-01 + 9.36230802683362451E-01 + 9.34154997188096248E-01 + 9.32048407207189955E-01 + 9.29911187164755515E-01 + 9.27743493666929431E-01 + 9.25545485487475283E-01 + 9.23317323553183633E-01 + 9.21059170929082960E-01 + 9.18771192803452985E-01 + 9.16453556472649367E-01 + 9.14106431325738100E-01 + 9.11729988828940408E-01 + 9.09324402509891883E-01 + 9.06889847941716232E-01 + 9.04426502726914716E-01 + 9.01934546481075738E-01 + 8.99414160816400021E-01 + 8.96865529325053146E-01 + 8.94288837562336791E-01 + 8.91684273029685448E-01 + 8.89052025157491266E-01 + 8.86392285287755932E-01 + 8.83705246656573129E-01 + 8.80991104376442236E-01 + 8.78250055418419162E-01 + 8.75482298594094765E-01 + 8.72688034537421053E-01 + 8.69867465686367192E-01 + 8.67020796264422744E-01 + 8.64148232261942151E-01 + 8.61249981417331001E-01 + 8.58326253198085198E-01 + 8.55377258781672922E-01 + 8.52403211036269592E-01 + 8.49404324501347507E-01 + 8.46380815368115824E-01 + 8.43332901459820872E-01 + 8.40260802211902358E-01 + 8.37164738652012352E-01 + 8.34044933379894049E-01 + 8.30901610547128744E-01 + 8.27734995836747145E-01 + 8.24545316442708787E-01 + 8.21332801049255767E-01 + 8.18097679810134704E-01 + 8.14840184327698003E-01 + 8.11560547631879459E-01 + 8.08259004159050720E-01 + 8.04935789730759743E-01 + 8.01591141532349227E-01 + 7.98225298091465807E-01 + 7.94838499256453224E-01 + 7.91430986174639584E-01 + 7.88003001270510706E-01 + 7.84554788223785771E-01 + 7.81086591947383391E-01 + 7.77598658565290757E-01 + 7.74091235390331089E-01 + 7.70564570901836055E-01 + 7.67018914723225032E-01 + 7.63454517599489235E-01 + 7.59871631374589573E-01 + 7.56270508968763577E-01 + 7.52651404355751619E-01 + 7.49014572539935197E-01 + 7.45360269533398179E-01 + 7.41688752332909096E-01 + 7.38000278896826178E-01 + 7.34295108121931439E-01 + 7.30573499820190153E-01 + 7.26835714695443280E-01 + 7.23082014320035271E-01 + 7.19312661111372487E-01 + 7.15527918308424549E-01 + 7.11728049948164410E-01 + 7.07913320841951021E-01 + 7.04083996551857272E-01 + 7.00240343366945739E-01 + 6.96382628279495042E-01 + 6.92511118961177896E-01 + 6.88626083739193762E-01 + 6.84727791572358080E-01 + 6.80816512027154652E-01 + 6.76892515253743721E-01 + 6.72956071961940627E-01 + 6.69007453397157614E-01 + 6.65046931316315093E-01 + 6.61074777963726268E-01 + 6.57091266046954114E-01 + 6.53096668712645156E-01 + 6.49091259522342034E-01 + 6.45075312428277758E-01 + 6.41049101749153527E-01 + 6.37012902145901561E-01 + 6.32966988597438052E-01 + 6.28911636376405458E-01 + 6.24847121024909580E-01 + 6.20773718330250524E-01 + 6.16691704300654786E-01 + 6.12601355141004111E-01 + 6.08502947228569235E-01 + 6.04396757088751180E-01 + 6.00283061370825211E-01 + 5.96162136823700228E-01 + 5.92034260271687263E-01 + 5.87899708590283510E-01 + 5.83758758681976797E-01 + 5.79611687452064706E-01 + 5.75458771784500556E-01 + 5.71300288517761157E-01 + 5.67136514420741755E-01 + 5.62967726168682958E-01 + 5.58794200319124745E-01 + 5.54616213287899118E-01 + 5.50434041325157275E-01 + 5.46247960491434315E-01 + 5.42058246633757124E-01 + 5.37865175361794901E-01 + 5.33669022024056194E-01 + 5.29470061684132798E-01 + 5.25268569096996152E-01 + 5.21064818685344489E-01 + 5.16859084516006484E-01 + 5.12651640276402198E-01 + 5.08442759251063747E-01 + 5.04232714298218254E-01 + 5.00021777826434088E-01 + 4.95810221771335824E-01 + 4.91598317572385923E-01 + 4.87386336149739474E-01 + 4.83174547881171201E-01 + 4.78963222579078918E-01 + 4.74752629467563525E-01 + 4.70543037159591504E-01 + 4.66334713634238007E-01 + 4.62127926214014495E-01 + 4.57922941542285411E-01 + 4.53720025560769624E-01 + 4.49519443487138015E-01 + 4.45321459792700103E-01 + 4.41126338180189204E-01 + 4.36934341561643180E-01 + 4.32745732036386277E-01 + 4.28560770869112317E-01 + 4.24379718468070988E-01 + 4.20202834363362421E-01 + 4.16030377185337474E-01 + 4.11862604643109587E-01 + 4.07699773503179708E-01 + 4.03542139568172809E-01 + 3.99389957655694072E-01 + 3.95243481577300881E-01 + 3.91102964117596708E-01 + 3.86968657013446682E-01 + 3.82840810933318010E-01 + 3.78719675456745397E-01 + 3.74605499053927482E-01 + 3.70498529065450222E-01 + 3.66399011682144393E-01 + 3.62307191925076877E-01 + 3.58223313625677275E-01 + 3.54147619406002589E-01 + 3.50080350659141504E-01 + 3.46021747529761114E-01 + 3.41972048894794323E-01 + 3.37931492344275775E-01 + 3.33900314162321077E-01 + 3.29878749308259112E-01 + 3.25867031397909512E-01 + 3.21865392685016627E-01 + 3.17874064042835913E-01 + 3.13893274945874712E-01 + 3.09923253451792613E-01 + 3.05964226183457977E-01 + 3.02016418311168378E-01 + 2.98080053535030587E-01 + 2.94155354067505592E-01 + 2.90242540616118483E-01 + 2.86341832366336979E-01 + 2.82453446964615773E-01 + 2.78577600501613676E-01 + 2.74714507495581572E-01 + 2.70864380875922017E-01 + 2.67027431966926188E-01 + 2.63203870471685197E-01 + 2.59393904456178881E-01 + 2.55597740333544599E-01 + 2.51815582848526176E-01 + 2.48047635062103894E-01 + 2.44294098336307913E-01 + 2.40555172319217109E-01 + 2.36831054930142809E-01 + 2.33121942344999888E-01 + 2.29428028981866011E-01 + 2.25749507486731504E-01 + 2.22086568719439104E-01 + + + + + 2019-10-28T22:43:39.923000Z + 7.63071339999999765E00 + + + 0.00000000000000000E00 + 7.63071339999999765E00 + 0 + 20929 + + 0.00000000000000000E00 + 2.74273176083379121E03 + + + + + + + + 9.93207108360625571E05 + -2.78830791365270215E03 + -2.37264251357139466E-01 + 6.94818887776514128E-04 + -1.09250143258402983E-08 + -5.07953842201209870E-11 + 2.33738252545671109E-15 + 1.84035518326102748E-18 + -2.41829367085851432E-22 + + + -4.88750828810424451E06 + 4.73248306001585206E03 + 3.06916194387611885E00 + -9.16342147110171703E-04 + -3.24722084720078486E-07 + 5.63863897272359672E-11 + 1.37487163070022802E-14 + -2.44715378122382126E-18 + -6.95629104045795996E-22 + + + 4.85994151926217414E06 + 5.31499340799488255E03 + -2.87038949758059081E00 + -1.04350002575732720E-03 + 2.84997650086806342E-07 + 6.05566486411296104E-11 + -1.29344446438852705E-14 + -1.48345381729715615E-18 + 1.05089139502637143E-21 + + + + + + 5.39549999944938946E09 + 5.41449999944938946E09 + + + + 3.00000000000000008E-05 + 1.90000000000000000E07 + 5.39549999944938946E09 + 6.33333333333333374E11 + CHIRP + 1.55813953488372113E-04 + 2.15000000000000000E07 + 0.00000000000000000E00 + + + H + + + H:H + + + H:V + + + + + + 1 + 1.00000000000000000E00 + 1 + + H:H + 0.00000000000000000E00 + 7.63071339999999765E00 + + 5.39549999944938946E09 + 5.41449999944938946E09 + + RMA + GLOBAL + SV + NO + NO + + + 5.27470685260602323E00 + + 9.78493102168959333E05 + -4.86246057014974114E06 + 4.88789653698942065E06 + + + -2.79075292414449086E03 + 4.76478424381222158E03 + 5.28462555078422702E03 + + + -4.52542503596657486E-01 + 6.10921502126681926E00 + -5.77370860586430279E00 + + R + 7.37706713506601751E05 + 4.15291667611080280E05 + 8.99747158439498946E01 + 5.19972653448820381E01 + 3.80027346551179619E01 + -2.13747109277833414E-01 + 5.19975768742583497E01 + 2.59887357218286809E02 + 2.60158615540598191E02 + + + + ABSOLUTE + + -3.09071055799739902E01 + -1.04721882191009794E-04 + 2.26036324515735999E-08 + + + + 4.42685102884924504E01 + + + 6.15677274456354784E-01 + 1.56746878486508605E-06 + -5.20849085269861398E-12 + 1.90641370616564614E-17 + + + 1.00000000000000000E00 + + + 7.81317850729810415E-01 + 3.20348585140714495E-06 + -3.16924392938347299E-12 + 1.50338947514396993E-17 + + + + OMEGA_K + INCA + + + 5.32166799999999984E00 + 1.44254410135145645E-04 + + 7.37706634309255751E05 + 5.40499999944938946E09 + + 9.06974055957757042E-01 + -3.69881288408570922E-08 + 2.37556461723008999E-14 + 2.35931192469845506E-18 + + + 1.21620545974842997E02 + -9.19979957159716959E-04 + 2.31891411675558997E-09 + + true + + + From 1666b8c358049a76821bf859f3d2360b29154a2b Mon Sep 17 00:00:00 2001 From: abeaucha Date: Tue, 1 Oct 2024 09:40:36 -0400 Subject: [PATCH 11/50] bad sidd 1.0.0 --- six/modules/c++/six.sidd/tests/sample_xml/sidd100-bad.xml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 six/modules/c++/six.sidd/tests/sample_xml/sidd100-bad.xml diff --git a/six/modules/c++/six.sidd/tests/sample_xml/sidd100-bad.xml b/six/modules/c++/six.sidd/tests/sample_xml/sidd100-bad.xml new file mode 100644 index 000000000..63d4df658 --- /dev/null +++ b/six/modules/c++/six.sidd/tests/sample_xml/sidd100-bad.xml @@ -0,0 +1,3 @@ + + + From fde4b3f5804e80963401511d3f1a4d2d5e38f32f Mon Sep 17 00:00:00 2001 From: abeaucha Date: Tue, 1 Oct 2024 10:03:34 -0400 Subject: [PATCH 12/50] test bad sicd files --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index b83d7c6aa..4ee393457 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -146,8 +146,72 @@ TEST_CASE(test_read_sicd130_xml) test_read_sicd_xml(testName, "sicd130.xml"); } +TEST_CASE(test_read_sicd040_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd040-bad.xml"), + six::DESValidationException); +} + +TEST_CASE(test_read_sicd041_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd041-bad.xml"), + six::DESValidationException); +} + +TEST_CASE(test_read_sicd050_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd050-bad.xml"), + six::DESValidationException); +} + +TEST_CASE(test_read_sicd100_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd100-bad.xml"), + six::DESValidationException); +} + +TEST_CASE(test_read_sicd101_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd101-bad.xml"), + six::DESValidationException); +} + +TEST_CASE(test_read_sicd110_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd110-bad.xml"), + six::DESValidationException); +} + +TEST_CASE(test_read_sicd120_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd120-bad.xml"), + six::DESValidationException); +} + +TEST_CASE(test_read_sicd121_bad_xml) +{ + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd121-bad.xml"), + six::DESValidationException); +} + TEST_MAIN( TEST_CHECK(test_createFakeComplexData); TEST_CHECK(test_read_sicd110_xml); TEST_CHECK(test_read_sicd130_xml); + TEST_CHECK(test_read_sicd040_bad_xml); + TEST_CHECK(test_read_sicd041_bad_xml); + TEST_CHECK(test_read_sicd050_bad_xml); + TEST_CHECK(test_read_sicd100_bad_xml); + TEST_CHECK(test_read_sicd101_bad_xml); + TEST_CHECK(test_read_sicd110_bad_xml); + TEST_CHECK(test_read_sicd120_bad_xml); + TEST_CHECK(test_read_sicd121_bad_xml); ) From 6eeb17d27eb1e34d4dd3fba7b0038d9b7df6ab93 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Tue, 1 Oct 2024 10:04:50 -0400 Subject: [PATCH 13/50] add test for bad sidd 1.0.0 --- .../c++/six.sidd/unittests/test_valid_sixsidd.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index 8880ad45d..635062da3 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -198,6 +198,14 @@ TEST_CASE(test_read_sidd300_v13_xml) test_read_sidd_xml(testName, "sidd300_ISM-v13.xml"); } +TEST_CASE(test_read_sidd100_bad_xml) +{ + const auto schemaPaths = getSchemaPaths(); + TEST_SPECIFIC_EXCEPTION( + test_read_sidd_xml(testName, "sidd100-bad.xml", &schemaPaths), + six::DESValidationException); +} + TEST_CASE(test_read_sidd200_bad_xml) { const auto schemaPaths = getSchemaPaths(); @@ -229,6 +237,7 @@ TEST_MAIN( TEST_CHECK(test_read_sidd200_xml); TEST_CHECK(test_read_sidd300_xml); TEST_CHECK(test_read_sidd300_v13_xml); + TEST_CHECK(test_read_sidd100_bad_xml); TEST_CHECK(test_read_sidd200_bad_xml); TEST_CHECK(test_read_sidd300_bad_xml); TEST_CHECK(test_read_sidd300_v13_bad_xml); From 437ae1e86690c0eea08aeb622fe463fe493c0e5f Mon Sep 17 00:00:00 2001 From: abeaucha Date: Tue, 1 Oct 2024 13:19:27 -0400 Subject: [PATCH 14/50] readme on generating test files --- six/modules/c++/six.sicd/tests/sample_xml/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 six/modules/c++/six.sicd/tests/sample_xml/README.md diff --git a/six/modules/c++/six.sicd/tests/sample_xml/README.md b/six/modules/c++/six.sicd/tests/sample_xml/README.md new file mode 100644 index 000000000..68556863a --- /dev/null +++ b/six/modules/c++/six.sicd/tests/sample_xml/README.md @@ -0,0 +1,10 @@ + + +*Bad* test files were created with the following script (run from the root of the repository). + +```shell +for x in $(fd "\.nitf$" | grep -vi sidd); +do + perl -nE 'if (/(.*<\/SI[CD]D>)/) {$b=$1; $b=~m/.*?:(\d+\.\d+.\d+)/g; $c=$1; $c=~s/\.//g; say $c; $b=~s{()}{$1 . ""}ex; $fname="six/modules/c++/six.sicd/tests/sample_xml/sicd${c}-bad.xml"; open my $fh, ">", $fname or die $!; print $fh $b; system("xmllint --format ${fname} -o ${fname}")};' $x ; +done +``` From 01943d5aa6a6f5601a3165dedaaa11aec71ccc88 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Tue, 1 Oct 2024 16:11:25 -0400 Subject: [PATCH 15/50] add test profiling --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index 4ee393457..9c4f2cf8d 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -146,8 +146,36 @@ TEST_CASE(test_read_sicd130_xml) test_read_sicd_xml(testName, "sicd130.xml"); } +struct Profiler +{ + Profiler(const char* envVar, + const std::string& testName) : + mEnvVar(envVar), + mTestName(testName) + { + watch.start(); + } + + ~Profiler() + { + auto elapsed = watch.stop(); + if (OS.isEnvSet(mEnvVar)) + { + std::cerr << mTestName << ": " << elapsed << "ms" << std::endl; + } + } + + const std::string mEnvVar; + const std::string& mTestName; + sys::OS OS; + sys::RealTimeStopWatch watch; +}; + +#define PROFILE() Profiler profiler("SIX_PROFILE_PARSING", testName); + TEST_CASE(test_read_sicd040_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd040-bad.xml"), six::DESValidationException); @@ -155,6 +183,7 @@ TEST_CASE(test_read_sicd040_bad_xml) TEST_CASE(test_read_sicd041_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd041-bad.xml"), six::DESValidationException); @@ -162,6 +191,7 @@ TEST_CASE(test_read_sicd041_bad_xml) TEST_CASE(test_read_sicd050_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd050-bad.xml"), six::DESValidationException); @@ -169,6 +199,7 @@ TEST_CASE(test_read_sicd050_bad_xml) TEST_CASE(test_read_sicd100_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd100-bad.xml"), six::DESValidationException); @@ -176,6 +207,7 @@ TEST_CASE(test_read_sicd100_bad_xml) TEST_CASE(test_read_sicd101_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd101-bad.xml"), six::DESValidationException); @@ -183,6 +215,7 @@ TEST_CASE(test_read_sicd101_bad_xml) TEST_CASE(test_read_sicd110_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd110-bad.xml"), six::DESValidationException); @@ -190,6 +223,7 @@ TEST_CASE(test_read_sicd110_bad_xml) TEST_CASE(test_read_sicd120_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd120-bad.xml"), six::DESValidationException); @@ -197,6 +231,7 @@ TEST_CASE(test_read_sicd120_bad_xml) TEST_CASE(test_read_sicd121_bad_xml) { + PROFILE(); TEST_SPECIFIC_EXCEPTION( test_read_sicd_xml(testName, "sicd121-bad.xml"), six::DESValidationException); From e8dfbebdd9df81b89885646be8b96fa531bf5e14 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Tue, 1 Oct 2024 16:30:22 -0400 Subject: [PATCH 16/50] parameterize stream --- .../c++/six.sicd/unittests/test_valid_sixsicd.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index 9c4f2cf8d..8d69f0181 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -149,9 +149,11 @@ TEST_CASE(test_read_sicd130_xml) struct Profiler { Profiler(const char* envVar, - const std::string& testName) : + const std::string& testName, + std::ostream &stream) : mEnvVar(envVar), - mTestName(testName) + mTestName(testName), + mStream(stream) { watch.start(); } @@ -161,17 +163,18 @@ struct Profiler auto elapsed = watch.stop(); if (OS.isEnvSet(mEnvVar)) { - std::cerr << mTestName << ": " << elapsed << "ms" << std::endl; + mStream << mTestName << ": " << elapsed << "ms" << std::endl; } } const std::string mEnvVar; const std::string& mTestName; + std::ostream& mStream; sys::OS OS; sys::RealTimeStopWatch watch; }; -#define PROFILE() Profiler profiler("SIX_PROFILE_PARSING", testName); +#define PROFILE() Profiler profiler("SIX_PROFILE_PARSING", testName, std::cerr); TEST_CASE(test_read_sicd040_bad_xml) { From 4d5fb6fb25c90e42d5aa62e435ec388397b5fd81 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 09:20:50 -0400 Subject: [PATCH 17/50] profiler object to testing utils --- six/modules/c++/six/include/six/Utilities.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/six/modules/c++/six/include/six/Utilities.h b/six/modules/c++/six/include/six/Utilities.h index 58bf338ec..b7d3b5cc3 100644 --- a/six/modules/c++/six/include/six/Utilities.h +++ b/six/modules/c++/six/include/six/Utilities.h @@ -382,8 +382,24 @@ namespace testing SIX_SIX_API std::vector getSchemaPaths(); SIX_SIX_API std::filesystem::path getModuleFile(const std::filesystem::path& modulePath, const std::filesystem::path& filename); SIX_SIX_API std::filesystem::path getSampleXmlPath(const std::filesystem::path& module /*"six.sicd"*/, const std::filesystem::path& filename); -} + struct SIX_SIX_API Profiler + { + Profiler(const char* envVar, + const std::string& testName, + std::ostream &stream); + + ~Profiler(); + + const std::string mEnvVar; + const std::string& mTestName; + std::ostream& mStream; + + sys::OS mOs; + sys::RealTimeStopWatch mStopWatch; + }; + +} } #endif // SIX_six_Utilities_h_INCLUDED_ From 5288818c30660889aa250f0df4211f7e08a70ee3 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 09:21:16 -0400 Subject: [PATCH 18/50] Profiler to testing utils --- six/modules/c++/six/source/Utilities.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/six/modules/c++/six/source/Utilities.cpp b/six/modules/c++/six/source/Utilities.cpp index ff04dd92c..f3b9ce2a6 100644 --- a/six/modules/c++/six/source/Utilities.cpp +++ b/six/modules/c++/six/source/Utilities.cpp @@ -925,6 +925,23 @@ std::filesystem::path six::testing::getSampleXmlPath(const std::filesystem::path return getModuleFile(modulePath, filename); } +six::testing::Profiler::Profiler(const char* envVar, const std::string& testName, std::ostream &stream) + : mEnvVar(envVar), + mTestName(testName), + mStream(stream) +{ + mStopWatch.start(); +} + +six::testing::Profiler::~Profiler() +{ + auto elapsed = mStopWatch.stop(); + if (mOs.isEnvSet(mEnvVar)) + { + mStream << mTestName << ": " << elapsed << "ms" << std::endl; + } +} + six::DataParser::DataParser(const std::vector* pSchemaPaths, logging::Logger* pLog) : mpSchemaPaths(pSchemaPaths), mLog(pLog == nullptr ? mNullLogger : *pLog) From b758bbf56a6e937b1e5071d824c89f0bb63893e8 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 09:22:14 -0400 Subject: [PATCH 19/50] move Profiler to testing utils --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 30 +------------------ 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index 8d69f0181..ab9a75416 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -146,35 +146,7 @@ TEST_CASE(test_read_sicd130_xml) test_read_sicd_xml(testName, "sicd130.xml"); } -struct Profiler -{ - Profiler(const char* envVar, - const std::string& testName, - std::ostream &stream) : - mEnvVar(envVar), - mTestName(testName), - mStream(stream) - { - watch.start(); - } - - ~Profiler() - { - auto elapsed = watch.stop(); - if (OS.isEnvSet(mEnvVar)) - { - mStream << mTestName << ": " << elapsed << "ms" << std::endl; - } - } - - const std::string mEnvVar; - const std::string& mTestName; - std::ostream& mStream; - sys::OS OS; - sys::RealTimeStopWatch watch; -}; - -#define PROFILE() Profiler profiler("SIX_PROFILE_PARSING", testName, std::cerr); +#define PROFILE() six::testing::Profiler profiler("SIX_PROFILE_PARSING", testName, std::cerr); TEST_CASE(test_read_sicd040_bad_xml) { From b477d9f6277fa280550a83755d3903f418626efd Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 10:32:43 -0400 Subject: [PATCH 20/50] stat profiler --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index ab9a75416..162375de3 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -148,6 +148,65 @@ TEST_CASE(test_read_sicd130_xml) #define PROFILE() six::testing::Profiler profiler("SIX_PROFILE_PARSING", testName, std::cerr); +template +struct EnvProfiler +{ + EnvProfiler(const char* envVar, + const std::string& testName, + std::ostream &stream) + : mEnvVar(envVar), + mTestName(testName), + mStream(stream) + { + sys::OS os; + mEnabled = os.isEnvSet(mEnvVar); + mNumIters = mEnabled + ? str::toType(os.getEnv(mEnvVar)) + : 1; + } + + void operator()(TFunc f) + { + if (mEnabled) + { + double mean(0.0); + double mn(std::numeric_limits::infinity()); + double mx(-std::numeric_limits::infinity()); + for (int i = 0; i < mNumIters; ++i) + { + sys::RealTimeStopWatch sw; + sw.start(); + + f(); + + auto elapsed = sw.stop(); + + mean += elapsed; + mn = std::min(elapsed, mn); + mx = std::max(elapsed, mx); + } + + mean /= mNumIters; + mStream << mTestName << ":(mean/min/max)ms: " + << mean << "/" << mn << "/" << mx << std::endl; + } + else + { + f(); + } + } + + ~EnvProfiler() = default; + + const std::string mEnvVar; + const std::string& mTestName; + std::ostream& mStream; + int mNumIters; + int mEnabled; +}; + +#define PROFILE2(X) EnvProfiler>("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); + TEST_CASE(test_read_sicd040_bad_xml) { PROFILE(); From b9122519d038cb62aae002796ba7df3901908d67 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 10:47:06 -0400 Subject: [PATCH 21/50] move profiler to testing utils --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 57 ------------------ six/modules/c++/six/include/six/Utilities.h | 58 +++++++++++++++++++ 2 files changed, 58 insertions(+), 57 deletions(-) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index 162375de3..e8c85a429 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -148,63 +148,6 @@ TEST_CASE(test_read_sicd130_xml) #define PROFILE() six::testing::Profiler profiler("SIX_PROFILE_PARSING", testName, std::cerr); -template -struct EnvProfiler -{ - EnvProfiler(const char* envVar, - const std::string& testName, - std::ostream &stream) - : mEnvVar(envVar), - mTestName(testName), - mStream(stream) - { - sys::OS os; - mEnabled = os.isEnvSet(mEnvVar); - mNumIters = mEnabled - ? str::toType(os.getEnv(mEnvVar)) - : 1; - } - - void operator()(TFunc f) - { - if (mEnabled) - { - double mean(0.0); - double mn(std::numeric_limits::infinity()); - double mx(-std::numeric_limits::infinity()); - for (int i = 0; i < mNumIters; ++i) - { - sys::RealTimeStopWatch sw; - sw.start(); - - f(); - - auto elapsed = sw.stop(); - - mean += elapsed; - mn = std::min(elapsed, mn); - mx = std::max(elapsed, mx); - } - - mean /= mNumIters; - mStream << mTestName << ":(mean/min/max)ms: " - << mean << "/" << mn << "/" << mx << std::endl; - } - else - { - f(); - } - } - - ~EnvProfiler() = default; - - const std::string mEnvVar; - const std::string& mTestName; - std::ostream& mStream; - int mNumIters; - int mEnabled; -}; - #define PROFILE2(X) EnvProfiler>("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); TEST_CASE(test_read_sicd040_bad_xml) diff --git a/six/modules/c++/six/include/six/Utilities.h b/six/modules/c++/six/include/six/Utilities.h index b7d3b5cc3..a5dd018ea 100644 --- a/six/modules/c++/six/include/six/Utilities.h +++ b/six/modules/c++/six/include/six/Utilities.h @@ -399,6 +399,64 @@ namespace testing sys::RealTimeStopWatch mStopWatch; }; + template + struct SIX_SIX_API EnvProfiler + { + EnvProfiler(const char* envVar, + const std::string& testName, + std::ostream &stream) + : mEnvVar(envVar), + mTestName(testName), + mStream(stream) + { + sys::OS os; + mEnabled = os.isEnvSet(mEnvVar); + mNumIters = mEnabled + ? str::toType(os.getEnv(mEnvVar)) + : 1; + } + + void operator()(TFunc f) + { + if (mEnabled) + { + double mean(0.0); + double mn(std::numeric_limits::infinity()); + double mx(-std::numeric_limits::infinity()); + for (int i = 0; i < mNumIters; ++i) + { + sys::RealTimeStopWatch sw; + sw.start(); + + f(); + + auto elapsed = sw.stop(); + + mean += elapsed; + mn = std::min(elapsed, mn); + mx = std::max(elapsed, mx); + } + + mean /= mNumIters; + mStream << mTestName << ":(mean/min/max)ms: " + << mean << "/" << mn << "/" << mx << std::endl; + } + else + { + f(); + } + } + + ~EnvProfiler() = default; + + const std::string mEnvVar; + const std::string& mTestName; + std::ostream& mStream; + int mNumIters; + int mEnabled; + }; + + } } From a52d726e7088ed6735910780cc9896c135720f7d Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 10:48:53 -0400 Subject: [PATCH 22/50] update PROFILE to match new definition --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 76 ++++++++++--------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index e8c85a429..f2c9cc4c9 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -146,72 +146,78 @@ TEST_CASE(test_read_sicd130_xml) test_read_sicd_xml(testName, "sicd130.xml"); } -#define PROFILE() six::testing::Profiler profiler("SIX_PROFILE_PARSING", testName, std::cerr); - -#define PROFILE2(X) EnvProfiler>("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); +#define PROFILE(X) six::testing::EnvProfiler>("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); TEST_CASE(test_read_sicd040_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd040-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd040-bad.xml"), + six::DESValidationException); + ); } TEST_CASE(test_read_sicd041_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd041-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd041-bad.xml"), + six::DESValidationException); + ); } TEST_CASE(test_read_sicd050_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd050-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd050-bad.xml"), + six::DESValidationException); + ); } TEST_CASE(test_read_sicd100_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd100-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd100-bad.xml"), + six::DESValidationException); + ); } TEST_CASE(test_read_sicd101_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd101-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd101-bad.xml"), + six::DESValidationException); + ); } TEST_CASE(test_read_sicd110_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd110-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd110-bad.xml"), + six::DESValidationException); + ); } TEST_CASE(test_read_sicd120_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd120-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd120-bad.xml"), + six::DESValidationException); + ); } TEST_CASE(test_read_sicd121_bad_xml) { - PROFILE(); - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd121-bad.xml"), - six::DESValidationException); + PROFILE( + TEST_SPECIFIC_EXCEPTION( + test_read_sicd_xml(testName, "sicd121-bad.xml"), + six::DESValidationException); + ); } TEST_MAIN( From 2c51b5216662cd4d409263a1d9e781f5006bd77a Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 10:54:25 -0400 Subject: [PATCH 23/50] remove old profiler version --- six/modules/c++/six/include/six/Utilities.h | 16 ---------------- six/modules/c++/six/source/Utilities.cpp | 17 ----------------- 2 files changed, 33 deletions(-) diff --git a/six/modules/c++/six/include/six/Utilities.h b/six/modules/c++/six/include/six/Utilities.h index a5dd018ea..61040b993 100644 --- a/six/modules/c++/six/include/six/Utilities.h +++ b/six/modules/c++/six/include/six/Utilities.h @@ -383,22 +383,6 @@ namespace testing SIX_SIX_API std::filesystem::path getModuleFile(const std::filesystem::path& modulePath, const std::filesystem::path& filename); SIX_SIX_API std::filesystem::path getSampleXmlPath(const std::filesystem::path& module /*"six.sicd"*/, const std::filesystem::path& filename); - struct SIX_SIX_API Profiler - { - Profiler(const char* envVar, - const std::string& testName, - std::ostream &stream); - - ~Profiler(); - - const std::string mEnvVar; - const std::string& mTestName; - std::ostream& mStream; - - sys::OS mOs; - sys::RealTimeStopWatch mStopWatch; - }; - template struct SIX_SIX_API EnvProfiler { diff --git a/six/modules/c++/six/source/Utilities.cpp b/six/modules/c++/six/source/Utilities.cpp index f3b9ce2a6..ff04dd92c 100644 --- a/six/modules/c++/six/source/Utilities.cpp +++ b/six/modules/c++/six/source/Utilities.cpp @@ -925,23 +925,6 @@ std::filesystem::path six::testing::getSampleXmlPath(const std::filesystem::path return getModuleFile(modulePath, filename); } -six::testing::Profiler::Profiler(const char* envVar, const std::string& testName, std::ostream &stream) - : mEnvVar(envVar), - mTestName(testName), - mStream(stream) -{ - mStopWatch.start(); -} - -six::testing::Profiler::~Profiler() -{ - auto elapsed = mStopWatch.stop(); - if (mOs.isEnvSet(mEnvVar)) - { - mStream << mTestName << ": " << elapsed << "ms" << std::endl; - } -} - six::DataParser::DataParser(const std::vector* pSchemaPaths, logging::Logger* pLog) : mpSchemaPaths(pSchemaPaths), mLog(pLog == nullptr ? mNullLogger : *pLog) From 17864eb24a18bed94693e3807948556e3df34768 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 11:47:13 -0400 Subject: [PATCH 24/50] comment --- six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index f2c9cc4c9..f1b68ba60 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -146,6 +146,8 @@ TEST_CASE(test_read_sicd130_xml) test_read_sicd_xml(testName, "sicd130.xml"); } +// Set SIX_PROFILE_PARSING=N to when running the +// test to profile the tests by re-running N-times #define PROFILE(X) six::testing::EnvProfiler>("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); TEST_CASE(test_read_sicd040_bad_xml) From 897255af32a3642557fdc79967086982bb745c89 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 14:33:31 -0400 Subject: [PATCH 25/50] CRTP inheritance for profiling classes --- six/modules/c++/six/include/six/Utilities.h | 95 +++++++++++++++------ 1 file changed, 70 insertions(+), 25 deletions(-) diff --git a/six/modules/c++/six/include/six/Utilities.h b/six/modules/c++/six/include/six/Utilities.h index 61040b993..c54841334 100644 --- a/six/modules/c++/six/include/six/Utilities.h +++ b/six/modules/c++/six/include/six/Utilities.h @@ -383,10 +383,12 @@ namespace testing SIX_SIX_API std::filesystem::path getModuleFile(const std::filesystem::path& modulePath, const std::filesystem::path& filename); SIX_SIX_API std::filesystem::path getSampleXmlPath(const std::filesystem::path& module /*"six.sicd"*/, const std::filesystem::path& filename); - template - struct SIX_SIX_API EnvProfiler + /// @brief CRTP Base class to allow toggling profiling code based on ENV vars + /// @tparam DerivedProfiler + template + struct SIX_SIX_API BaseEnvProfiler { - EnvProfiler(const char* envVar, + BaseEnvProfiler(const char* envVar, const std::string& testName, std::ostream &stream) : mEnvVar(envVar), @@ -399,31 +401,14 @@ namespace testing ? str::toType(os.getEnv(mEnvVar)) : 1; } + ~BaseEnvProfiler() = default; + template void operator()(TFunc f) { if (mEnabled) { - double mean(0.0); - double mn(std::numeric_limits::infinity()); - double mx(-std::numeric_limits::infinity()); - for (int i = 0; i < mNumIters; ++i) - { - sys::RealTimeStopWatch sw; - sw.start(); - - f(); - - auto elapsed = sw.stop(); - - mean += elapsed; - mn = std::min(elapsed, mn); - mx = std::max(elapsed, mx); - } - - mean /= mNumIters; - mStream << mTestName << ":(mean/min/max)ms: " - << mean << "/" << mn << "/" << mx << std::endl; + static_cast(this)->opImpl(f); } else { @@ -431,8 +416,6 @@ namespace testing } } - ~EnvProfiler() = default; - const std::string mEnvVar; const std::string& mTestName; std::ostream& mStream; @@ -440,6 +423,68 @@ namespace testing int mEnabled; }; + /// @brief Toggle runtime profiling based on env var + struct SIX_SIX_API EnvProfiler : BaseEnvProfiler + { + EnvProfiler(const char* envVar, + const std::string& testName, + std::ostream &stream) : BaseEnvProfiler(envVar, testName, stream) + {} + ~EnvProfiler() = default; + + template + void opImpl(TFunc f) + { + double mean(0.0); + double mn(std::numeric_limits::infinity()); + double mx(-std::numeric_limits::infinity()); + for (int i = 0; i < mNumIters; ++i) + { + sys::RealTimeStopWatch sw; + sw.start(); + + f(); + + auto elapsed = sw.stop(); + + mean += elapsed; + mn = std::min(elapsed, mn); + mx = std::max(elapsed, mx); + } + + mean /= mNumIters; + mStream << mTestName << " runtime (mean/min/max)ms: " + << mean << "/" << mn << "/" << mx << std::endl; + } + }; + + /// @brief Toggle profiling of exception sizes based on env var + /// @tparam TExcept + template + struct SIX_SIX_API StackTraceSizeEnvProfiler : BaseEnvProfiler> + { + StackTraceSizeEnvProfiler(const char* envVar, + const std::string& testName, + std::ostream &stream) : BaseEnvProfiler>(envVar, testName, stream) + {} + ~StackTraceSizeEnvProfiler() = default; + + template + void opImpl(TFunc f) + { + try + { + f(); + } + catch (const TExcept& ex) + { + // log size of the exception message + this->mStream << this->mTestName << ": exception size (bytes): " << strlen(ex.what()) << std::endl; + + throw; + } + } + }; } } From ddbe248181a5d0fb3378eec2037119acf89562c0 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 14:44:29 -0400 Subject: [PATCH 26/50] add profiling of exception size to test --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 50 +++++++++---------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index f1b68ba60..ac2bc6f85 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -146,79 +146,75 @@ TEST_CASE(test_read_sicd130_xml) test_read_sicd_xml(testName, "sicd130.xml"); } -// Set SIX_PROFILE_PARSING=N to when running the -// test to profile the tests by re-running N-times -#define PROFILE(X) six::testing::EnvProfiler>("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); +// Set SIX_PROFILE_PARSING=N when running the test to profile the tests by re-running N-times +#define PROFILE(X) six::testing::EnvProfiler("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); + +// Set SIX_PROFILE_STACKSIZE=1 when running to log the size of the stacktrace +#define SSPROFILE(X, Y) TEST_SPECIFIC_EXCEPTION( \ + six::testing::StackTraceSizeEnvProfiler( \ + "SIX_PROFILE_STACKSIZE", testName, std::cerr)([&](){X;}), Y) TEST_CASE(test_read_sicd040_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd040-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd040-bad.xml"), + six::DESValidationException) ); } TEST_CASE(test_read_sicd041_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd041-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd041-bad.xml"), + six::DESValidationException) ); } TEST_CASE(test_read_sicd050_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd050-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd050-bad.xml"), + six::DESValidationException); ); } TEST_CASE(test_read_sicd100_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd100-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd100-bad.xml"), + six::DESValidationException); ); } TEST_CASE(test_read_sicd101_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd101-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd101-bad.xml"), + six::DESValidationException); ); } TEST_CASE(test_read_sicd110_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd110-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd110-bad.xml"), + six::DESValidationException); ); } TEST_CASE(test_read_sicd120_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd120-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd120-bad.xml"), + six::DESValidationException); ); } TEST_CASE(test_read_sicd121_bad_xml) { PROFILE( - TEST_SPECIFIC_EXCEPTION( - test_read_sicd_xml(testName, "sicd121-bad.xml"), - six::DESValidationException); + SSPROFILE(test_read_sicd_xml(testName, "sicd121-bad.xml"), + six::DESValidationException); ); } From 3cd976875d1a0b4ab2eb71e8c375709da1210dc2 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 15:27:40 -0400 Subject: [PATCH 27/50] add profiling to sidd tests --- .../six.sidd/unittests/test_valid_sixsidd.cpp | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index 635062da3..f84ebdb3c 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -198,36 +198,39 @@ TEST_CASE(test_read_sidd300_v13_xml) test_read_sidd_xml(testName, "sidd300_ISM-v13.xml"); } +// Set SIX_PROFILE_PARSING=N when running the test to profile the tests by re-running N-times +#define PROFILE(X) six::testing::EnvProfiler("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); + +// Set SIX_PROFILE_STACKSIZE=1 when running to log the size of the stacktrace +#define SSPROFILE(X, Y) TEST_SPECIFIC_EXCEPTION( \ + six::testing::StackTraceSizeEnvProfiler( \ + "SIX_PROFILE_STACKSIZE", testName, std::cerr)([&](){X;}), Y) + +#define TEST_BAD_XML(X) PROFILE(SSPROFILE(X, six::DESValidationException)); + + TEST_CASE(test_read_sidd100_bad_xml) { const auto schemaPaths = getSchemaPaths(); - TEST_SPECIFIC_EXCEPTION( - test_read_sidd_xml(testName, "sidd100-bad.xml", &schemaPaths), - six::DESValidationException); + TEST_BAD_XML(test_read_sidd_xml(testName, "sidd100-bad.xml", &schemaPaths)); } TEST_CASE(test_read_sidd200_bad_xml) { const auto schemaPaths = getSchemaPaths(); - TEST_SPECIFIC_EXCEPTION( - test_read_sidd_xml(testName, "sidd200-bad.xml", &schemaPaths), - six::DESValidationException); + TEST_BAD_XML(test_read_sidd_xml(testName, "sidd200-bad.xml", &schemaPaths)); } TEST_CASE(test_read_sidd300_bad_xml) { const auto schemaPaths = getSchemaPaths(); - TEST_SPECIFIC_EXCEPTION( - test_read_sidd_xml(testName, "sidd300-bad.xml", &schemaPaths), - six::DESValidationException); + TEST_BAD_XML(test_read_sidd_xml(testName, "sidd300-bad.xml", &schemaPaths)); } TEST_CASE(test_read_sidd300_v13_bad_xml) { const auto schemaPaths = getSchemaPaths(); - TEST_SPECIFIC_EXCEPTION( - test_read_sidd_xml(testName, "sidd300_ISM-v13-bad.xml", &schemaPaths), - six::DESValidationException); + TEST_BAD_XML(test_read_sidd_xml(testName, "sidd300_ISM-v13-bad.xml", &schemaPaths)); } TEST_MAIN( From e8936a20008a4b6728b164ce549c3b057636f714 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Wed, 2 Oct 2024 15:38:41 -0400 Subject: [PATCH 28/50] macro-ize bad xml tests --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 42 +++++-------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index ac2bc6f85..078a5e2c1 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -154,68 +154,46 @@ TEST_CASE(test_read_sicd130_xml) six::testing::StackTraceSizeEnvProfiler( \ "SIX_PROFILE_STACKSIZE", testName, std::cerr)([&](){X;}), Y) +#define TEST_BAD_XML(X) PROFILE(SSPROFILE(X, six::DESValidationException)); + TEST_CASE(test_read_sicd040_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd040-bad.xml"), - six::DESValidationException) - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd040-bad.xml")); } TEST_CASE(test_read_sicd041_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd041-bad.xml"), - six::DESValidationException) - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd041-bad.xml")); } TEST_CASE(test_read_sicd050_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd050-bad.xml"), - six::DESValidationException); - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd050-bad.xml")); } TEST_CASE(test_read_sicd100_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd100-bad.xml"), - six::DESValidationException); - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd100-bad.xml")); } TEST_CASE(test_read_sicd101_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd101-bad.xml"), - six::DESValidationException); - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd101-bad.xml")); } TEST_CASE(test_read_sicd110_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd110-bad.xml"), - six::DESValidationException); - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd110-bad.xml")); } TEST_CASE(test_read_sicd120_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd120-bad.xml"), - six::DESValidationException); - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd120-bad.xml")); } TEST_CASE(test_read_sicd121_bad_xml) { - PROFILE( - SSPROFILE(test_read_sicd_xml(testName, "sicd121-bad.xml"), - six::DESValidationException); - ); + TEST_BAD_XML(test_read_sicd_xml(testName, "sicd121-bad.xml")); } TEST_MAIN( From 943ca7fe9c534bc73f23cd3459fb003d87ce25fa Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 11:22:06 -0400 Subject: [PATCH 29/50] ipython notebook for profiling --- scripts/six/six-bad_xml-profiling.ipynb | 94 +++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 scripts/six/six-bad_xml-profiling.ipynb diff --git a/scripts/six/six-bad_xml-profiling.ipynb b/scripts/six/six-bad_xml-profiling.ipynb new file mode 100644 index 000000000..19c983ac1 --- /dev/null +++ b/scripts/six/six-bad_xml-profiling.ipynb @@ -0,0 +1,94 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "# run commands from repo root\n", + "cd $(git rev-parse --show-toplevel);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "./waf build --alltests --target=test_valid_sixsicd,test_valid_sixsidd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "time SIX_PROFILE_PARSING=100 ./target/six/modules/c++/six.sicd/unittests/test_valid_sixsicd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "# only 10 iterations because this takes so long in the old code\n", + "time SIX_PROFILE_PARSING=10 ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "time SIX_PROFILE_STACKSIZE=1 ./target/six/modules/c++/six.sicd/unittests/test_valid_sixsicd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "SIX_PROFILE_STACKSIZE=1 ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From cc1744710241e910728d0ac8d4dfc8966ccf7029 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 12:06:06 -0400 Subject: [PATCH 30/50] update with actual run --- scripts/six/six-bad_xml-profiling.ipynb | 176 ++++++++++++++++++++++-- 1 file changed, 167 insertions(+), 9 deletions(-) diff --git a/scripts/six/six-bad_xml-profiling.ipynb b/scripts/six/six-bad_xml-profiling.ipynb index 19c983ac1..6fc6561d7 100644 --- a/scripts/six/six-bad_xml-profiling.ipynb +++ b/scripts/six/six-bad_xml-profiling.ipynb @@ -1,5 +1,48 @@ { "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "processor\t: 0\n", + "vendor_id\t: GenuineIntel\n", + "cpu family\t: 6\n", + "model\t\t: 165\n", + "model name\t: Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz\n", + "stepping\t: 2\n", + "microcode\t: 0xffffffff\n", + "cpu MHz\t\t: 2712.000\n", + "cache size\t: 256 KB\n", + "physical id\t: 0\n", + "siblings\t: 12\n", + "core id\t\t: 0\n", + "cpu cores\t: 6\n", + "apicid\t\t: 0\n", + "initial apicid\t: 0\n", + "fpu\t\t: yes\n", + "fpu_exception\t: yes\n", + "cpuid level\t: 6\n", + "wp\t\t: yes\n", + "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq dtes64 est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave osxsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt ibrs ibpb stibp ssbd\n", + "bogomips\t: 5424.00\n", + "clflush size\t: 64\n", + "cache_alignment\t: 64\n", + "address sizes\t: 36 bits physical, 48 bits virtual\n", + "power management:\n" + ] + } + ], + "source": [ + "%%bash\n", + "# document cpu info\n", + "perl -nle 'print if /^processor/ .. /power management/ or exit 0' < /proc/cpuinfo" + ] + }, { "cell_type": "code", "execution_count": null, @@ -18,35 +61,123 @@ "outputs": [], "source": [ "%%bash\n", - "./waf build --alltests --target=test_valid_sixsicd,test_valid_sixsidd" + "./waf build --target=test_valid_sixsicd,test_valid_sixsidd" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "test_createFakeComplexData: PASSED\n", + "test_read_sicd110_xml: PASSED\n", + "test_read_sicd130_xml: PASSED\n", + "test_read_sicd040_bad_xml runtime (mean/min/max)ms: 799.069/799.069/799.069\n", + "test_read_sicd040_bad_xml: PASSED\n", + "test_read_sicd041_bad_xml runtime (mean/min/max)ms: 108.141/108.141/108.141\n", + "test_read_sicd041_bad_xml: PASSED\n", + "test_read_sicd050_bad_xml runtime (mean/min/max)ms: 560.315/560.315/560.315\n", + "test_read_sicd050_bad_xml: PASSED\n", + "test_read_sicd100_bad_xml runtime (mean/min/max)ms: 548.833/548.833/548.833\n", + "test_read_sicd100_bad_xml: PASSED\n", + "test_read_sicd101_bad_xml runtime (mean/min/max)ms: 557.161/557.161/557.161\n", + "test_read_sicd101_bad_xml: PASSED\n", + "test_read_sicd110_bad_xml runtime (mean/min/max)ms: 82.751/82.751/82.751\n", + "test_read_sicd110_bad_xml: PASSED\n", + "test_read_sicd120_bad_xml runtime (mean/min/max)ms: 558.453/558.453/558.453\n", + "test_read_sicd120_bad_xml: PASSED\n", + "test_read_sicd121_bad_xml runtime (mean/min/max)ms: 563.864/563.864/563.864\n", + "test_read_sicd121_bad_xml: PASSED\n", + "\n", + "real\t0m6.206s\n", + "user\t0m1.891s\n", + "sys\t0m3.531s\n" + ] + } + ], "source": [ "%%bash\n", - "time SIX_PROFILE_PARSING=100 ./target/six/modules/c++/six.sicd/unittests/test_valid_sixsicd" + "# only 1 iterations because this takes so long in the old code\n", + "time SIX_PROFILE_PARSING=1 ./target/six/modules/c++/six.sicd/unittests/test_valid_sixsicd" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "test_createFakeDerivedData: PASSED\n", + "test_createFakeDerivedData_validate: PASSED\n", + "Warning: Unable to find plugin path.\n", + "Specify plugin location by setting environment variable NITF_PLUGIN_PATH, or by building the library from source\n", + "test_read_sidd200_no_LUT: PASSED\n", + "test_read_sidd200_xml: PASSED\n", + "test_read_sidd300_xml: PASSED\n", + "test_read_sidd300_v13_xml: PASSED\n", + "test_read_sidd100_bad_xml runtime (mean/min/max)ms: 47486.9/47486.9/47486.9\n", + "test_read_sidd100_bad_xml: PASSED\n", + "test_read_sidd200_bad_xml runtime (mean/min/max)ms: 57919.8/57919.8/57919.8\n", + "test_read_sidd200_bad_xml: PASSED\n", + "test_read_sidd300_bad_xml runtime (mean/min/max)ms: 48687.1/48687.1/48687.1\n", + "test_read_sidd300_bad_xml: PASSED\n", + "test_read_sidd300_v13_bad_xml runtime (mean/min/max)ms: 60032.3/60032.3/60032.3\n", + "test_read_sidd300_v13_bad_xml: PASSED\n", + "\n", + "real\t3m40.701s\n", + "user\t2m41.547s\n", + "sys\t0m58.047s\n" + ] + } + ], "source": [ "%%bash\n", - "# only 10 iterations because this takes so long in the old code\n", - "time SIX_PROFILE_PARSING=10 ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd " + "# only 1 iterations because this takes so long in the old code\n", + "time SIX_PROFILE_PARSING=1 ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "test_createFakeComplexData: PASSED\n", + "test_read_sicd110_xml: PASSED\n", + "test_read_sicd130_xml: PASSED\n", + "test_read_sicd040_bad_xml: exception size (bytes): 7007569\n", + "test_read_sicd040_bad_xml: PASSED\n", + "test_read_sicd041_bad_xml: exception size (bytes): 539015\n", + "test_read_sicd041_bad_xml: PASSED\n", + "test_read_sicd050_bad_xml: exception size (bytes): 4602157\n", + "test_read_sicd050_bad_xml: PASSED\n", + "test_read_sicd100_bad_xml: exception size (bytes): 4605991\n", + "test_read_sicd100_bad_xml: PASSED\n", + "test_read_sicd101_bad_xml: exception size (bytes): 4605991\n", + "test_read_sicd101_bad_xml: PASSED\n", + "test_read_sicd110_bad_xml: exception size (bytes): 326903\n", + "test_read_sicd110_bad_xml: PASSED\n", + "test_read_sicd120_bad_xml: exception size (bytes): 4605991\n", + "test_read_sicd120_bad_xml: PASSED\n", + "test_read_sicd121_bad_xml: exception size (bytes): 4768459\n", + "test_read_sicd121_bad_xml: PASSED\n", + "\n", + "real\t0m4.726s\n", + "user\t0m1.703s\n", + "sys\t0m2.313s\n" + ] + } + ], "source": [ "%%bash\n", "time SIX_PROFILE_STACKSIZE=1 ./target/six/modules/c++/six.sicd/unittests/test_valid_sixsicd" @@ -56,10 +187,37 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "test_createFakeDerivedData: PASSED\n", + "test_createFakeDerivedData_validate: PASSED\n", + "Warning: Unable to find plugin path.\n", + "Specify plugin location by setting environment variable NITF_PLUGIN_PATH, or by building the library from source\n", + "test_read_sidd200_no_LUT: PASSED\n", + "test_read_sidd200_xml: PASSED\n", + "test_read_sidd300_xml: PASSED\n", + "test_read_sidd300_v13_xml: PASSED\n", + "test_read_sidd100_bad_xml: exception size (bytes): 2030033\n", + "test_read_sidd100_bad_xml: PASSED\n", + "test_read_sidd200_bad_xml: exception size (bytes): 2370809\n", + "test_read_sidd200_bad_xml: PASSED\n", + "test_read_sidd300_bad_xml: exception size (bytes): 2121837\n", + "test_read_sidd300_bad_xml: PASSED\n", + "test_read_sidd300_v13_bad_xml: exception size (bytes): 2367559\n", + "test_read_sidd300_v13_bad_xml: PASSED\n", + "\n", + "real\t3m25.250s\n", + "user\t2m29.891s\n", + "sys\t0m54.422s\n" + ] + } + ], "source": [ "%%bash\n", - "SIX_PROFILE_STACKSIZE=1 ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd" + "time SIX_PROFILE_STACKSIZE=1 ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd" ] }, { From 834b4aee176f96bac663d1a58e34104fab241eed Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 12:37:22 -0400 Subject: [PATCH 31/50] fix cd command --- scripts/six/six-bad_xml-profiling.ipynb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/six/six-bad_xml-profiling.ipynb b/scripts/six/six-bad_xml-profiling.ipynb index 6fc6561d7..2c322a046 100644 --- a/scripts/six/six-bad_xml-profiling.ipynb +++ b/scripts/six/six-bad_xml-profiling.ipynb @@ -49,9 +49,10 @@ "metadata": {}, "outputs": [], "source": [ - "%%bash\n", "# run commands from repo root\n", - "cd $(git rev-parse --show-toplevel);" + "import os\n", + "topdir = !git rev-parse --show-toplevel\n", + "os.chdir(topdir[0])" ] }, { From a41d6a6ae4e069b4b434ce81f181c5365c9b47c0 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 09:52:54 -0400 Subject: [PATCH 32/50] add ref-based version of method --- six/modules/c++/six/include/six/XMLControl.h | 1 + 1 file changed, 1 insertion(+) diff --git a/six/modules/c++/six/include/six/XMLControl.h b/six/modules/c++/six/include/six/XMLControl.h index e171dc757..038577614 100644 --- a/six/modules/c++/six/include/six/XMLControl.h +++ b/six/modules/c++/six/include/six/XMLControl.h @@ -190,6 +190,7 @@ class SIX_SIX_API XMLControl static std::string getDefaultURI(const Data& data); static std::string getVersionFromURI(const xml::lite::Document* doc); + static std::string getVersionFromURI(const xml::lite::Document& doc); static void getVersionFromURI(const xml::lite::Document* doc, std::vector& version); From 551f85d7a641e9797a4f86d668fee15ffb951a5d Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 11:04:15 -0400 Subject: [PATCH 33/50] ref version of getVersionFromURI --- six/modules/c++/six/source/XMLControl.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 0b3157841..299cb5f62 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -313,7 +313,12 @@ std::string XMLControl::getDefaultURI(const Data& data) std::string XMLControl::getVersionFromURI(const xml::lite::Document* doc) { assert(doc != nullptr); - const auto uri = doc->getRootElement()->getUri(); + return getVersionFromURI(*doc); +} + +std::string XMLControl::getVersionFromURI(const xml::lite::Document& doc) +{ + const auto uri = doc.getRootElement()->getUri(); if (!(str::startsWith(uri, "urn:SICD:") || str::startsWith(uri, "urn:SIDD:"))) { From 4f5f0ea6c419620f6b469842a36275f06d390654 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 12:37:34 -0400 Subject: [PATCH 34/50] compute spec and version and pass to validate_() --- six/modules/c++/six/source/XMLControl.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 299cb5f62..dfca52e12 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -182,6 +182,7 @@ static void log_any_errors_and_throw(const std::vector& foundSchemas, logging::Logger& log) { xml::lite::Uri uri; @@ -219,6 +220,7 @@ static void validate_(const xml::lite::Element& rootElement, } static void validate_(const xml::lite::Document& doc, + const std::string& spec, const std::string& version, const std::vector& foundSchemas, logging::Logger& log) { auto rootElement = doc.getRootElement(); @@ -228,7 +230,7 @@ static void validate_(const xml::lite::Document& doc, } // validate against any specified schemas - validate_(*rootElement, foundSchemas, log); + validate_(*rootElement, spec, version, foundSchemas, log); } static std::vector findValidSchemaPaths(const std::vector&, logging::Logger*); @@ -245,7 +247,13 @@ void XMLControl::validate(const xml::lite::Document* doc, // validate against any specified schemas const auto foundSchemas = findValidSchemaPaths(schemaPaths, log); // If the paths we have don't exist, throw - validate_(*doc, foundSchemas, *log); + + // guarantees conditional below will succeed + std::string version = getVersionFromURI(doc); + const auto uri = doc->getRootElement()->getUri(); + const std::string spec(str::startsWith(uri, "urn:SICD:") ? "SICD" : "SIDD"); + + validate_(*doc, spec, version, foundSchemas, *log); } void XMLControl::validate(const xml::lite::Document& doc, const std::vector* pSchemaPaths, @@ -256,7 +264,13 @@ void XMLControl::validate(const xml::lite::Document& doc, // validate against any specified schemas const auto foundSchemas = findValidSchemaPaths(pSchemaPaths, log); - validate_(doc, foundSchemas, *log); + + // guarantees conditional below will succeed + std::string version = getVersionFromURI(doc); + const auto uri = doc.getRootElement()->getUri(); + const std::string spec(str::startsWith(uri, "urn:SICD:") ? "SICD" : "SIDD"); + + validate_(doc, spec, version, foundSchemas, *log); } static auto findValidSchemas(const std::vector& paths_) From c741ee743f6a634e4523977439a81c095992c5d8 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 12:39:46 -0400 Subject: [PATCH 35/50] winnow down number of schemas processed --- six/modules/c++/six/source/XMLControl.cpp | 65 ++++++++++++++++++++++- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index dfca52e12..c90bedfaf 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -196,6 +196,67 @@ static void validate_(const xml::lite::Element& rootElement, // Process schema paths one at a time. This will reduce the "noise" from XML validation failures // and could also make instantiating an xml::lite::ValidatorXerces faster. std::vector all_errors; + + // deduplicate the schema list + auto comp = [](const coda_oss::filesystem::path& x, const coda_oss::filesystem::path& y) { + return x.string() < y.string(); + }; + std::set uniq(foundSchemas.begin(), foundSchemas.end(), comp); + std::vector uniq_schemas(uniq.begin(), uniq.end()); + + // std::cout << spec << std::endl; + // std::cout << version << std::endl; + + // Remove schema paths whose filename component do not match the spec or version + auto spec_version_filter = [spec, version](const coda_oss::filesystem::path& x) { + auto x2 = x.filename().string(); + return x2.find(spec) == std::string::npos || + x2.find(version) == std::string::npos; + }; + typename decltype(uniq_schemas)::iterator inapplicable_schemas = + std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), spec_version_filter); + + uniq_schemas.erase(inapplicable_schemas, uniq_schemas.end()); + + // detect SIDD with us:gov:ic:ism:201609 and pick the correct schema + if (spec == "SIDD") + { + const std::string needle("201609"); + decltype(strPrettyXml) needle8(str::u8FromNative(needle)); + + typename decltype(uniq_schemas)::iterator hitlist; + if (strPrettyXml.find(needle8) != std::string::npos) { + // Doc is 201609, remove competing schemas + hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), [needle](coda_oss::filesystem::path &x) + { + return x.string().find(needle) == std::string::npos; + }); + } else { + // Doc is *not* 201609, remove any refs to 201609 + hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), [needle](coda_oss::filesystem::path &x) + { + return x.string().find(needle) != std::string::npos; + }); + } + + uniq_schemas.erase(hitlist, uniq_schemas.end()); + } + + const xml::lite::ValidatorXerces validator(uniq_schemas, &log); + + // validate against any specified schemas + std::vector errors; + validator.validate(strPrettyXml, uri.value, errors); + + // Looks like we validated; be sure there aren't any errors + if (errors.empty()) + { + return; // success! + } + + // This schema path failed; save away my errors in case none of them work + all_errors.insert(all_errors.end(), errors.begin(), errors.end()); +/* for (auto&& foundSchema : foundSchemas) { const std::vector foundSchemas_{ { foundSchema } }; @@ -214,9 +275,9 @@ static void validate_(const xml::lite::Element& rootElement, // This schema path failed; save away my errors in case none of them work all_errors.insert(all_errors.end(), errors.begin(), errors.end()); } - +*/ // log any error found and throw - log_any_errors_and_throw(all_errors, foundSchemas, log); + log_any_errors_and_throw(all_errors, uniq_schemas, log); } static void validate_(const xml::lite::Document& doc, From 7c75a98b852764f35ffacd59d97523ab2fa421f3 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 12:42:45 -0400 Subject: [PATCH 36/50] remove old version of code --- six/modules/c++/six/source/XMLControl.cpp | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index c90bedfaf..3695e11fe 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -256,26 +256,7 @@ static void validate_(const xml::lite::Element& rootElement, // This schema path failed; save away my errors in case none of them work all_errors.insert(all_errors.end(), errors.begin(), errors.end()); -/* - for (auto&& foundSchema : foundSchemas) - { - const std::vector foundSchemas_{ { foundSchema } }; - const xml::lite::ValidatorXerces validator(foundSchemas_, &log); - - // validate against any specified schemas - std::vector errors; - validator.validate(strPrettyXml, uri.value, errors); - - // Looks like we validated; be sure there aren't any errors - if (errors.empty()) - { - return; // success! - } - // This schema path failed; save away my errors in case none of them work - all_errors.insert(all_errors.end(), errors.begin(), errors.end()); - } -*/ // log any error found and throw log_any_errors_and_throw(all_errors, uniq_schemas, log); } From 93915a0f26e77a239eef290390c9e4d3553d3aba Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 12:44:02 -0400 Subject: [PATCH 37/50] remove redundant copy of errors --- six/modules/c++/six/source/XMLControl.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 3695e11fe..2a9accfc6 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -193,10 +193,6 @@ static void validate_(const xml::lite::Element& rootElement, rootElement.prettyPrint(xmlStream); const auto strPrettyXml = xmlStream.stream().str(); - // Process schema paths one at a time. This will reduce the "noise" from XML validation failures - // and could also make instantiating an xml::lite::ValidatorXerces faster. - std::vector all_errors; - // deduplicate the schema list auto comp = [](const coda_oss::filesystem::path& x, const coda_oss::filesystem::path& y) { return x.string() < y.string(); @@ -254,11 +250,8 @@ static void validate_(const xml::lite::Element& rootElement, return; // success! } - // This schema path failed; save away my errors in case none of them work - all_errors.insert(all_errors.end(), errors.begin(), errors.end()); - // log any error found and throw - log_any_errors_and_throw(all_errors, uniq_schemas, log); + log_any_errors_and_throw(errors, uniq_schemas, log); } static void validate_(const xml::lite::Document& doc, From 8d6fde3fbabe9602ffbdde947d54025d9183c796 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 15:26:15 -0400 Subject: [PATCH 38/50] stl to created negated function version --- six/modules/c++/six/source/XMLControl.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 2a9accfc6..b0e2a1177 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -221,18 +221,16 @@ static void validate_(const xml::lite::Element& rootElement, decltype(strPrettyXml) needle8(str::u8FromNative(needle)); typename decltype(uniq_schemas)::iterator hitlist; + auto has_needle = [needle](coda_oss::filesystem::path &x) { + return x.string().find(needle) != std::string::npos; + }; if (strPrettyXml.find(needle8) != std::string::npos) { // Doc is 201609, remove competing schemas - hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), [needle](coda_oss::filesystem::path &x) - { - return x.string().find(needle) == std::string::npos; - }); + auto not_has_needle = std::not1(std::function(has_needle)); + hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), not_has_needle); } else { // Doc is *not* 201609, remove any refs to 201609 - hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), [needle](coda_oss::filesystem::path &x) - { - return x.string().find(needle) != std::string::npos; - }); + hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), has_needle); } uniq_schemas.erase(hitlist, uniq_schemas.end()); From 5377d2c168abadbf6108cc8b8d359783c9268e1f Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 15:27:16 -0400 Subject: [PATCH 39/50] invert conditional --- six/modules/c++/six/source/XMLControl.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index b0e2a1177..62b0f3e3d 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -243,13 +243,10 @@ static void validate_(const xml::lite::Element& rootElement, validator.validate(strPrettyXml, uri.value, errors); // Looks like we validated; be sure there aren't any errors - if (errors.empty()) + if (! errors.empty()) { - return; // success! + log_any_errors_and_throw(errors, uniq_schemas, log); } - - // log any error found and throw - log_any_errors_and_throw(errors, uniq_schemas, log); } static void validate_(const xml::lite::Document& doc, From d75d517b30aa533f7fe211c9639fd2f91ef5daf7 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 15:51:44 -0400 Subject: [PATCH 40/50] rm debug code --- six/modules/c++/six/source/XMLControl.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 62b0f3e3d..381bc0ed2 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -200,9 +200,6 @@ static void validate_(const xml::lite::Element& rootElement, std::set uniq(foundSchemas.begin(), foundSchemas.end(), comp); std::vector uniq_schemas(uniq.begin(), uniq.end()); - // std::cout << spec << std::endl; - // std::cout << version << std::endl; - // Remove schema paths whose filename component do not match the spec or version auto spec_version_filter = [spec, version](const coda_oss::filesystem::path& x) { auto x2 = x.filename().string(); From 9a59d5ff3f86ef313dc9d39f1277bd3d1d60e46b Mon Sep 17 00:00:00 2001 From: abeaucha Date: Mon, 30 Sep 2024 20:05:58 -0400 Subject: [PATCH 41/50] skip validation with no schema --- six/modules/c++/six/source/XMLControl.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 381bc0ed2..6a088d071 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -185,6 +185,11 @@ static void validate_(const xml::lite::Element& rootElement, const std::string& spec, const std::string& version, const std::vector& foundSchemas, logging::Logger& log) { + if (foundSchemas.size() < 1) + { + return; // can't validate without a schema + } + xml::lite::Uri uri; rootElement.getUri(uri); From 1bd16771617623bf31b90ff634de776d7a6d28c4 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 12:39:00 -0400 Subject: [PATCH 42/50] update test results from latest version of code --- scripts/six/six-bad_xml-profiling.ipynb | 72 ++++++++++++------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/scripts/six/six-bad_xml-profiling.ipynb b/scripts/six/six-bad_xml-profiling.ipynb index 2c322a046..d81a286e5 100644 --- a/scripts/six/six-bad_xml-profiling.ipynb +++ b/scripts/six/six-bad_xml-profiling.ipynb @@ -77,26 +77,26 @@ "test_createFakeComplexData: PASSED\n", "test_read_sicd110_xml: PASSED\n", "test_read_sicd130_xml: PASSED\n", - "test_read_sicd040_bad_xml runtime (mean/min/max)ms: 799.069/799.069/799.069\n", + "test_read_sicd040_bad_xml runtime (mean/min/max)ms: 34.8972/34.8972/34.8972\n", "test_read_sicd040_bad_xml: PASSED\n", - "test_read_sicd041_bad_xml runtime (mean/min/max)ms: 108.141/108.141/108.141\n", + "test_read_sicd041_bad_xml runtime (mean/min/max)ms: 9.85791/9.85791/9.85791\n", "test_read_sicd041_bad_xml: PASSED\n", - "test_read_sicd050_bad_xml runtime (mean/min/max)ms: 560.315/560.315/560.315\n", + "test_read_sicd050_bad_xml runtime (mean/min/max)ms: 26.895/26.895/26.895\n", "test_read_sicd050_bad_xml: PASSED\n", - "test_read_sicd100_bad_xml runtime (mean/min/max)ms: 548.833/548.833/548.833\n", + "test_read_sicd100_bad_xml runtime (mean/min/max)ms: 32.2583/32.2583/32.2583\n", "test_read_sicd100_bad_xml: PASSED\n", - "test_read_sicd101_bad_xml runtime (mean/min/max)ms: 557.161/557.161/557.161\n", + "test_read_sicd101_bad_xml runtime (mean/min/max)ms: 27.1155/27.1155/27.1155\n", "test_read_sicd101_bad_xml: PASSED\n", - "test_read_sicd110_bad_xml runtime (mean/min/max)ms: 82.751/82.751/82.751\n", + "test_read_sicd110_bad_xml runtime (mean/min/max)ms: 9.04346/9.04346/9.04346\n", "test_read_sicd110_bad_xml: PASSED\n", - "test_read_sicd120_bad_xml runtime (mean/min/max)ms: 558.453/558.453/558.453\n", + "test_read_sicd120_bad_xml runtime (mean/min/max)ms: 29.3579/29.3579/29.3579\n", "test_read_sicd120_bad_xml: PASSED\n", - "test_read_sicd121_bad_xml runtime (mean/min/max)ms: 563.864/563.864/563.864\n", + "test_read_sicd121_bad_xml runtime (mean/min/max)ms: 29.2188/29.2188/29.2188\n", "test_read_sicd121_bad_xml: PASSED\n", "\n", - "real\t0m6.206s\n", - "user\t0m1.891s\n", - "sys\t0m3.531s\n" + "real\t0m1.020s\n", + "user\t0m0.234s\n", + "sys\t0m0.063s\n" ] } ], @@ -123,18 +123,18 @@ "test_read_sidd200_xml: PASSED\n", "test_read_sidd300_xml: PASSED\n", "test_read_sidd300_v13_xml: PASSED\n", - "test_read_sidd100_bad_xml runtime (mean/min/max)ms: 47486.9/47486.9/47486.9\n", + "test_read_sidd100_bad_xml runtime (mean/min/max)ms: 221.518/221.518/221.518\n", "test_read_sidd100_bad_xml: PASSED\n", - "test_read_sidd200_bad_xml runtime (mean/min/max)ms: 57919.8/57919.8/57919.8\n", + "test_read_sidd200_bad_xml runtime (mean/min/max)ms: 315.436/315.436/315.436\n", "test_read_sidd200_bad_xml: PASSED\n", - "test_read_sidd300_bad_xml runtime (mean/min/max)ms: 48687.1/48687.1/48687.1\n", + "test_read_sidd300_bad_xml runtime (mean/min/max)ms: 314.558/314.558/314.558\n", "test_read_sidd300_bad_xml: PASSED\n", - "test_read_sidd300_v13_bad_xml runtime (mean/min/max)ms: 60032.3/60032.3/60032.3\n", + "test_read_sidd300_v13_bad_xml runtime (mean/min/max)ms: 318.429/318.429/318.429\n", "test_read_sidd300_v13_bad_xml: PASSED\n", "\n", - "real\t3m40.701s\n", - "user\t2m41.547s\n", - "sys\t0m58.047s\n" + "real\t0m6.201s\n", + "user\t0m1.016s\n", + "sys\t0m4.547s\n" ] } ], @@ -156,26 +156,26 @@ "test_createFakeComplexData: PASSED\n", "test_read_sicd110_xml: PASSED\n", "test_read_sicd130_xml: PASSED\n", - "test_read_sicd040_bad_xml: exception size (bytes): 7007569\n", + "test_read_sicd040_bad_xml: exception size (bytes): 1429\n", "test_read_sicd040_bad_xml: PASSED\n", - "test_read_sicd041_bad_xml: exception size (bytes): 539015\n", + "test_read_sicd041_bad_xml: exception size (bytes): 1427\n", "test_read_sicd041_bad_xml: PASSED\n", - "test_read_sicd050_bad_xml: exception size (bytes): 4602157\n", + "test_read_sicd050_bad_xml: exception size (bytes): 1447\n", "test_read_sicd050_bad_xml: PASSED\n", - "test_read_sicd100_bad_xml: exception size (bytes): 4605991\n", + "test_read_sicd100_bad_xml: exception size (bytes): 1447\n", "test_read_sicd100_bad_xml: PASSED\n", - "test_read_sicd101_bad_xml: exception size (bytes): 4605991\n", + "test_read_sicd101_bad_xml: exception size (bytes): 1447\n", "test_read_sicd101_bad_xml: PASSED\n", - "test_read_sicd110_bad_xml: exception size (bytes): 326903\n", + "test_read_sicd110_bad_xml: exception size (bytes): 1445\n", "test_read_sicd110_bad_xml: PASSED\n", - "test_read_sicd120_bad_xml: exception size (bytes): 4605991\n", + "test_read_sicd120_bad_xml: exception size (bytes): 1447\n", "test_read_sicd120_bad_xml: PASSED\n", - "test_read_sicd121_bad_xml: exception size (bytes): 4768459\n", + "test_read_sicd121_bad_xml: exception size (bytes): 1447\n", "test_read_sicd121_bad_xml: PASSED\n", "\n", - "real\t0m4.726s\n", - "user\t0m1.703s\n", - "sys\t0m2.313s\n" + "real\t0m1.004s\n", + "user\t0m0.219s\n", + "sys\t0m0.063s\n" ] } ], @@ -201,18 +201,18 @@ "test_read_sidd200_xml: PASSED\n", "test_read_sidd300_xml: PASSED\n", "test_read_sidd300_v13_xml: PASSED\n", - "test_read_sidd100_bad_xml: exception size (bytes): 2030033\n", + "test_read_sidd100_bad_xml: exception size (bytes): 1197\n", "test_read_sidd100_bad_xml: PASSED\n", - "test_read_sidd200_bad_xml: exception size (bytes): 2370809\n", + "test_read_sidd200_bad_xml: exception size (bytes): 1265\n", "test_read_sidd200_bad_xml: PASSED\n", - "test_read_sidd300_bad_xml: exception size (bytes): 2121837\n", + "test_read_sidd300_bad_xml: exception size (bytes): 1291\n", "test_read_sidd300_bad_xml: PASSED\n", - "test_read_sidd300_v13_bad_xml: exception size (bytes): 2367559\n", + "test_read_sidd300_v13_bad_xml: exception size (bytes): 1283\n", "test_read_sidd300_v13_bad_xml: PASSED\n", "\n", - "real\t3m25.250s\n", - "user\t2m29.891s\n", - "sys\t0m54.422s\n" + "real\t0m6.068s\n", + "user\t0m0.953s\n", + "sys\t0m4.500s\n" ] } ], From 939133614af2dc9c0af062fd59d0ace06721be9a Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 13:25:52 -0400 Subject: [PATCH 43/50] clang-format --- .../six.sicd/unittests/test_valid_sixsicd.cpp | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp index 078a5e2c1..9c1c531b1 100644 --- a/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp +++ b/six/modules/c++/six.sicd/unittests/test_valid_sixsicd.cpp @@ -146,13 +146,19 @@ TEST_CASE(test_read_sicd130_xml) test_read_sicd_xml(testName, "sicd130.xml"); } -// Set SIX_PROFILE_PARSING=N when running the test to profile the tests by re-running N-times -#define PROFILE(X) six::testing::EnvProfiler("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); +// Set SIX_PROFILE_PARSING=N when running the test to profile the tests by +// re-running N-times +#define PROFILE(X) \ + six::testing::EnvProfiler("SIX_PROFILE_PARSING", testName, std::cerr)( \ + [&]() { X; }); // Set SIX_PROFILE_STACKSIZE=1 when running to log the size of the stacktrace -#define SSPROFILE(X, Y) TEST_SPECIFIC_EXCEPTION( \ - six::testing::StackTraceSizeEnvProfiler( \ - "SIX_PROFILE_STACKSIZE", testName, std::cerr)([&](){X;}), Y) +#define SSPROFILE(X, Y) \ + TEST_SPECIFIC_EXCEPTION(six::testing::StackTraceSizeEnvProfiler( \ + "SIX_PROFILE_STACKSIZE", \ + testName, \ + std::cerr)([&]() { X; }), \ + Y) #define TEST_BAD_XML(X) PROFILE(SSPROFILE(X, six::DESValidationException)); @@ -196,16 +202,14 @@ TEST_CASE(test_read_sicd121_bad_xml) TEST_BAD_XML(test_read_sicd_xml(testName, "sicd121-bad.xml")); } -TEST_MAIN( - TEST_CHECK(test_createFakeComplexData); - TEST_CHECK(test_read_sicd110_xml); - TEST_CHECK(test_read_sicd130_xml); - TEST_CHECK(test_read_sicd040_bad_xml); - TEST_CHECK(test_read_sicd041_bad_xml); - TEST_CHECK(test_read_sicd050_bad_xml); - TEST_CHECK(test_read_sicd100_bad_xml); - TEST_CHECK(test_read_sicd101_bad_xml); - TEST_CHECK(test_read_sicd110_bad_xml); - TEST_CHECK(test_read_sicd120_bad_xml); - TEST_CHECK(test_read_sicd121_bad_xml); - ) +TEST_MAIN(TEST_CHECK(test_createFakeComplexData); + TEST_CHECK(test_read_sicd110_xml); + TEST_CHECK(test_read_sicd130_xml); + TEST_CHECK(test_read_sicd040_bad_xml); + TEST_CHECK(test_read_sicd041_bad_xml); + TEST_CHECK(test_read_sicd050_bad_xml); + TEST_CHECK(test_read_sicd100_bad_xml); + TEST_CHECK(test_read_sicd101_bad_xml); + TEST_CHECK(test_read_sicd110_bad_xml); + TEST_CHECK(test_read_sicd120_bad_xml); + TEST_CHECK(test_read_sicd121_bad_xml);) From 9f5579dbe9f1a5068a8c10821fe06c202602d4ae Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 13:25:52 -0400 Subject: [PATCH 44/50] clang-format --- .../six.sidd/unittests/test_valid_sixsidd.cpp | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp index f84ebdb3c..434fbaeae 100644 --- a/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp +++ b/six/modules/c++/six.sidd/unittests/test_valid_sixsidd.cpp @@ -198,17 +198,22 @@ TEST_CASE(test_read_sidd300_v13_xml) test_read_sidd_xml(testName, "sidd300_ISM-v13.xml"); } -// Set SIX_PROFILE_PARSING=N when running the test to profile the tests by re-running N-times -#define PROFILE(X) six::testing::EnvProfiler("SIX_PROFILE_PARSING", testName, std::cerr)([&](){X;}); +// Set SIX_PROFILE_PARSING=N when running the test to profile the tests by +// re-running N-times +#define PROFILE(X) \ + six::testing::EnvProfiler("SIX_PROFILE_PARSING", testName, std::cerr)( \ + [&]() { X; }); // Set SIX_PROFILE_STACKSIZE=1 when running to log the size of the stacktrace -#define SSPROFILE(X, Y) TEST_SPECIFIC_EXCEPTION( \ - six::testing::StackTraceSizeEnvProfiler( \ - "SIX_PROFILE_STACKSIZE", testName, std::cerr)([&](){X;}), Y) +#define SSPROFILE(X, Y) \ + TEST_SPECIFIC_EXCEPTION(six::testing::StackTraceSizeEnvProfiler( \ + "SIX_PROFILE_STACKSIZE", \ + testName, \ + std::cerr)([&]() { X; }), \ + Y) #define TEST_BAD_XML(X) PROFILE(SSPROFILE(X, six::DESValidationException)); - TEST_CASE(test_read_sidd100_bad_xml) { const auto schemaPaths = getSchemaPaths(); @@ -230,18 +235,18 @@ TEST_CASE(test_read_sidd300_bad_xml) TEST_CASE(test_read_sidd300_v13_bad_xml) { const auto schemaPaths = getSchemaPaths(); - TEST_BAD_XML(test_read_sidd_xml(testName, "sidd300_ISM-v13-bad.xml", &schemaPaths)); -} - -TEST_MAIN( - TEST_CHECK(test_createFakeDerivedData); - TEST_CHECK(test_createFakeDerivedData_validate); - TEST_CHECK(test_read_sidd200_no_LUT); - TEST_CHECK(test_read_sidd200_xml); - TEST_CHECK(test_read_sidd300_xml); - TEST_CHECK(test_read_sidd300_v13_xml); - TEST_CHECK(test_read_sidd100_bad_xml); - TEST_CHECK(test_read_sidd200_bad_xml); - TEST_CHECK(test_read_sidd300_bad_xml); - TEST_CHECK(test_read_sidd300_v13_bad_xml); - ) + TEST_BAD_XML(test_read_sidd_xml(testName, + "sidd300_ISM-v13-bad.xml", + &schemaPaths)); +} + +TEST_MAIN(TEST_CHECK(test_createFakeDerivedData); + TEST_CHECK(test_createFakeDerivedData_validate); + TEST_CHECK(test_read_sidd200_no_LUT); + TEST_CHECK(test_read_sidd200_xml); + TEST_CHECK(test_read_sidd300_xml); + TEST_CHECK(test_read_sidd300_v13_xml); + TEST_CHECK(test_read_sidd100_bad_xml); + TEST_CHECK(test_read_sidd200_bad_xml); + TEST_CHECK(test_read_sidd300_bad_xml); + TEST_CHECK(test_read_sidd300_v13_bad_xml);) From 32c39122164b62016481753ec43304ef98e0de30 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 13:25:52 -0400 Subject: [PATCH 45/50] clang-format --- six/modules/c++/six/include/six/Utilities.h | 41 ++++++++++++--------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/six/modules/c++/six/include/six/Utilities.h b/six/modules/c++/six/include/six/Utilities.h index c54841334..1453bac61 100644 --- a/six/modules/c++/six/include/six/Utilities.h +++ b/six/modules/c++/six/include/six/Utilities.h @@ -389,17 +389,13 @@ namespace testing struct SIX_SIX_API BaseEnvProfiler { BaseEnvProfiler(const char* envVar, - const std::string& testName, - std::ostream &stream) - : mEnvVar(envVar), - mTestName(testName), - mStream(stream) + const std::string& testName, + std::ostream& stream) : + mEnvVar(envVar), mTestName(testName), mStream(stream) { sys::OS os; mEnabled = os.isEnvSet(mEnvVar); - mNumIters = mEnabled - ? str::toType(os.getEnv(mEnvVar)) - : 1; + mNumIters = mEnabled ? str::toType(os.getEnv(mEnvVar)) : 1; } ~BaseEnvProfiler() = default; @@ -427,9 +423,11 @@ namespace testing struct SIX_SIX_API EnvProfiler : BaseEnvProfiler { EnvProfiler(const char* envVar, - const std::string& testName, - std::ostream &stream) : BaseEnvProfiler(envVar, testName, stream) - {} + const std::string& testName, + std::ostream& stream) : + BaseEnvProfiler(envVar, testName, stream) + { + } ~EnvProfiler() = default; template @@ -453,20 +451,25 @@ namespace testing } mean /= mNumIters; - mStream << mTestName << " runtime (mean/min/max)ms: " - << mean << "/" << mn << "/" << mx << std::endl; + mStream << mTestName << " runtime (mean/min/max)ms: " << mean << "/" + << mn << "/" << mx << std::endl; } }; /// @brief Toggle profiling of exception sizes based on env var /// @tparam TExcept template - struct SIX_SIX_API StackTraceSizeEnvProfiler : BaseEnvProfiler> + struct SIX_SIX_API StackTraceSizeEnvProfiler + : BaseEnvProfiler> { StackTraceSizeEnvProfiler(const char* envVar, - const std::string& testName, - std::ostream &stream) : BaseEnvProfiler>(envVar, testName, stream) - {} + const std::string& testName, + std::ostream& stream) : + BaseEnvProfiler>(envVar, + testName, + stream) + { + } ~StackTraceSizeEnvProfiler() = default; template @@ -479,7 +482,9 @@ namespace testing catch (const TExcept& ex) { // log size of the exception message - this->mStream << this->mTestName << ": exception size (bytes): " << strlen(ex.what()) << std::endl; + this->mStream << this->mTestName + << ": exception size (bytes): " << strlen(ex.what()) + << std::endl; throw; } From 4c46f5432a9b99b9ddd543e6233a916a07c97824 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 13:25:53 -0400 Subject: [PATCH 46/50] clang-format --- six/modules/c++/six/source/XMLControl.cpp | 61 +++++++++++++++-------- 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 6a088d071..e7137ffba 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -181,13 +181,16 @@ static void log_any_errors_and_throw(const std::vector& foundSchemas, logging::Logger& log) +static void validate_( + const xml::lite::Element& rootElement, + const std::string& spec, + const std::string& version, + const std::vector& foundSchemas, + logging::Logger& log) { if (foundSchemas.size() < 1) { - return; // can't validate without a schema + return; // can't validate without a schema } xml::lite::Uri uri; @@ -199,20 +202,27 @@ static void validate_(const xml::lite::Element& rootElement, const auto strPrettyXml = xmlStream.stream().str(); // deduplicate the schema list - auto comp = [](const coda_oss::filesystem::path& x, const coda_oss::filesystem::path& y) { + auto comp = [](const coda_oss::filesystem::path& x, + const coda_oss::filesystem::path& y) { return x.string() < y.string(); }; - std::set uniq(foundSchemas.begin(), foundSchemas.end(), comp); - std::vector uniq_schemas(uniq.begin(), uniq.end()); - - // Remove schema paths whose filename component do not match the spec or version - auto spec_version_filter = [spec, version](const coda_oss::filesystem::path& x) { + std::set uniq( + foundSchemas.begin(), foundSchemas.end(), comp); + std::vector uniq_schemas(uniq.begin(), + uniq.end()); + + // Remove schema paths whose filename component do not match the spec or + // version + auto spec_version_filter = [spec, + version](const coda_oss::filesystem::path& x) { auto x2 = x.filename().string(); return x2.find(spec) == std::string::npos || - x2.find(version) == std::string::npos; + x2.find(version) == std::string::npos; }; typename decltype(uniq_schemas)::iterator inapplicable_schemas = - std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), spec_version_filter); + std::remove_if(uniq_schemas.begin(), + uniq_schemas.end(), + spec_version_filter); uniq_schemas.erase(inapplicable_schemas, uniq_schemas.end()); @@ -223,16 +233,25 @@ static void validate_(const xml::lite::Element& rootElement, decltype(strPrettyXml) needle8(str::u8FromNative(needle)); typename decltype(uniq_schemas)::iterator hitlist; - auto has_needle = [needle](coda_oss::filesystem::path &x) { + auto has_needle = [needle](coda_oss::filesystem::path& x) { return x.string().find(needle) != std::string::npos; }; - if (strPrettyXml.find(needle8) != std::string::npos) { + if (strPrettyXml.find(needle8) != std::string::npos) + { // Doc is 201609, remove competing schemas - auto not_has_needle = std::not1(std::function(has_needle)); - hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), not_has_needle); - } else { + auto not_has_needle = std::not1( + std::function( + has_needle)); + hitlist = std::remove_if(uniq_schemas.begin(), + uniq_schemas.end(), + not_has_needle); + } + else + { // Doc is *not* 201609, remove any refs to 201609 - hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), has_needle); + hitlist = std::remove_if(uniq_schemas.begin(), + uniq_schemas.end(), + has_needle); } uniq_schemas.erase(hitlist, uniq_schemas.end()); @@ -245,7 +264,7 @@ static void validate_(const xml::lite::Element& rootElement, validator.validate(strPrettyXml, uri.value, errors); // Looks like we validated; be sure there aren't any errors - if (! errors.empty()) + if (!errors.empty()) { log_any_errors_and_throw(errors, uniq_schemas, log); } @@ -278,7 +297,8 @@ void XMLControl::validate(const xml::lite::Document* doc, assert(log != nullptr); // validate against any specified schemas - const auto foundSchemas = findValidSchemaPaths(schemaPaths, log); // If the paths we have don't exist, throw + const auto foundSchemas = findValidSchemaPaths( + schemaPaths, log); // If the paths we have don't exist, throw // guarantees conditional below will succeed std::string version = getVersionFromURI(doc); @@ -287,6 +307,7 @@ void XMLControl::validate(const xml::lite::Document* doc, validate_(*doc, spec, version, foundSchemas, *log); } + void XMLControl::validate(const xml::lite::Document& doc, const std::vector* pSchemaPaths, logging::Logger* log) From f6b8d77a068e9c077746a217380d5fa5ef936aa5 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 14:58:28 -0400 Subject: [PATCH 47/50] log schemas used for validation --- six/modules/c++/six/source/XMLControl.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index e7137ffba..0f189a6ef 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -257,6 +257,9 @@ static void validate_( uniq_schemas.erase(hitlist, uniq_schemas.end()); } + log.info(Ctxt(FmtX("Document matches schema(s): {%s}", + str::join(uniq_schemas, ",")))); + const xml::lite::ValidatorXerces validator(uniq_schemas, &log); // validate against any specified schemas From 2aa5950a8241e82685ebdcb2fc6bad42a3f20574 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Thu, 3 Oct 2024 16:48:22 -0400 Subject: [PATCH 48/50] const lambda arg --- six/modules/c++/six/source/XMLControl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/six/modules/c++/six/source/XMLControl.cpp b/six/modules/c++/six/source/XMLControl.cpp index 0f189a6ef..82b345bad 100644 --- a/six/modules/c++/six/source/XMLControl.cpp +++ b/six/modules/c++/six/source/XMLControl.cpp @@ -233,14 +233,14 @@ static void validate_( decltype(strPrettyXml) needle8(str::u8FromNative(needle)); typename decltype(uniq_schemas)::iterator hitlist; - auto has_needle = [needle](coda_oss::filesystem::path& x) { + auto has_needle = [needle](const coda_oss::filesystem::path& x) { return x.string().find(needle) != std::string::npos; }; if (strPrettyXml.find(needle8) != std::string::npos) { // Doc is 201609, remove competing schemas auto not_has_needle = std::not1( - std::function( + std::function( has_needle)); hitlist = std::remove_if(uniq_schemas.begin(), uniq_schemas.end(), From 43325941c51a2ef349868b05e8d2608fdbe92160 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Fri, 4 Oct 2024 10:15:45 -0400 Subject: [PATCH 49/50] nitf/HandleManager.hpp:122 valgrind suppression --- scripts/six/nitf-HandleManager.supp | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 scripts/six/nitf-HandleManager.supp diff --git a/scripts/six/nitf-HandleManager.supp b/scripts/six/nitf-HandleManager.supp new file mode 100644 index 000000000..56de5e615 --- /dev/null +++ b/scripts/six/nitf-HandleManager.supp @@ -0,0 +1,7 @@ +{ + nitf::HandleManager_known_leak: suppress documented memory leak in nitf/HandlerManager.hpp:122 + Memcheck:Leak + match-leak-kinds: reachable + fun:_Znwm + fun:make_unique +} From d171e8caa228a2fbeb759adaddeb8ca0a30c2dd5 Mon Sep 17 00:00:00 2001 From: abeaucha Date: Fri, 4 Oct 2024 10:20:06 -0400 Subject: [PATCH 50/50] add valgrind of modified tests --- scripts/six/six-bad_xml-profiling.ipynb | 92 ++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 2 deletions(-) diff --git a/scripts/six/six-bad_xml-profiling.ipynb b/scripts/six/six-bad_xml-profiling.ipynb index d81a286e5..97cf110fa 100644 --- a/scripts/six/six-bad_xml-profiling.ipynb +++ b/scripts/six/six-bad_xml-profiling.ipynb @@ -225,8 +225,96 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "==11288== Memcheck, a memory error detector\n", + "==11288== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.\n", + "==11288== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info\n", + "==11288== Command: ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd\n", + "==11288== \n", + "==11288== error calling PR_SET_PTRACER, vgdb might block\n", + "test_createFakeDerivedData: PASSED\n", + "test_createFakeDerivedData_validate: PASSED\n", + "Warning: Unable to find plugin path.\n", + "Specify plugin location by setting environment variable NITF_PLUGIN_PATH, or by building the library from source\n", + "test_read_sidd200_no_LUT: PASSED\n", + "test_read_sidd200_xml: PASSED\n", + "test_read_sidd300_xml: PASSED\n", + "test_read_sidd300_v13_xml: PASSED\n", + "test_read_sidd100_bad_xml: PASSED\n", + "test_read_sidd200_bad_xml: PASSED\n", + "test_read_sidd300_bad_xml: PASSED\n", + "test_read_sidd300_v13_bad_xml: PASSED\n", + "==11288== \n", + "==11288== HEAP SUMMARY:\n", + "==11288== in use at exit: 96 bytes in 1 blocks\n", + "==11288== total heap usage: 4,177,144 allocs, 4,177,143 frees, 1,199,185,878 bytes allocated\n", + "==11288== \n", + "==11288== LEAK SUMMARY:\n", + "==11288== definitely lost: 0 bytes in 0 blocks\n", + "==11288== indirectly lost: 0 bytes in 0 blocks\n", + "==11288== possibly lost: 0 bytes in 0 blocks\n", + "==11288== still reachable: 0 bytes in 0 blocks\n", + "==11288== suppressed: 96 bytes in 1 blocks\n", + "==11288== \n", + "==11288== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)\n", + "--11288-- \n", + "--11288-- used_suppression: 1 nitf::HandleManager_known_leak: suppress documented memory leak in nitf/HandlerManager.hpp:122 scripts/six/nitf-HandleManager.supp:2 suppressed: 96 bytes in 1 blocks\n", + "==11288== \n", + "==11288== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)\n" + ] + } + ], + "source": [ + "%%bash\n", + "valgrind --leak-check=full --show-leak-kinds=all -s --suppressions=scripts/six/nitf-HandleManager.supp ./target/six/modules/c++/six.sidd/unittests/test_valid_sixsidd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "==24586== Memcheck, a memory error detector\n", + "==24586== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.\n", + "==24586== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info\n", + "==24586== Command: ./target/six/modules/c++/six.sicd/unittests/test_valid_sixsicd\n", + "==24586== \n", + "==24586== error calling PR_SET_PTRACER, vgdb might block\n", + "test_createFakeComplexData: PASSED\n", + "test_read_sicd110_xml: PASSED\n", + "test_read_sicd130_xml: PASSED\n", + "test_read_sicd040_bad_xml: PASSED\n", + "test_read_sicd041_bad_xml: PASSED\n", + "test_read_sicd050_bad_xml: PASSED\n", + "test_read_sicd100_bad_xml: PASSED\n", + "test_read_sicd101_bad_xml: PASSED\n", + "test_read_sicd110_bad_xml: PASSED\n", + "test_read_sicd120_bad_xml: PASSED\n", + "test_read_sicd121_bad_xml: PASSED\n", + "==24586== \n", + "==24586== HEAP SUMMARY:\n", + "==24586== in use at exit: 0 bytes in 0 blocks\n", + "==24586== total heap usage: 1,171,786 allocs, 1,171,786 frees, 113,915,154 bytes allocated\n", + "==24586== \n", + "==24586== All heap blocks were freed -- no leaks are possible\n", + "==24586== \n", + "==24586== For lists of detected and suppressed errors, rerun with: -s\n", + "==24586== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)\n" + ] + } + ], + "source": [ + "%%bash\n", + "valgrind --leak-check=full --show-leak-kinds=all ./target/six/modules/c++/six.sicd/unittests/test_valid_sixsicd" + ] } ], "metadata": {