@@ -522,6 +522,72 @@ TEST(gie, info_functions) {
522
522
proj_destroy (P);
523
523
}
524
524
525
+ // Test with a projected CRS with feet unit
526
+ {
527
+ PJ_COORD c;
528
+ c.lp .lam = proj_torad (-110 );
529
+ c.lp .phi = proj_torad (30 );
530
+
531
+ P = proj_create (PJ_DEFAULT_CTX,
532
+ " +proj=tmerc +lat_0=31 +lon_0=-110.166666666667 "
533
+ " +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft" );
534
+ factors = proj_factors (P, c);
535
+ EXPECT_NEAR (factors.meridional_scale , 0.99990319 , 1e-8 )
536
+ << factors.meridional_scale ;
537
+ EXPECT_NEAR (factors.parallel_scale , 0.99990319 , 1e-8 )
538
+ << factors.parallel_scale ;
539
+ EXPECT_NEAR (factors.angular_distortion , 0 , 1e-7 )
540
+ << factors.angular_distortion ;
541
+ EXPECT_NEAR (factors.meridian_parallel_angle , M_PI_2, 1e-7 )
542
+ << factors.meridian_parallel_angle ;
543
+ proj_destroy (P);
544
+
545
+ P = proj_create (PJ_DEFAULT_CTX, " EPSG:2222" );
546
+
547
+ const auto factors2 = proj_factors (P, c);
548
+
549
+ EXPECT_NEAR (factors.meridional_scale , factors2.meridional_scale , 1e-10 );
550
+ EXPECT_NEAR (factors.parallel_scale , factors2.parallel_scale , 1e-10 );
551
+ EXPECT_NEAR (factors.angular_distortion , factors2.angular_distortion ,
552
+ 1e-10 );
553
+ EXPECT_NEAR (factors.meridian_parallel_angle ,
554
+ factors2.meridian_parallel_angle , 1e-109 );
555
+
556
+ proj_destroy (P);
557
+ }
558
+
559
+ // Test with a projected CRS with northing, easting axis order
560
+ {
561
+ PJ_COORD c;
562
+ c.lp .lam = proj_torad (9 );
563
+ c.lp .phi = proj_torad (0 );
564
+
565
+ P = proj_create (PJ_DEFAULT_CTX, " +proj=utm +zone=32 +ellps=GRS80" );
566
+ factors = proj_factors (P, c);
567
+ EXPECT_NEAR (factors.meridional_scale , 0.9996 , 1e-8 )
568
+ << factors.meridional_scale ;
569
+ EXPECT_NEAR (factors.parallel_scale , 0.9996 , 1e-8 )
570
+ << factors.parallel_scale ;
571
+ EXPECT_NEAR (factors.angular_distortion , 0 , 1e-7 )
572
+ << factors.angular_distortion ;
573
+ EXPECT_NEAR (factors.meridian_parallel_angle , M_PI_2, 1e-7 )
574
+ << factors.meridian_parallel_angle ;
575
+ proj_destroy (P);
576
+
577
+ P = proj_create (PJ_DEFAULT_CTX, " EPSG:3044" );
578
+
579
+ const auto factors2 = proj_factors (P, c);
580
+
581
+ EXPECT_NEAR (factors.meridional_scale , factors2.meridional_scale , 1e-10 );
582
+ EXPECT_NEAR (factors.parallel_scale , factors2.parallel_scale , 1e-10 );
583
+ EXPECT_NEAR (factors.angular_distortion , factors2.angular_distortion ,
584
+ 1e-10 );
585
+ EXPECT_NEAR (factors.meridian_parallel_angle ,
586
+ factors2.meridian_parallel_angle , 1e-109 );
587
+
588
+ proj_destroy (P);
589
+ }
590
+
525
591
// Test with a geographic CRS --> error
526
592
{
527
593
P = proj_create (PJ_DEFAULT_CTX, " EPSG:4326" );
0 commit comments