public void Test5210_part_7_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform i = mtf.CreateFromWkt(@"PARAM_MT[""vertical_offset"",PARAMETER[""vertical_offset"",28]]");

            ExecuteTests(i);
        }
        public void Test5203_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",4],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",0],PARAMETER[""elt_3_0"",0],PARAMETER[""elt_3_1"",0],PARAMETER[""elt_3_2"",1]],PARAM_MT[""Ellipsoid_To_Geocentric"",PARAMETER[""semi_major"",6377563.396],PARAMETER[""semi_minor"",6356256.909237285]],PARAM_MT[""Affine"",PARAMETER[""num_row"",4],PARAMETER[""num_col"",4],PARAMETER[""elt_0_0"",0.999979511],PARAMETER[""elt_0_1"",-4.082047556156235e-006],PARAMETER[""elt_0_2"",1.197465256972197e-006],PARAMETER[""elt_0_3"",446.448],PARAMETER[""elt_1_0"",4.082047556156235e-006],PARAMETER[""elt_1_1"",0.999979511],PARAMETER[""elt_1_2"",-7.272056216430349e-007],PARAMETER[""elt_1_3"",-125.157],PARAMETER[""elt_2_0"",-1.197465256972197e-006],PARAMETER[""elt_2_1"",7.272056216430349e-007],PARAMETER[""elt_2_2"",0.999979511],PARAMETER[""elt_2_3"",542.06],PARAMETER[""elt_3_0"",0],PARAMETER[""elt_3_1"",0],PARAMETER[""elt_3_2"",0],PARAMETER[""elt_3_3"",1]],PARAM_MT[""Geocentric_To_Ellipsoid"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314245179]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",4],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_0_3"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_1_3"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",0],PARAMETER[""elt_2_3"",1]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",4],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",0],PARAMETER[""elt_3_0"",0],PARAMETER[""elt_3_1"",0],PARAMETER[""elt_3_2"",1]],PARAM_MT[""Ellipsoid_To_Geocentric"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314245179]],PARAM_MT[""Affine"",PARAMETER[""num_row"",4],PARAMETER[""num_col"",4],PARAMETER[""elt_0_0"",1.00002048940171],PARAMETER[""elt_0_1"",4.082215706223008e-006],PARAMETER[""elt_0_2"",-1.197511359518915e-006],PARAMETER[""elt_0_3"",-446.4559874115357],PARAMETER[""elt_1_0"",-4.082213964509019e-006],PARAMETER[""elt_1_1"",1.000020489402615],PARAMETER[""elt_1_2"",7.272403103879139e-007],PARAMETER[""elt_1_3"",125.1609926805404],PARAMETER[""elt_2_0"",1.19751729685972e-006],PARAMETER[""elt_2_1"",-7.27230533566723e-007],PARAMETER[""elt_2_2"",1.000020489417845],PARAMETER[""elt_2_3"",-542.0717321410309],PARAMETER[""elt_3_0"",0],PARAMETER[""elt_3_1"",0],PARAMETER[""elt_3_2"",0],PARAMETER[""elt_3_3"",1]],PARAM_MT[""Geocentric_To_Ellipsoid"",PARAMETER[""semi_major"",6377563.396],PARAMETER[""semi_minor"",6356256.909237285]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",4],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_0_3"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_1_3"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",0],PARAMETER[""elt_2_3"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5208_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],INVERSE_MT[PARAM_MT[""longitude_rotation"",PARAMETER[""dim"",2],PARAMETER[""rotation"",2.337229169999998]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",1.111111111111112],PARAMETER[""elt_0_1"",0],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",0],PARAMETER[""elt_1_1"",1.111111111111112],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1.111111111111112]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0.8999999999999991],PARAMETER[""elt_0_1"",0],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",0],PARAMETER[""elt_1_1"",0.8999999999999991],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",0.8999999999999991]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""longitude_rotation"",PARAMETER[""dim"",2],PARAMETER[""rotation"",2.337229169999998]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5210_part_3_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""vertical_offset"",PARAMETER[""vertical_offset"",28]]],PARAM_MT[""Affine"", PARAMETER[""num_row"",2], PARAMETER[""num_col"", 2],PARAMETER[""elt_0_0"", -1],PARAMETER[""elt_0_1"", -0],PARAMETER[""elt_1_0"", -0],PARAMETER[""elt_1_1"", -1]]]");

            ExecuteTests(d);
        }
        public void Test5210_part_4_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform t = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"", PARAMETER[""num_row"",2], PARAMETER[""num_col"", 2],PARAMETER[""elt_0_0"", -1],PARAMETER[""elt_0_1"", -0],PARAMETER[""elt_1_0"", -0],PARAMETER[""elt_1_1"", -1]]]");

            ExecuteTests(t);
        }
        public void Test5207_part_2_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""NTv2"",PARAMETER[""Latitude_and_longitude_difference_file"",""NTv2_0.gsb""]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],INVERSE_MT[PARAM_MT[""NTv2"",PARAMETER[""Latitude_and_longitude_difference_file"",""NTv2_0.gsb""]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5209_part_1_Wkt()
        {
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"PARAM_MT[""p6"",PARAMETER[""bin_grid_origin_i"",1],PARAMETER[""bin_grid_origin_j"",10000],PARAMETER[""bin_grid_origin_easting"",414188.46],PARAMETER[""bin_grid_origin_northing"",5761775.889],PARAMETER[""scale_factor"",1],PARAMETER[""bin_width_of_i_axis"",25],PARAMETER[""bin_width_of_j_axis"",12.5],PARAMETER[""map_grid_bearing_of_bin_grid_j_axis"",20],PARAMETER[""bin_node_increment_on_i_axis"",2],PARAMETER[""bin_node_increment_on_j_axis"",2]]");
            IMathTransform i = mtf.CreateFromWkt(@"INVERSE_MT[PARAM_MT[""p6"",PARAMETER[""bin_grid_origin_i"",1],PARAMETER[""bin_grid_origin_j"",10000],PARAMETER[""bin_grid_origin_easting"",414188.46],PARAMETER[""bin_grid_origin_northing"",5761775.889],PARAMETER[""scale_factor"",1],PARAMETER[""bin_width_of_i_axis"",25],PARAMETER[""bin_width_of_j_axis"",12.5],PARAMETER[""map_grid_bearing_of_bin_grid_j_axis"",20],PARAMETER[""bin_node_increment_on_i_axis"",2],PARAMETER[""bin_node_increment_on_j_axis"",2]]]");

            ExecuteTests(d, i);
        }
        public void Test5204_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"", PARAMETER[""num_row"",3], PARAMETER[""num_col"", 3],PARAMETER[""elt_0_0"", 0],PARAMETER[""elt_0_1"", 1],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_1_0"", 1],PARAMETER[""elt_1_1"", 0],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 1]],PARAM_MT[""Affine"", PARAMETER[""num_row"",4], PARAMETER[""num_col"", 3],PARAMETER[""elt_0_0"", 1],PARAMETER[""elt_0_1"", 0],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_1_0"", 0],PARAMETER[""elt_1_1"", 1],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 0],PARAMETER[""elt_3_0"", 0],PARAMETER[""elt_3_1"", 0],PARAMETER[""elt_3_2"", 1]],PARAM_MT[""Ellipsoid_To_Geocentric"", PARAMETER[""semi_major"",6378388], PARAMETER[""semi_minor"", 6356911.946127947]],PARAM_MT[""Affine"", PARAMETER[""num_row"",4], PARAMETER[""num_col"", 4],PARAMETER[""elt_0_0"", 0.9999987253],PARAMETER[""elt_0_1"", -8.93122624875125e-006],PARAMETER[""elt_0_2"", -2.215595698447141e-006],PARAMETER[""elt_0_3"", -106.8686],PARAMETER[""elt_1_0"", 8.93122624875125e-006],PARAMETER[""elt_1_1"", 0.9999987253],PARAMETER[""elt_1_2"", -1.631880770453627e-006],PARAMETER[""elt_1_3"", 52.2978],PARAMETER[""elt_2_0"", 2.215595698447141e-006],PARAMETER[""elt_2_1"", 1.631880770453627e-006],PARAMETER[""elt_2_2"", 0.9999987253],PARAMETER[""elt_2_3"", -103.7239],PARAMETER[""elt_3_0"", 0],PARAMETER[""elt_3_1"", 0],PARAMETER[""elt_3_2"", 0],PARAMETER[""elt_3_3"", 1]],PARAM_MT[""Geocentric_To_Ellipsoid"", PARAMETER[""semi_major"",6378137], PARAMETER[""semi_minor"", 6356752.314245179]],PARAM_MT[""Affine"", PARAMETER[""num_row"",3], PARAMETER[""num_col"", 4],PARAMETER[""elt_0_0"", 1],PARAMETER[""elt_0_1"", 0],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_0_3"", 0],PARAMETER[""elt_1_0"", 0],PARAMETER[""elt_1_1"", 1],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_1_3"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 0],PARAMETER[""elt_2_3"", 1]],PARAM_MT[""Affine"", PARAMETER[""num_row"",3], PARAMETER[""num_col"", 3],PARAMETER[""elt_0_0"", 0],PARAMETER[""elt_0_1"", 1],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_1_0"", 1],PARAMETER[""elt_1_1"", 0],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 1]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"", PARAMETER[""num_row"",3], PARAMETER[""num_col"", 3],PARAMETER[""elt_0_0"", 0],PARAMETER[""elt_0_1"", 1],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_1_0"", 1],PARAMETER[""elt_1_1"", 0],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 1]],PARAM_MT[""Affine"", PARAMETER[""num_row"",4], PARAMETER[""num_col"", 3],PARAMETER[""elt_0_0"", 1],PARAMETER[""elt_0_1"", 0],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_1_0"", 0],PARAMETER[""elt_1_1"", 1],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 0],PARAMETER[""elt_3_0"", 0],PARAMETER[""elt_3_1"", 0],PARAMETER[""elt_3_2"", 1]],PARAM_MT[""Ellipsoid_To_Geocentric"", PARAMETER[""semi_major"",6378137], PARAMETER[""semi_minor"", 6356752.314245179]],PARAM_MT[""Affine"", PARAMETER[""num_row"",4], PARAMETER[""num_col"", 4],PARAMETER[""elt_0_0"", 1.000001274616949],PARAMETER[""elt_0_1"", 8.931245401681099e-006],PARAMETER[""elt_0_2"", 2.215615921456212e-006],PARAMETER[""elt_0_3"", 106.8684989443674],PARAMETER[""elt_1_0"", -8.931252632884781e-006],PARAMETER[""elt_1_1"", 1.000001274619195],PARAMETER[""elt_1_2"", 1.631865142573763e-006],PARAMETER[""elt_1_3"", -52.29865186682799],PARAMETER[""elt_2_0"", -2.215586771952001e-006],PARAMETER[""elt_2_1"", -1.631904718698019e-006],PARAMETER[""elt_2_2"", 1.000001274694053],PARAMETER[""elt_2_3"", 103.7238807846086],PARAMETER[""elt_3_0"", 0],PARAMETER[""elt_3_1"", 0],PARAMETER[""elt_3_2"", 0],PARAMETER[""elt_3_3"", 1]],PARAM_MT[""Geocentric_To_Ellipsoid"", PARAMETER[""semi_major"",6378388], PARAMETER[""semi_minor"", 6356911.946127947]],PARAM_MT[""Affine"", PARAMETER[""num_row"",3], PARAMETER[""num_col"", 4],PARAMETER[""elt_0_0"", 1],PARAMETER[""elt_0_1"", 0],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_0_3"", 0],PARAMETER[""elt_1_0"", 0],PARAMETER[""elt_1_1"", 1],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_1_3"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 0],PARAMETER[""elt_2_3"", 1]],PARAM_MT[""Affine"", PARAMETER[""num_row"",3], PARAMETER[""num_col"", 3],PARAMETER[""elt_0_0"", 0],PARAMETER[""elt_0_1"", 1],PARAMETER[""elt_0_2"", 0],PARAMETER[""elt_1_0"", 1],PARAMETER[""elt_1_1"", 0],PARAMETER[""elt_1_2"", 0],PARAMETER[""elt_2_0"", 0],PARAMETER[""elt_2_1"", 0],PARAMETER[""elt_2_2"", 1]]]");

            ExecuteTests(d, i);
        }
        public void Test5207_part_2_Math_Transform_OutOfRange_2()
        {
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""NTv2"",PARAMETER[""Latitude_and_longitude_difference_file"",""NTv2_0.gsb""]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],INVERSE_MT[PARAM_MT[""NTv2"",PARAMETER[""Latitude_and_longitude_difference_file"",""NTv2_0.gsb""]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            TestDirectTransform(d, Sexa2DecimalDegrees(45, 0, 0, CardinalPoint.N), Sexa2DecimalDegrees(130, 31, 03.888, CardinalPoint.W), 0.0, 0.0, 2E-4);
        }
        public void Test5210_part_6_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform t = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""vertical_offset"",PARAMETER[""vertical_offset"",-28]]]]");

            ExecuteTests(t);
        }
        public void Test5207_part_1_OutOfRange_MathTransform_2()
        {
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""NTv2"",PARAMETER[""Latitude_and_longitude_difference_file"",""A66 National (13.09.01).gsb""]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],INVERSE_MT[PARAM_MT[""NTv2"",PARAMETER[""Latitude_and_longitude_difference_file"",""A66 National (13.09.01).gsb""]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            TestDirectTransform(d, Sexa2DecimalDegrees(10, 0, 0.000, CardinalPoint.S), Sexa2DecimalDegrees(115, 00, 00.000, CardinalPoint.E), 0.0, 0.0, 1E-6);
        }
        public void Test5106_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""hotine_oblique_mercator"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_center"",3.999999999999996],PARAMETER[""longitude_of_center"",114.9999999999999],PARAMETER[""azimuth"",53.31580993999995],PARAMETER[""rectified_grid_angle"",53.13010235999995],PARAMETER[""scale_factor"",0.99984],PARAMETER[""false_easting"",0],PARAMETER[""false_northing"",0]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""hotine_oblique_mercator"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_center"",3.999999999999996],PARAMETER[""longitude_of_center"",114.9999999999999],PARAMETER[""azimuth"",53.31580993999995],PARAMETER[""rectified_grid_angle"",53.13010235999995],PARAMETER[""scale_factor"",0.99984],PARAMETER[""false_easting"",0],PARAMETER[""false_northing"",0]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5107_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""polyconic"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_origin"",0],PARAMETER[""central_meridian"",-53.99999999999995],PARAMETER[""false_easting"",5000000],PARAMETER[""false_northing"",10000000]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""polyconic"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_origin"",0],PARAMETER[""central_meridian"",-53.99999999999995],PARAMETER[""false_easting"",5000000],PARAMETER[""false_northing"",10000000]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5110_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Lambert_Azimuthal_Equal_Area"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_center"",51.99999999999995],PARAMETER[""longitude_of_center"",9.999999999999989],PARAMETER[""false_easting"",4321000],PARAMETER[""false_northing"",3210000]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],INVERSE_MT[PARAM_MT[""Lambert_Azimuthal_Equal_Area"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_center"",51.99999999999995],PARAMETER[""longitude_of_center"",9.999999999999989],PARAMETER[""false_easting"",4321000],PARAMETER[""false_northing"",3210000]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5102_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Lambert_Conformal_Conic_1SP"",PARAMETER[""semi_major"",6378388],PARAMETER[""semi_minor"",6356911.946127947],PARAMETER[""latitude_of_origin"",46.79999999999995],PARAMETER[""central_meridian"",2.337229199999998],PARAMETER[""scale_factor"",0.99987742],PARAMETER[""false_easting"",600000],PARAMETER[""false_northing"",2200000]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""Lambert_Conformal_Conic_1SP"",PARAMETER[""semi_major"",6378388],PARAMETER[""semi_minor"",6356911.946127947],PARAMETER[""latitude_of_origin"",46.79999999999995],PARAMETER[""central_meridian"",2.337229199999998],PARAMETER[""scale_factor"",0.99987742],PARAMETER[""false_easting"",600000],PARAMETER[""false_northing"",2200000]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5103_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Lambert_Conformal_Conic_2SP"",PARAMETER[""semi_major"",6378388],PARAMETER[""semi_minor"",6356911.946127947],PARAMETER[""standard_parallel1"",51.16666722999996],PARAMETER[""standard_parallel2"",49.83333389999995],PARAMETER[""latitude_of_origin"",89.99999999999992],PARAMETER[""central_meridian"",4.367486666999995],PARAMETER[""false_easting"",150000.013],PARAMETER[""false_northing"",5400088.438]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""Lambert_Conformal_Conic_2SP"",PARAMETER[""semi_major"",6378388],PARAMETER[""semi_minor"",6356911.946127947],PARAMETER[""standard_parallel1"",51.16666722999996],PARAMETER[""standard_parallel2"",49.83333389999995],PARAMETER[""latitude_of_origin"",89.99999999999992],PARAMETER[""central_meridian"",4.367486666999995],PARAMETER[""false_easting"",150000.013],PARAMETER[""false_northing"",5400088.438]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5111_part_2_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Mercator_1SP"",PARAMETER[""semi_major"",6377397.155],PARAMETER[""semi_minor"",6356078.962823105],PARAMETER[""latitude_of_origin"",0],PARAMETER[""central_meridian"",3.192280599999997],PARAMETER[""scale_factor"",0.997],PARAMETER[""false_easting"",3900000],PARAMETER[""false_northing"",900000]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""Mercator_1SP"",PARAMETER[""semi_major"",6377397.155],PARAMETER[""semi_minor"",6356078.962823105],PARAMETER[""latitude_of_origin"",0],PARAMETER[""central_meridian"",3.192280599999997],PARAMETER[""scale_factor"",0.997],PARAMETER[""false_easting"",3900000],PARAMETER[""false_northing"",900000]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5101_part_2_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Transverse_Mercator"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314247833],PARAMETER[""latitude_of_origin"",0],PARAMETER[""central_meridian"",2.999999999999997],PARAMETER[""scale_factor"",0.9996],PARAMETER[""false_easting"",500000],PARAMETER[""false_northing"",0]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""Transverse_Mercator"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314247833],PARAMETER[""latitude_of_origin"",0],PARAMETER[""central_meridian"",2.999999999999997],PARAMETER[""scale_factor"",0.9996],PARAMETER[""false_easting"",500000],PARAMETER[""false_northing"",0]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5105_part_2_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""oblique_mercator"",PARAMETER[""semi_major"",6378160],PARAMETER[""semi_minor"",6356774.516093726],PARAMETER[""latitude_of_center"",47.14439372222217],PARAMETER[""longitude_of_center"",19.04857177777776],PARAMETER[""azimuth"",89.99999999999992],PARAMETER[""rectified_grid_angle"",89.99999999999992],PARAMETER[""scale_factor"",0.99993],PARAMETER[""false_easting"",650000],PARAMETER[""false_northing"",200000]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""oblique_mercator"",PARAMETER[""semi_major"",6378160],PARAMETER[""semi_minor"",6356774.516093726],PARAMETER[""latitude_of_center"",47.14439372222217],PARAMETER[""longitude_of_center"",19.04857177777776],PARAMETER[""azimuth"",89.99999999999992],PARAMETER[""rectified_grid_angle"",89.99999999999992],PARAMETER[""scale_factor"",0.99993],PARAMETER[""false_easting"",650000],PARAMETER[""false_northing"",200000]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5104_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Oblique_Stereographic"",PARAMETER[""semi_major"",6377397.155],PARAMETER[""semi_minor"",6356078.962823105],PARAMETER[""latitude_of_origin"",52.15616059999995],PARAMETER[""central_meridian"",5.387638899999995],PARAMETER[""scale_factor"",0.9999079],PARAMETER[""false_easting"",155000],PARAMETER[""false_northing"",463000]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""Oblique_Stereographic"",PARAMETER[""semi_major"",6377397.155],PARAMETER[""semi_minor"",6356078.962823105],PARAMETER[""latitude_of_origin"",52.15616059999995],PARAMETER[""central_meridian"",5.387638899999995],PARAMETER[""scale_factor"",0.9999079],PARAMETER[""false_easting"",155000],PARAMETER[""false_northing"",463000]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5109_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Albers_Conic_Equal_Area"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""standard_parallel1"",-17.99999999999998],PARAMETER[""standard_parallel2"",-35.99999999999996],PARAMETER[""latitude_of_center"",0],PARAMETER[""longitude_of_center"",131.9999999999999],PARAMETER[""false_easting"",0],PARAMETER[""false_northing"",0]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""Albers_Conic_Equal_Area"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""standard_parallel1"",-17.99999999999998],PARAMETER[""standard_parallel2"",-35.99999999999996],PARAMETER[""latitude_of_center"",0],PARAMETER[""longitude_of_center"",131.9999999999999],PARAMETER[""false_easting"",0],PARAMETER[""false_northing"",0]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5112_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Mercator_2SP"",PARAMETER[""semi_major"",6378245],PARAMETER[""semi_minor"",6356863.018773047],PARAMETER[""standard_parallel_1"",41.99999999999996],PARAMETER[""central_meridian"",50.99999999999995],PARAMETER[""false_easting"",0],PARAMETER[""false_northing"",0]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],INVERSE_MT[PARAM_MT[""Mercator_2SP"",PARAMETER[""semi_major"",6378245],PARAMETER[""semi_minor"",6356863.018773047],PARAMETER[""standard_parallel_1"",41.99999999999996],PARAMETER[""central_meridian"",50.99999999999995],PARAMETER[""false_easting"",0],PARAMETER[""false_northing"",0]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5108_part_1_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Cassini_Soldner"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_origin"",2.121679739999998],PARAMETER[""central_meridian"",103.4279362360999],PARAMETER[""false_easting"",-14810.56199999999],PARAMETER[""false_northing"",8758.319999999991]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[INVERSE_MT[PARAM_MT[""Cassini_Soldner"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""latitude_of_origin"",2.121679739999998],PARAMETER[""central_meridian"",103.4279362360999],PARAMETER[""false_easting"",-14810.56199999999],PARAMETER[""false_northing"",8758.319999999991]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5103_part_3_MathTransform()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""Lambert_Conformal_Conic_2SP"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""standard_parallel1"",41.78333329999996],PARAMETER[""standard_parallel2"",40.71666669999996],PARAMETER[""latitude_of_origin"",40.33333329999996],PARAMETER[""central_meridian"",-111.4999999999999],PARAMETER[""false_easting"",500000.0001016001],PARAMETER[""false_northing"",999999.9998983998]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",3.280833333333334],PARAMETER[""elt_0_1"",0],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",0],PARAMETER[""elt_1_1"",3.280833333333334],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",3.280833333333334]]]");
            IMathTransform i = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0.3048006096012192],PARAMETER[""elt_0_1"",0],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",0],PARAMETER[""elt_1_1"",0.3048006096012192],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",0.3048006096012192]],INVERSE_MT[PARAM_MT[""Lambert_Conformal_Conic_2SP"",PARAMETER[""semi_major"",6378137],PARAMETER[""semi_minor"",6356752.314145231],PARAMETER[""standard_parallel1"",41.78333329999996],PARAMETER[""standard_parallel2"",40.71666669999996],PARAMETER[""latitude_of_origin"",40.33333329999996],PARAMETER[""central_meridian"",-111.4999999999999],PARAMETER[""false_easting"",500000.0001016001],PARAMETER[""false_northing"",999999.9998983998]]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");

            ExecuteTests(d, i);
        }
        public void Test5206_part_1_OutOfRange_2()
        {
            // Este test está mal en el archivo Excel pues en el archivo de preguntas preguntan por unas coordenadas que no coinciden con las preguntas del archivo de respuestas.
            // Además, muchas de las respuestas del propio archivo Excel están mal pues las he comprobado con la página oficial http://www.ngs.noaa.gov/cgi-bin/nadcon.prl
            // y el resultado que me sale es idéntico al de esta página. Así que únicamente he programado las pruebas de Conus, aunque las de Alaska me salen perfectas
            // (si comparo con la página web)
            MathTransformFactory mtf = new MathTransformFactory();
            IMathTransform d = mtf.CreateFromWkt(@"CONCAT_MT[PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]],PARAM_MT[""nadcon"",PARAMETER[""latitude_difference_file"",""conus.las""],PARAMETER[""longitude_difference_file"",""conus.los""]],PARAM_MT[""Affine"",PARAMETER[""num_row"",3],PARAMETER[""num_col"",3],PARAMETER[""elt_0_0"",0],PARAMETER[""elt_0_1"",1],PARAMETER[""elt_0_2"",0],PARAMETER[""elt_1_0"",1],PARAMETER[""elt_1_1"",0],PARAMETER[""elt_1_2"",0],PARAMETER[""elt_2_0"",0],PARAMETER[""elt_2_1"",0],PARAMETER[""elt_2_2"",1]]]");
            IMathTransform i = d.Inverse;

            TestDirectTransform(d, Sexa2DecimalDegrees(51, 0, 0, CardinalPoint.N), Sexa2DecimalDegrees(112, 0, 0, CardinalPoint.W), 0.0, 0.0, 2E-3);
        }
        public void Test5209_part_1()
        {
            MathTransformFactory mtf = new MathTransformFactory();

            IMathTransform d = mtf.CreateParameterizedTransform("P6", new[] {
                    new Parameter("map_grid_bearing_of_bin_grid_j_axis", 20),
                    new Parameter("bin_width_of_i_axis", 25),
                    new Parameter("bin_width_of_j_axis", 12.5),
                    new Parameter("bin_node_increment_on_i_axis", 2),
                    new Parameter("bin_node_increment_on_j_axis", 2),
                    new Parameter("scale_factor", 1),
                    new Parameter("bin_grid_origin_easting", 414188.46),
                    new Parameter("bin_grid_origin_northing", 5761775.889),
                    new Parameter("bin_grid_origin_i", 1),
                    new Parameter("bin_grid_origin_j", 10000),
                });

            IMathTransform i = d.Inverse;

            ExecuteTests(d, i);
        }