001/* 002 * GeoAPI - Java interfaces for OGC/ISO standards 003 * http://www.geoapi.org 004 * 005 * Copyright (C) 2011-2019 Open Geospatial Consortium, Inc. 006 * All Rights Reserved. http://www.opengeospatial.org/ogc/legal 007 * 008 * Permission to use, copy, and modify this software and its documentation, with 009 * or without modification, for any purpose and without fee or royalty is hereby 010 * granted, provided that you include the following on ALL copies of the software 011 * and documentation or portions thereof, including modifications, that you make: 012 * 013 * 1. The full text of this NOTICE in a location viewable to users of the 014 * redistributed or derivative work. 015 * 2. Notice of any changes or modifications to the OGC files, including the 016 * date changes were made. 017 * 018 * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE 019 * NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 020 * TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT 021 * THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY 022 * PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. 023 * 024 * COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR 025 * CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. 026 * 027 * The name and trademarks of copyright holders may NOT be used in advertising or 028 * publicity pertaining to the software without specific, written prior permission. 029 * Title to copyright in this software and any associated documentation will at all 030 * times remain with copyright holders. 031 */ 032package org.opengis.test.referencing.gigs; 033 034import java.util.List; 035 036import org.opengis.util.Factory; 037import org.opengis.util.FactoryException; 038import org.opengis.util.NoSuchIdentifierException; 039import org.opengis.referencing.crs.CRSAuthorityFactory; 040import org.opengis.referencing.crs.ProjectedCRS; 041import org.opengis.referencing.cs.AxisDirection; 042import org.opengis.referencing.cs.CartesianCS; 043import org.opengis.test.Configuration; 044import org.opengis.test.FactoryFilter; 045 046import org.junit.Test; 047import org.junit.runner.RunWith; 048import org.junit.runners.Parameterized; 049 050import static org.junit.Assume.*; 051import static org.opengis.test.Assert.*; 052 053 054/** 055 * Verifies reference projected CRSs bundled with the geoscience software. 056 * 057 * <table class="gigs" summary="Test description"><tr> 058 * <th>Test method:</th> 059 * <td>Compare projected CRS definitions included in the software against the EPSG Dataset.</td> 060 * </tr><tr> 061 * <th>Test data:</th> 062 * <td><a href="doc-files/GIGS_2006_libProjectedCRS.csv">{@code GIGS_2006_libProjectedCRS.csv}</a> 063 * and EPSG Dataset.</td> 064 * </tr><tr> 065 * <th>Tested API:</th> 066 * <td>{@link CRSAuthorityFactory#createProjectedCRS(String)}.</td> 067 * </tr><tr> 068 * <th>Expected result:</th> 069 * <td>Projected CRS definitions bundled with the software should have the same name, coordinate system 070 * (including units and axes abbreviations and axes order) and map projection as in the EPSG Dataset. 071 * CRSs missing from the software or at variance with those in the EPSG Dataset should be reported.</td> 072 * </tr></table> 073 * 074 * 075 * <div class="note"><b>Usage example:</b> 076 * in order to specify their factories and run the tests in a JUnit framework, implementors can 077 * define a subclass in their own test suite as in the example below: 078 * 079 * <blockquote><pre>import org.junit.runner.RunWith; 080 *import org.junit.runners.JUnit4; 081 *import org.opengis.test.referencing.gigs.GIGS2006; 082 * 083 *@RunWith(JUnit4.class) 084 *public class MyTest extends GIGS2006 { 085 * public MyTest() { 086 * super(new MyCRSAuthorityFactory()); 087 * } 088 *}</pre></blockquote> 089 * </div> 090 * 091 * @author GIGS (IOGP) 092 * @author Martin Desruisseaux (Geomatys) 093 * @author Alexis Manin (Geomatys) 094 * @version 3.1 095 * @since 3.1 096 */ 097@RunWith(Parameterized.class) 098public strictfp class GIGS2006 extends AuthorityFactoryTestCase<ProjectedCRS> { 099 /** 100 * The EPSG code of the expected datum. 101 */ 102 public int datumCode; 103 104 /** 105 * The names of map projection (informative). Projected CRS conversion should have one of those names. 106 * However those names are approximate. For example the “Argentina zones” name may apply to a wide 107 * range of names like “Argentina zone 1”, “Argentina zone 2”, <i>etc</i>. 108 */ 109 public String[] projectionNames; 110 111 /** 112 * {@code true} if the expected axis directions are ({@link AxisDirection#NORTH NORTH}, 113 * {@link AxisDirection#EAST EAST}) instead than the usual ({@code EAST}, {@code NORTH}). 114 */ 115 public boolean isNorthAxisFirst; 116 117 /** 118 * {@code true} if the <var>x</var> values are increasing toward {@link AxisDirection#WEST WEST} 119 * instead than {@link AxisDirection#EAST EAST}. 120 */ 121 public boolean isWestOrientated; 122 123 /** 124 * {@code true} if the <var>y</var> values are increasing toward {@link AxisDirection#SOUTH SOUTH} 125 * instead than {@link AxisDirection#NORTH NORTH}. 126 */ 127 public boolean isSouthOrientated; 128 129 /** 130 * The CRS created by the factory, or {@code null} if not yet created or if CRS creation failed. 131 * 132 * @see #crsAuthorityFactory 133 */ 134 private ProjectedCRS crs; 135 136 /** 137 * Factory to use for building {@link ProjectedCRS} instances, or {@code null} if none. 138 * This is the factory used by the {@link #getIdentifiedObject()} method. 139 */ 140 protected final CRSAuthorityFactory crsAuthorityFactory; 141 142 /** 143 * Returns a default set of factories to use for running the tests. Those factories are given 144 * in arguments to the constructor when this test class is instantiated directly by JUnit (for 145 * example as a {@linkplain org.junit.runners.Suite.SuiteClasses suite} element), instead than 146 * subclassed by the implementor. The factories are fetched as documented in the 147 * {@link #factories(Class[])} javadoc. 148 * 149 * @return the default set of arguments to be given to the {@code GIGS2006} constructor. 150 */ 151 @Parameterized.Parameters 152 @SuppressWarnings("unchecked") 153 public static List<Factory[]> factories() { 154 return factories(FactoryFilter.ByAuthority.EPSG, CRSAuthorityFactory.class); 155 } 156 157 /** 158 * Creates a new test using the given factory. If a given factory is {@code null}, 159 * then the tests which depend on it will be skipped. 160 * 161 * @param crsFactory factory for creating {@link ProjectedCRS} instances. 162 */ 163 public GIGS2006(final CRSAuthorityFactory crsFactory) { 164 super(crsFactory); 165 crsAuthorityFactory = crsFactory; 166 } 167 168 /** 169 * Returns information about the configuration of the test which has been run. 170 * This method returns a map containing: 171 * 172 * <ul> 173 * <li>All the following values associated to the {@link org.opengis.test.Configuration.Key} of the same name: 174 * <ul> 175 * <li>{@link #isStandardNameSupported}</li> 176 * <li>{@link #isStandardAliasSupported}</li> 177 * <li>{@link #isDependencyIdentificationSupported}</li> 178 * <li>{@link #crsAuthorityFactory}</li> 179 * </ul> 180 * </li> 181 * </ul> 182 * 183 * @return the configuration of the test being run. 184 */ 185 @Override 186 public Configuration configuration() { 187 final Configuration op = super.configuration(); 188 assertNull(op.put(Configuration.Key.crsAuthorityFactory, crsAuthorityFactory)); 189 return op; 190 } 191 192 /** 193 * Returns the projected CRS instance to be tested. When this method is invoked for the first time, it creates the 194 * CRS to test by invoking the {@link CRSAuthorityFactory#createProjectedCRS(String)} method with the current 195 * {@link #code} value in argument. The created object is then cached and returned in all subsequent invocations 196 * of this method. 197 * 198 * @return the projected CRS instance to test. 199 * @throws FactoryException if an error occurred while creating the projected CRS instance. 200 */ 201 @Override 202 public ProjectedCRS getIdentifiedObject() throws FactoryException { 203 if (crs == null) { 204 assumeNotNull(crsAuthorityFactory); 205 try { 206 crs = crsAuthorityFactory.createProjectedCRS(String.valueOf(code)); 207 } catch (NoSuchIdentifierException e) { 208 /* 209 * Relaxed the exception type from NoSuchAuthorityCodeException because CoordinateOperation creation 210 * will typically use MathTransformFactory under the hood, which throws NoSuchIdentifierException for 211 * non-implemented operation methods (may be identified by their name rather than EPSG code). 212 */ 213 unsupportedCode(ProjectedCRS.class, code); 214 throw e; 215 } 216 } 217 return crs; 218 } 219 220 /** 221 * Verifies the properties of the projected CRS given by {@link #getIdentifiedObject()}. 222 */ 223 private void createAndVerifyProjectedCRS(final int code) throws FactoryException { 224 this.code = code; 225 crs = null; // For forcing the fetch of a new projected CRS. 226 227 final ProjectedCRS crs = getIdentifiedObject(); 228 assertNotNull("ProjectedCRS", crs); 229 validators.validate(crs); 230 231 // Projected CRS identifier. 232 assertContainsCode("ProjectedCRS.getIdentifiers()", "EPSG", code, crs.getIdentifiers()); 233 234 // Projected CRS components. 235 if (isDependencyIdentificationSupported) { 236 configurationTip = Configuration.Key.isDependencyIdentificationSupported; 237 238 // Geodetic datum name. 239 assertContainsCode("ProjectedCRS.getDatum().getIdentifiers()", 240 "EPSG", datumCode, crs.getDatum().getIdentifiers()); 241 242 // Base geographic CRS name. 243 if (isStandardNameSupported) { 244 configurationTip = Configuration.Key.isStandardNameSupported; 245 assertEquals("ProjectedCRS.getBaseCRS().getName()", name, getVerifiableName(crs.getBaseCRS())); 246 } 247 configurationTip = null; 248 } 249 250 // Projected CRS coordinate system. 251 final CartesianCS cs = crs.getCoordinateSystem(); 252 assertNotNull("ProjectedCRS.getCoordinateSystem()", crs); 253 assertEquals("ProjectedCRS.getCoordinateSystem().getDimension()", 2, cs.getDimension()); 254 255 // Coordinate sytem axis directions. 256 final AxisDirection[] directions = new AxisDirection[2]; 257 directions[isNorthAxisFirst ? 1 : 0] = isWestOrientated ? AxisDirection.WEST : AxisDirection.EAST; 258 directions[isNorthAxisFirst ? 0 : 1] = isSouthOrientated ? AxisDirection.SOUTH : AxisDirection.NORTH; 259 assertAxisDirectionsEqual("ProjectedCRS.getCoordinateSystem().getAxis(*)", cs, directions); 260 } 261 262 /** 263 * Tests “Abidjan 1987”-based projected CRS creation from the factory. 264 * 265 * <ul> 266 * <li>Projected CRS codes: <b>2165</b>, <b>2043</b>, <b>2041</b></li> 267 * <li>Geographic CRS name: <b>Abidjan 1987</b></li> 268 * <li>Projection names (informative): <b>TM 5 NW</b>, <b>UTM</b></li> 269 * <li>Particularly important to E&P industry.</li> 270 * </ul> 271 * 272 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 273 */ 274 @Test 275 public void testAbidjan() throws FactoryException { 276 important = true; 277 name = "Abidjan 1987"; 278 projectionNames = new String[] {"TM 5 NW", "UTM"}; 279 datumCode = 6143; 280 createAndVerifyProjectedCRS(2165); 281 createAndVerifyProjectedCRS(2043); 282 createAndVerifyProjectedCRS(2041); 283 } 284 285 /** 286 * Tests “Accra”-based projected CRS creation from the factory. 287 * 288 * <ul> 289 * <li>Projected CRS codes: <b>2136</b>, <b>2137</b></li> 290 * <li>Geographic CRS name: <b>Accra</b></li> 291 * <li>Projection names (informative): <b>TM 1 NW</b>, <b>Ghana National Grid</b></li> 292 * <li>Particularly important to E&P industry.</li> 293 * </ul> 294 * 295 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 296 */ 297 @Test 298 public void testAccra() throws FactoryException { 299 important = true; 300 name = "Accra"; 301 projectionNames = new String[] {"TM 1 NW", "Ghana National Grid"}; 302 datumCode = 6168; 303 createAndVerifyProjectedCRS(2136); 304 createAndVerifyProjectedCRS(2137); 305 } 306 307 /** 308 * Tests “AGD66”-based projected CRS creation from the factory. 309 * 310 * <ul> 311 * <li>Projected CRS codes: <b>20249</b>, <b>20250</b>, <b>20251</b>, <b>20252</b>, <b>20253</b>, 312 * <b>20254</b>, <b>20255</b>, <b>20256</b></li> 313 * <li>Geographic CRS name: <b>AGD66</b></li> 314 * <li>Projection names (informative): <b>Australian Map Grid zones</b></li> 315 * <li>Particularly important to E&P industry.</li> 316 * </ul> 317 * 318 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 319 */ 320 @Test 321 public void testAGD66() throws FactoryException { 322 important = true; 323 name = "AGD66"; 324 projectionNames = new String[] {"Australian Map Grid zones"}; 325 datumCode = 6202; 326 for (int code = 20249; code <= 20256; code++) { // Loop over 8 codes 327 createAndVerifyProjectedCRS(code); 328 } 329 } 330 331 /** 332 * Tests “AGD84”-based projected CRS creation from the factory. 333 * 334 * <ul> 335 * <li>Projected CRS codes: <b>20349</b>, <b>20350</b>, <b>20351</b>, <b>20352</b>, <b>20353</b>, 336 * <b>20354</b>, <b>20355</b>, <b>20356</b></li> 337 * <li>Geographic CRS name: <b>AGD84</b></li> 338 * <li>Projection names (informative): <b>Australian Map Grid zones</b></li> 339 * <li>Particularly important to E&P industry.</li> 340 * </ul> 341 * 342 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 343 */ 344 @Test 345 public void testAGD84() throws FactoryException { 346 important = true; 347 name = "AGD84"; 348 projectionNames = new String[] {"Australian Map Grid zones"}; 349 datumCode = 6203; 350 for (int code = 20349; code <= 20356; code++) { // Loop over 8 codes 351 createAndVerifyProjectedCRS(code); 352 } 353 } 354 355 /** 356 * Tests “Ain el Abd”-based projected CRS creation from the factory. 357 * 358 * <ul> 359 * <li>Projected CRS codes: <b>2318</b>, <b>20436</b>, <b>20437</b></li> 360 * <li>Geographic CRS name: <b>Ain el Abd</b></li> 361 * <li>Projection names (informative): <b>Aramco Lambert</b>, <b>UTM</b></li> 362 * <li>Particularly important to E&P industry.</li> 363 * </ul> 364 * 365 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 366 */ 367 @Test 368 public void testAinElAbd() throws FactoryException { 369 important = true; 370 name = "Ain el Abd"; 371 projectionNames = new String[] {"Aramco Lambert", "UTM"}; 372 datumCode = 6204; 373 createAndVerifyProjectedCRS(2318); 374 createAndVerifyProjectedCRS(20436); 375 createAndVerifyProjectedCRS(20437); 376 } 377 378 /** 379 * Tests “Amersfoort”-based projected CRS creation from the factory. 380 * 381 * <ul> 382 * <li>Projected CRS codes: <b>28992</b></li> 383 * <li>Geographic CRS name: <b>Amersfoort</b></li> 384 * <li>Projection names (informative): <b>RD New</b></li> 385 * <li>Particularly important to E&P industry.</li> 386 * </ul> 387 * 388 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 389 */ 390 @Test 391 public void testAmersfoort() throws FactoryException { 392 important = true; 393 name = "Amersfoort"; 394 projectionNames = new String[] {"RD New"}; 395 datumCode = 6289; 396 createAndVerifyProjectedCRS(28992); 397 } 398 399 /** 400 * Tests “Aratu”-based projected CRS creation from the factory. 401 * 402 * <ul> 403 * <li>Projected CRS codes: <b>20822</b>, <b>20823</b>, <b>20824</b></li> 404 * <li>Geographic CRS name: <b>Aratu</b></li> 405 * <li>Projection names (informative): <b>UTM</b></li> 406 * <li>Particularly important to E&P industry.</li> 407 * </ul> 408 * 409 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 410 */ 411 @Test 412 public void testAratu() throws FactoryException { 413 important = true; 414 name = "Aratu"; 415 projectionNames = new String[] {"UTM"}; 416 datumCode = 6208; 417 createAndVerifyProjectedCRS(20822); 418 createAndVerifyProjectedCRS(20823); 419 createAndVerifyProjectedCRS(20824); 420 } 421 422 /** 423 * Tests “Batavia”-based projected CRS creation from the factory. 424 * 425 * <ul> 426 * <li>Projected CRS codes: <b>3001</b>, <b>2308</b></li> 427 * <li>Geographic CRS name: <b>Batavia</b></li> 428 * <li>Projection names (informative): <b>NEIEZ</b>, <b>TM 109 SE</b>, <b>UTM</b></li> 429 * <li>Particularly important to E&P industry.</li> 430 * </ul> 431 * 432 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 433 */ 434 @Test 435 public void testBatavia() throws FactoryException { 436 important = true; 437 name = "Batavia"; 438 projectionNames = new String[] {"NEIEZ", "TM 109 SE", "UTM"}; 439 datumCode = 6211; 440 createAndVerifyProjectedCRS(3001); 441 createAndVerifyProjectedCRS(2308); 442 } 443 444 /** 445 * Tests “Beijing 1954”-based projected CRS creation from the factory. 446 * 447 * <ul> 448 * <li>Projected CRS codes: <b>21413</b>, <b>21414</b>, <b>21415</b>, <b>21416</b>, <b>21417</b>, <b>21418</b>, 449 * <b>21419</b>, <b>21420</b>, <b>21421</b>, <b>21422</b>, <b>21423</b></li> 450 * <li>Geographic CRS name: <b>Beijing 1954</b></li> 451 * <li>Projection names (informative): <b>6-degree Gauss-Kruger</b></li> 452 * <li>Specific usage / Remarks: <b>Check axes order and abbreviations</b></li> 453 * <li>Particularly important to E&P industry.</li> 454 * </ul> 455 * 456 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 457 */ 458 @Test 459 public void testBeijing() throws FactoryException { 460 important = true; 461 name = "Beijing 1954"; 462 projectionNames = new String[] {"6-degree Gauss-Kruger"}; 463 datumCode = 6214; 464 isNorthAxisFirst = true; 465 for (int code = 21413; code <= 21423; code++) { // Loop over 11 codes 466 createAndVerifyProjectedCRS(code); 467 } 468 } 469 470 /** 471 * Tests “Bogota 1975”-based projected CRS creation from the factory. 472 * 473 * <ul> 474 * <li>Projected CRS codes: <b>21896</b>, <b>21897</b>, <b>21898</b>, <b>21899</b></li> 475 * <li>Geographic CRS name: <b>Bogota 1975</b></li> 476 * <li>Projection names (informative): <b>Colombia zones</b></li> 477 * <li>Particularly important to E&P industry.</li> 478 * </ul> 479 * 480 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 481 */ 482 @Test 483 public void testBogota() throws FactoryException { 484 important = true; 485 name = "Bogota 1975"; 486 projectionNames = new String[] {"Colombia zones"}; 487 datumCode = 6218; 488 isNorthAxisFirst = true; 489 for (int code = 21896; code <= 21899; code++) { // Loop over 4 codes 490 createAndVerifyProjectedCRS(code); 491 } 492 } 493 494 /** 495 * Tests “Camacupa”-based projected CRS creation from the factory. 496 * 497 * <ul> 498 * <li>Projected CRS codes: <b>22091</b>, <b>22092</b>, <b>22032</b>, <b>22033</b></li> 499 * <li>Geographic CRS name: <b>Camacupa</b></li> 500 * <li>Projection names (informative): <b>TM 11.30 SE</b>, <b>TM 12 SE</b>, <b>UTM</b></li> 501 * <li>Particularly important to E&P industry.</li> 502 * </ul> 503 * 504 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 505 */ 506 @Test 507 public void testCamacupa() throws FactoryException { 508 important = true; 509 name = "Camacupa"; 510 projectionNames = new String[] {"TM 11.30 SE", "TM 12 SE", "UTM"}; 511 datumCode = 6220; 512 createAndVerifyProjectedCRS(22091); 513 createAndVerifyProjectedCRS(22092); 514 createAndVerifyProjectedCRS(22032); 515 createAndVerifyProjectedCRS(22033); 516 } 517 518 /** 519 * Tests “Campo Inchauspe”-based projected CRS creation from the factory. 520 * 521 * <ul> 522 * <li>Projected CRS codes: <b>22191</b>, <b>22192</b>, <b>22193</b>, <b>22194</b>, <b>22195</b>, <b>22196</b>, <b>22197</b>, <b>2315</b>, <b>2316</b></li> 523 * <li>Geographic CRS name: <b>Campo Inchauspe</b></li> 524 * <li>Projection names (informative): <b>Argentina zones</b>, <b>UTM</b></li> 525 * <li>Particularly important to E&P industry.</li> 526 * </ul> 527 * 528 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 529 */ 530 @Test 531 public void testCampoInchauspe() throws FactoryException { 532 important = true; 533 name = "Campo Inchauspe"; 534 projectionNames = new String[] {"Argentina zones", "UTM"}; 535 datumCode = 6221; 536 isNorthAxisFirst = true; 537 for (int code = 22191; code <= 22197; code++) { // Loop over 7 codes 538 createAndVerifyProjectedCRS(code); 539 } 540 isNorthAxisFirst = false; 541 createAndVerifyProjectedCRS(2315); 542 createAndVerifyProjectedCRS(2316); 543 } 544 545 /** 546 * Tests “Carthage”-based projected CRS creation from the factory. 547 * 548 * <ul> 549 * <li>Projected CRS codes: <b>22391</b>, <b>22392</b></li> 550 * <li>Geographic CRS name: <b>Carthage</b></li> 551 * <li>Projection names (informative): <b>Tunisia zones</b></li> 552 * <li>Particularly important to E&P industry.</li> 553 * </ul> 554 * 555 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 556 */ 557 @Test 558 public void testCarthage() throws FactoryException { 559 important = true; 560 name = "Carthage"; 561 projectionNames = new String[] {"Tunisia zones"}; 562 datumCode = 6223; 563 createAndVerifyProjectedCRS(22391); 564 createAndVerifyProjectedCRS(22392); 565 } 566 567 /** 568 * Tests “Dealul Piscului 1930”-based projected CRS creation from the factory. 569 * 570 * <ul> 571 * <li>Projected CRS codes: <b>31600</b></li> 572 * <li>Geographic CRS name: <b>Dealul Piscului 1930</b></li> 573 * <li>Projection names (informative): <b>Stereo 30</b></li> 574 * <li>Specific usage / Remarks: <b>Check axes order and abbreviations</b></li> 575 * <li>Particularly important to E&P industry.</li> 576 * </ul> 577 * 578 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 579 */ 580 @Test 581 public void testDealulPiscului() throws FactoryException { 582 important = true; 583 name = "Dealul Piscului 1930"; 584 projectionNames = new String[] {"Stereo 30"}; 585 datumCode = 6316; 586 createAndVerifyProjectedCRS(31600); 587 } 588 589 /** 590 * Tests “Deir ez Zor”-based projected CRS creation from the factory. 591 * 592 * <ul> 593 * <li>Projected CRS codes: <b>22700</b>, <b>22770</b></li> 594 * <li>Geographic CRS name: <b>Deir ez Zor</b></li> 595 * <li>Projection names (informative): <b>Levant zone, Syria Lambert</b></li> 596 * <li>Particularly important to E&P industry.</li> 597 * </ul> 598 * 599 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 600 */ 601 @Test 602 public void testDeirEzZor() throws FactoryException { 603 important = true; 604 name = "Deir ez Zor"; 605 projectionNames = new String[] {"Levant zone, Syria Lambert"}; 606 datumCode = 6227; 607 createAndVerifyProjectedCRS(22700); 608 createAndVerifyProjectedCRS(22770); 609 } 610 611 /** 612 * Tests “DGN95”-based projected CRS creation from the factory. 613 * 614 * <ul> 615 * <li>Projected CRS codes: <b>23866</b>, <b>23867</b>, <b>23868</b>, <b>23869</b>, <b>23870</b>, 616 * <b>23871</b>, <b>23872</b>, <b>23877</b>, <b>23878</b>, <b>23879</b>, <i>…5 more</i></li> 617 * <li>Geographic CRS name: <b>DGN95</b></li> 618 * <li>Projection names (informative): <b>UTM</b></li> 619 * <li>Particularly important to E&P industry.</li> 620 * </ul> 621 * 622 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 623 */ 624 @Test 625 public void testDGN95() throws FactoryException { 626 important = true; 627 name = "DGN95"; 628 projectionNames = new String[] {"UTM"}; 629 datumCode = 6755; 630 for (int code = 23866; code <= 23872; code++) { // Loop over 7 codes 631 createAndVerifyProjectedCRS(code); 632 } 633 for (int code = 23877; code <= 23884; code++) { // Loop over 8 codes 634 createAndVerifyProjectedCRS(code); 635 } 636 } 637 638 /** 639 * Tests “DHDN”-based projected CRS creation from the factory. 640 * 641 * <ul> 642 * <li>Projected CRS codes: <b>31466</b>, <b>31467</b>, <b>31468</b>, <b>31469</b></li> 643 * <li>Geographic CRS name: <b>DHDN</b></li> 644 * <li>Projection names (informative): <b>3-degree Gauss-Kruger</b></li> 645 * <li>Specific usage / Remarks: <b>Check axes order and abbreviations</b></li> 646 * <li>Particularly important to E&P industry.</li> 647 * </ul> 648 * 649 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 650 */ 651 @Test 652 public void testDHDN() throws FactoryException { 653 important = true; 654 name = "DHDN"; 655 projectionNames = new String[] {"3-degree Gauss-Kruger"}; 656 datumCode = 6314; 657 isNorthAxisFirst = true; 658 for (int code = 31466; code <= 31469; code++) { // Loop over 4 codes 659 createAndVerifyProjectedCRS(code); 660 } 661 } 662 663 /** 664 * Tests “ED50”-based projected CRS creation from the factory. 665 * 666 * <ul> 667 * <li>Projected CRS codes: <b>23028</b>, <b>23029</b>, <b>23030</b>, <b>23031</b>, <b>23032</b>, 668 * <b>23033</b>, <b>23034</b>, <b>23035</b>, <b>23090</b>, <b>23095</b></li> 669 * <li>Geographic CRS name: <b>ED50</b></li> 670 * <li>Projection names (informative): <b>UTM</b>, <b>TM 5 NE</b>, <b>TM 0 N</b></li> 671 * <li>Particularly important to E&P industry.</li> 672 * </ul> 673 * 674 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 675 */ 676 @Test 677 public void testED50() throws FactoryException { 678 important = true; 679 name = "ED50"; 680 projectionNames = new String[] {"UTM", "TM 5 NE", "TM 0 N"}; 681 datumCode = 6230; 682 for (int code = 23028; code <= 23035; code++) { // Loop over 8 codes 683 createAndVerifyProjectedCRS(code); 684 } 685 createAndVerifyProjectedCRS(23090); 686 createAndVerifyProjectedCRS(23095); 687 } 688 689 /** 690 * Tests “ED50(ED77)”-based projected CRS creation from the factory. 691 * 692 * <ul> 693 * <li>Projected CRS codes: <b>2058</b>, <b>2059</b>, <b>2060</b></li> 694 * <li>Geographic CRS name: <b>ED50(ED77)</b></li> 695 * <li>Projection names (informative): <b>UTM</b></li> 696 * <li>Particularly important to E&P industry.</li> 697 * </ul> 698 * 699 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 700 */ 701 @Test 702 public void testED50_77() throws FactoryException { 703 important = true; 704 name = "ED50(ED77)"; 705 projectionNames = new String[] {"UTM"}; 706 datumCode = 6154; 707 createAndVerifyProjectedCRS(2058); 708 createAndVerifyProjectedCRS(2059); 709 createAndVerifyProjectedCRS(2060); 710 } 711 712 /** 713 * Tests “Egypt 1907”-based projected CRS creation from the factory. 714 * 715 * <ul> 716 * <li>Projected CRS codes: <b>22991</b>, <b>22992</b>, <b>22993</b>, <b>22994</b></li> 717 * <li>Geographic CRS name: <b>Egypt 1907</b></li> 718 * <li>Projection names (informative): <b>Egypt belts</b></li> 719 * <li>Particularly important to E&P industry.</li> 720 * </ul> 721 * 722 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 723 */ 724 @Test 725 public void testEgypt() throws FactoryException { 726 important = true; 727 name = "Egypt 1907"; 728 projectionNames = new String[] {"Egypt belts"}; 729 datumCode = 6229; 730 for (int code = 22991; code <= 22994; code++) { // Loop over 4 codes 731 createAndVerifyProjectedCRS(code); 732 } 733 } 734 735 /** 736 * Tests “Egypt Gulf of Suez S-650 TL”-based projected CRS creation from the factory. 737 * 738 * <ul> 739 * <li>Projected CRS codes: <b>3355</b></li> 740 * <li>Geographic CRS name: <b>Egypt Gulf of Suez S-650 TL</b></li> 741 * <li>Projection names (informative): <b>Egypt Red belt</b></li> 742 * <li>Particularly important to E&P industry.</li> 743 * </ul> 744 * 745 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 746 */ 747 @Test 748 public void testGulfOfSuez() throws FactoryException { 749 important = true; 750 name = "Egypt Gulf of Suez S-650 TL"; 751 projectionNames = new String[] {"Egypt Red belt"}; 752 datumCode = 6706; 753 createAndVerifyProjectedCRS(3355); 754 } 755 756 /** 757 * Tests “ELD79”-based projected CRS creation from the factory. 758 * 759 * <ul> 760 * <li>Projected CRS codes: <b>2068</b>, <b>2069</b>, <b>2070</b>, <b>2071</b>, <b>2072</b>, <b>2073</b>, 761 * <b>2074</b>, <b>2075</b>, <b>2076</b>, <b>2077</b>, <i>…3 more</i></li> 762 * <li>Geographic CRS name: <b>ELD79</b></li> 763 * <li>Projection names (informative): <b>Libya zones</b>, <b>UTM</b></li> 764 * <li>Particularly important to E&P industry.</li> 765 * </ul> 766 * 767 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 768 */ 769 @Test 770 public void testELD79() throws FactoryException { 771 important = true; 772 name = "ELD79"; 773 projectionNames = new String[] {"Libya zones", "UTM"}; 774 datumCode = 6159; 775 for (int code = 2068; code <= 2080; code++) { // Loop over 13 codes 776 createAndVerifyProjectedCRS(code); 777 } 778 } 779 780 /** 781 * Tests “ETRS89”-based projected CRS creation from the factory. 782 * 783 * <ul> 784 * <li>Projected CRS codes: <b>25828</b>, <b>25829</b>, <b>25830</b>, <b>25831</b>, <b>25832</b>, 785 * <b>25833</b>, <b>25834</b>, <b>25835</b></li> 786 * <li>Geographic CRS name: <b>ETRS89</b></li> 787 * <li>Projection names (informative): <b>UTM</b></li> 788 * <li>Particularly important to E&P industry.</li> 789 * </ul> 790 * 791 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 792 */ 793 @Test 794 public void testETRS89() throws FactoryException { 795 important = true; 796 name = "ETRS89"; 797 projectionNames = new String[] {"UTM"}; 798 datumCode = 6258; 799 for (int code = 25828; code <= 25835; code++) { // Loop over 8 codes 800 createAndVerifyProjectedCRS(code); 801 } 802 } 803 804 /** 805 * Tests “Fahud”-based projected CRS creation from the factory. 806 * 807 * <ul> 808 * <li>Projected CRS codes: <b>23239</b>, <b>23240</b></li> 809 * <li>Geographic CRS name: <b>Fahud</b></li> 810 * <li>Projection names (informative): <b>UTM</b></li> 811 * <li>Particularly important to E&P industry.</li> 812 * </ul> 813 * 814 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 815 */ 816 @Test 817 public void testFahud() throws FactoryException { 818 important = true; 819 name = "Fahud"; 820 projectionNames = new String[] {"UTM"}; 821 datumCode = 6232; 822 createAndVerifyProjectedCRS(23239); 823 createAndVerifyProjectedCRS(23240); 824 } 825 826 /** 827 * Tests “FD58”-based projected CRS creation from the factory. 828 * 829 * <ul> 830 * <li>Projected CRS codes: <b>3200</b></li> 831 * <li>Geographic CRS name: <b>FD58</b></li> 832 * <li>Projection names (informative): <b>Iraq zone</b></li> 833 * <li>Particularly important to E&P industry.</li> 834 * </ul> 835 * 836 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 837 */ 838 @Test 839 public void testFD58() throws FactoryException { 840 important = true; 841 name = "FD58"; 842 projectionNames = new String[] {"Iraq zone"}; 843 datumCode = 6132; 844 createAndVerifyProjectedCRS(3200); 845 } 846 847 /** 848 * Tests “GDA94”-based projected CRS creation from the factory. 849 * 850 * <ul> 851 * <li>Projected CRS codes: <b>28349</b>, <b>28350</b>, <b>28351</b>, <b>28352</b>, <b>28353</b>, 852 * <b>28354</b>, <b>28355</b>, <b>28356</b></li> 853 * <li>Geographic CRS name: <b>GDA94</b></li> 854 * <li>Projection names (informative): <b>Australian Map Grid zones</b></li> 855 * <li>Particularly important to E&P industry.</li> 856 * </ul> 857 * 858 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 859 */ 860 @Test 861 public void testGDA94() throws FactoryException { 862 important = true; 863 name = "GDA94"; 864 projectionNames = new String[] {"Australian Map Grid zones"}; 865 datumCode = 6283; 866 for (int code = 28349; code <= 28356; code++) { // Loop over 8 codes 867 createAndVerifyProjectedCRS(code); 868 } 869 } 870 871 /** 872 * Tests “GDM2000”-based projected CRS creation from the factory. 873 * 874 * <ul> 875 * <li>Projected CRS codes: <b>3375</b>, <b>3376</b></li> 876 * <li>Geographic CRS name: <b>GDM2000</b></li> 877 * <li>Projection names (informative): <b>RSO grids</b></li> 878 * <li>Particularly important to E&P industry.</li> 879 * </ul> 880 * 881 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 882 */ 883 @Test 884 public void testGDM2000() throws FactoryException { 885 important = true; 886 name = "GDM2000"; 887 projectionNames = new String[] {"RSO grids"}; 888 datumCode = 6742; 889 createAndVerifyProjectedCRS(3375); 890 createAndVerifyProjectedCRS(3376); 891 } 892 893 /** 894 * Tests “HD72”-based projected CRS creation from the factory. 895 * 896 * <ul> 897 * <li>Projected CRS codes: <b>23700</b></li> 898 * <li>Geographic CRS name: <b>HD72</b></li> 899 * <li>Projection names (informative): <b>EOV</b></li> 900 * <li>Particularly important to E&P industry.</li> 901 * </ul> 902 * 903 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 904 */ 905 @Test 906 public void testHD72() throws FactoryException { 907 important = true; 908 name = "HD72"; 909 projectionNames = new String[] {"EOV"}; 910 datumCode = 6237; 911 createAndVerifyProjectedCRS(23700); 912 } 913 914 /** 915 * Tests “IGN Astro 1960”-based projected CRS creation from the factory. 916 * 917 * <ul> 918 * <li>Projected CRS codes: <b>3367</b>, <b>3368</b>, <b>3369</b></li> 919 * <li>Geographic CRS name: <b>IGN Astro 1960</b></li> 920 * <li>Projection names (informative): <b>UTM</b></li> 921 * <li>Particularly important to E&P industry.</li> 922 * </ul> 923 * 924 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 925 */ 926 @Test 927 public void testIGNAstro() throws FactoryException { 928 important = true; 929 name = "IGN Astro 1960"; 930 projectionNames = new String[] {"UTM"}; 931 datumCode = 6700; 932 createAndVerifyProjectedCRS(3367); 933 createAndVerifyProjectedCRS(3368); 934 createAndVerifyProjectedCRS(3369); 935 } 936 937 /** 938 * Tests “Indian 1954”-based projected CRS creation from the factory. 939 * 940 * <ul> 941 * <li>Projected CRS codes: <b>23946</b>, <b>23947</b>, <b>23948</b></li> 942 * <li>Geographic CRS name: <b>Indian 1954</b></li> 943 * <li>Projection names (informative): <b>UTM</b></li> 944 * <li>Particularly important to E&P industry.</li> 945 * </ul> 946 * 947 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 948 */ 949 @Test 950 public void testIndian1954() throws FactoryException { 951 important = true; 952 name = "Indian 1954"; 953 projectionNames = new String[] {"UTM"}; 954 datumCode = 6239; 955 createAndVerifyProjectedCRS(23946); 956 createAndVerifyProjectedCRS(23947); 957 createAndVerifyProjectedCRS(23948); 958 } 959 960 /** 961 * Tests “Indian 1960”-based projected CRS creation from the factory. 962 * 963 * <ul> 964 * <li>Projected CRS codes: <b>3148</b>, <b>3149</b></li> 965 * <li>Geographic CRS name: <b>Indian 1960</b></li> 966 * <li>Projection names (informative): <b>UTM</b></li> 967 * <li>Particularly important to E&P industry.</li> 968 * </ul> 969 * 970 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 971 */ 972 @Test 973 public void testIndian1960() throws FactoryException { 974 important = true; 975 name = "Indian 1960"; 976 projectionNames = new String[] {"UTM"}; 977 datumCode = 6131; 978 createAndVerifyProjectedCRS(3148); 979 createAndVerifyProjectedCRS(3149); 980 } 981 982 /** 983 * Tests “Indian 1975”-based projected CRS creation from the factory. 984 * 985 * <ul> 986 * <li>Projected CRS codes: <b>24047</b>, <b>24048</b></li> 987 * <li>Geographic CRS name: <b>Indian 1975</b></li> 988 * <li>Projection names (informative): <b>UTM</b></li> 989 * <li>Particularly important to E&P industry.</li> 990 * </ul> 991 * 992 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 993 */ 994 @Test 995 public void testIndian1975() throws FactoryException { 996 important = true; 997 name = "Indian 1975"; 998 projectionNames = new String[] {"UTM"}; 999 datumCode = 6240; 1000 createAndVerifyProjectedCRS(24047); 1001 createAndVerifyProjectedCRS(24048); 1002 } 1003 1004 /** 1005 * Tests “Kalianpur 1937”-based projected CRS creation from the factory. 1006 * 1007 * <ul> 1008 * <li>Projected CRS codes: <b>24305</b>, <b>24306</b>, <b>24375</b></li> 1009 * <li>Geographic CRS name: <b>Kalianpur 1937</b></li> 1010 * <li>Projection names (informative): <b>India zones</b>, <b>UTM</b></li> 1011 * <li>Particularly important to E&P industry.</li> 1012 * </ul> 1013 * 1014 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1015 */ 1016 @Test 1017 public void testKalianpur1937() throws FactoryException { 1018 important = true; 1019 name = "Kalianpur 1937"; 1020 projectionNames = new String[] {"India zones", "UTM"}; 1021 datumCode = 6144; 1022 createAndVerifyProjectedCRS(24305); 1023 createAndVerifyProjectedCRS(24306); 1024 createAndVerifyProjectedCRS(24375); 1025 } 1026 1027 /** 1028 * Tests “Kalianpur 1962”-based projected CRS creation from the factory. 1029 * 1030 * <ul> 1031 * <li>Projected CRS codes: <b>24312</b>, <b>24313</b>, <b>24376</b>, <b>24377</b></li> 1032 * <li>Geographic CRS name: <b>Kalianpur 1962</b></li> 1033 * <li>Projection names (informative): <b>India zones</b>, <b>UTM</b></li> 1034 * <li>Particularly important to E&P industry.</li> 1035 * </ul> 1036 * 1037 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1038 */ 1039 @Test 1040 public void testKalianpur1962() throws FactoryException { 1041 important = true; 1042 name = "Kalianpur 1962"; 1043 projectionNames = new String[] {"India zones", "UTM"}; 1044 datumCode = 6145; 1045 createAndVerifyProjectedCRS(24312); 1046 createAndVerifyProjectedCRS(24313); 1047 createAndVerifyProjectedCRS(24376); 1048 createAndVerifyProjectedCRS(24377); 1049 } 1050 1051 /** 1052 * Tests “Kalianpur 1975”-based projected CRS creation from the factory. 1053 * 1054 * <ul> 1055 * <li>Projected CRS codes: <b>24342</b>, <b>24343</b>, <b>24379</b>, <b>24380</b></li> 1056 * <li>Geographic CRS name: <b>Kalianpur 1975</b></li> 1057 * <li>Projection names (informative): <b>India zones</b>, <b>UTM</b></li> 1058 * <li>Particularly important to E&P industry.</li> 1059 * </ul> 1060 * 1061 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1062 */ 1063 @Test 1064 public void testKalianpur1975() throws FactoryException { 1065 important = true; 1066 name = "Kalianpur 1975"; 1067 projectionNames = new String[] {"India zones", "UTM"}; 1068 datumCode = 6146; 1069 createAndVerifyProjectedCRS(24342); 1070 createAndVerifyProjectedCRS(24343); 1071 createAndVerifyProjectedCRS(24379); 1072 createAndVerifyProjectedCRS(24380); 1073 } 1074 1075 /** 1076 * Tests “Kertau 1968”-based projected CRS creation from the factory. 1077 * 1078 * <ul> 1079 * <li>Projected CRS codes: <b>24547</b>, <b>24548</b></li> 1080 * <li>Geographic CRS name: <b>Kertau 1968</b></li> 1081 * <li>Projection names (informative): <b>UTM</b></li> 1082 * <li>Particularly important to E&P industry.</li> 1083 * </ul> 1084 * 1085 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1086 */ 1087 @Test 1088 public void testKertau() throws FactoryException { 1089 important = true; 1090 name = "Kertau 1968"; 1091 projectionNames = new String[] {"UTM"}; 1092 datumCode = 6245; 1093 createAndVerifyProjectedCRS(24547); 1094 createAndVerifyProjectedCRS(24548); 1095 } 1096 1097 /** 1098 * Tests “Kertau (RSO)”-based projected CRS creation from the factory. 1099 * 1100 * <ul> 1101 * <li>Projected CRS codes: <b>3167</b>, <b>3168</b></li> 1102 * <li>Geographic CRS name: <b>Kertau (RSO)</b></li> 1103 * <li>Projection names (informative): <b>RSO</b></li> 1104 * <li>Particularly important to E&P industry.</li> 1105 * </ul> 1106 * 1107 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1108 */ 1109 @Test 1110 public void testKertau_RSO() throws FactoryException { 1111 important = true; 1112 name = "Kertau (RSO)"; 1113 projectionNames = new String[] {"RSO"}; 1114 datumCode = 6751; 1115 createAndVerifyProjectedCRS(3167); 1116 createAndVerifyProjectedCRS(3168); 1117 } 1118 1119 /** 1120 * Tests “KOC”-based projected CRS creation from the factory. 1121 * 1122 * <ul> 1123 * <li>Projected CRS codes: <b>24600</b></li> 1124 * <li>Geographic CRS name: <b>KOC</b></li> 1125 * <li>Projection names (informative): <b>KOC Lambert</b></li> 1126 * <li>Particularly important to E&P industry.</li> 1127 * </ul> 1128 * 1129 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1130 */ 1131 @Test 1132 public void testKOC() throws FactoryException { 1133 important = true; 1134 name = "KOC"; 1135 projectionNames = new String[] {"KOC Lambert"}; 1136 datumCode = 6246; 1137 createAndVerifyProjectedCRS(24600); 1138 } 1139 1140 /** 1141 * Tests “LGD2006”-based projected CRS creation from the factory. 1142 * 1143 * <ul> 1144 * <li>Projected CRS codes: <b>3177</b>, <b>3190</b>, <b>3191</b>, <b>3192</b>, <b>3193</b>, <b>3194</b>, 1145 * <b>3195</b>, <b>3196</b>, <b>3197</b>, <b>3198</b>, <i>…4 more</i></li> 1146 * <li>Geographic CRS name: <b>LGD2006</b></li> 1147 * <li>Projection names (informative): <b>Libya zones</b>, <b>UTM</b></li> 1148 * <li>Particularly important to E&P industry.</li> 1149 * </ul> 1150 * 1151 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1152 */ 1153 @Test 1154 public void testLGD2006() throws FactoryException { 1155 important = true; 1156 name = "LGD2006"; 1157 projectionNames = new String[] {"Libya zones", "UTM"}; 1158 datumCode = 6754; 1159 createAndVerifyProjectedCRS(3177); 1160 for (int code = 3190; code <= 3199; code++) { // Loop over 10 codes 1161 createAndVerifyProjectedCRS(code); 1162 } 1163 createAndVerifyProjectedCRS(3201); 1164 createAndVerifyProjectedCRS(3202); 1165 createAndVerifyProjectedCRS(3203); 1166 } 1167 1168 /** 1169 * Tests “Luzon 1911”-based projected CRS creation from the factory. 1170 * 1171 * <ul> 1172 * <li>Projected CRS codes: <b>25391</b>, <b>25392</b>, <b>25393</b>, <b>25394</b>, <b>25395</b></li> 1173 * <li>Geographic CRS name: <b>Luzon 1911</b></li> 1174 * <li>Projection names (informative): <b>Philippine zones</b></li> 1175 * <li>Particularly important to E&P industry.</li> 1176 * </ul> 1177 * 1178 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1179 */ 1180 @Test 1181 public void testLuzon() throws FactoryException { 1182 important = true; 1183 name = "Luzon 1911"; 1184 projectionNames = new String[] {"Philippine zones"}; 1185 datumCode = 6253; 1186 for (int code = 25391; code <= 25395; code++) { // Loop over 5 codes 1187 createAndVerifyProjectedCRS(code); 1188 } 1189 } 1190 1191 /** 1192 * Tests “MAGNA-SIRGAS”-based projected CRS creation from the factory. 1193 * 1194 * <ul> 1195 * <li>Projected CRS codes: <b>3114</b>, <b>3115</b>, <b>3116</b>, <b>3117</b>, <b>3118</b></li> 1196 * <li>Geographic CRS name: <b>MAGNA-SIRGAS</b></li> 1197 * <li>Projection names (informative): <b>Colombia zones</b></li> 1198 * <li>Particularly important to E&P industry.</li> 1199 * </ul> 1200 * 1201 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1202 */ 1203 @Test 1204 public void testMAGNA_SIRGAS() throws FactoryException { 1205 important = true; 1206 name = "MAGNA-SIRGAS"; 1207 projectionNames = new String[] {"Colombia zones"}; 1208 datumCode = 6686; 1209 isNorthAxisFirst = true; 1210 for (int code = 3114; code <= 3118; code++) { // Loop over 5 codes 1211 createAndVerifyProjectedCRS(code); 1212 } 1213 } 1214 1215 /** 1216 * Tests “Malongo 1987”-based projected CRS creation from the factory. 1217 * 1218 * <ul> 1219 * <li>Projected CRS codes: <b>25932</b></li> 1220 * <li>Geographic CRS name: <b>Malongo 1987</b></li> 1221 * <li>Projection names (informative): <b>UTM</b></li> 1222 * <li>Particularly important to E&P industry.</li> 1223 * </ul> 1224 * 1225 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1226 */ 1227 @Test 1228 public void testMalongo() throws FactoryException { 1229 important = true; 1230 name = "Malongo 1987"; 1231 projectionNames = new String[] {"UTM"}; 1232 datumCode = 6259; 1233 createAndVerifyProjectedCRS(25932); 1234 } 1235 1236 /** 1237 * Tests “Manoca 1962”-based projected CRS creation from the factory. 1238 * 1239 * <ul> 1240 * <li>Projected CRS codes: <b>2215</b></li> 1241 * <li>Geographic CRS name: <b>Manoca 1962</b></li> 1242 * <li>Projection names (informative): <b>UTM</b></li> 1243 * <li>Particularly important to E&P industry.</li> 1244 * </ul> 1245 * 1246 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1247 */ 1248 @Test 1249 public void testManoca() throws FactoryException { 1250 important = true; 1251 name = "Manoca 1962"; 1252 projectionNames = new String[] {"UTM"}; 1253 datumCode = 6193; 1254 createAndVerifyProjectedCRS(2215); 1255 } 1256 1257 /** 1258 * Tests “Mauritania 1999”-based projected CRS creation from the factory. 1259 * 1260 * <ul> 1261 * <li>Projected CRS codes: <b>3343</b>, <b>3344</b>, <b>3345</b></li> 1262 * <li>Geographic CRS name: <b>Mauritania 1999</b></li> 1263 * <li>Projection names (informative): <b>UTM</b></li> 1264 * <li>Particularly important to E&P industry.</li> 1265 * </ul> 1266 * 1267 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1268 */ 1269 @Test 1270 public void testMauritania() throws FactoryException { 1271 important = true; 1272 name = "Mauritania 1999"; 1273 projectionNames = new String[] {"UTM"}; 1274 datumCode = 6702; 1275 createAndVerifyProjectedCRS(3343); 1276 createAndVerifyProjectedCRS(3344); 1277 createAndVerifyProjectedCRS(3345); 1278 } 1279 1280 /** 1281 * Tests “LKS94”-based projected CRS creation from the factory. 1282 * 1283 * <ul> 1284 * <li>Projected CRS codes: <b>3346</b></li> 1285 * <li>Geographic CRS name: <b>LKS94</b></li> 1286 * <li>Projection names (informative): <b>UTM</b></li> 1287 * <li>Particularly important to E&P industry.</li> 1288 * </ul> 1289 * 1290 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1291 */ 1292 @Test 1293 public void testLKS94() throws FactoryException { 1294 important = true; 1295 name = "LKS94"; 1296 projectionNames = new String[] {"UTM"}; 1297 datumCode = 6126; 1298 isNorthAxisFirst = true; 1299 createAndVerifyProjectedCRS(3346); 1300 } 1301 1302 /** 1303 * Tests “Pulkovo 1942”-based projected CRS creation from the factory. 1304 * 1305 * <ul> 1306 * <li>Projected CRS codes: <b>3350</b>, <b>3351</b>, <b>3352</b></li> 1307 * <li>Geographic CRS name: <b>Pulkovo 1942</b></li> 1308 * <li>Projection names (informative): <b>UTM</b></li> 1309 * <li>Particularly important to E&P industry.</li> 1310 * </ul> 1311 * 1312 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1313 */ 1314 @Test 1315 public void testPulkovo1942_UTM() throws FactoryException { 1316 important = true; 1317 name = "Pulkovo 1942"; 1318 projectionNames = new String[] {"UTM"}; 1319 datumCode = 6284; 1320 isNorthAxisFirst = true; 1321 createAndVerifyProjectedCRS(3350); 1322 createAndVerifyProjectedCRS(3351); 1323 createAndVerifyProjectedCRS(3352); 1324 } 1325 1326 /** 1327 * Tests “Mhast (offshore)”-based projected CRS creation from the factory. 1328 * 1329 * <ul> 1330 * <li>Projected CRS codes: <b>3354</b></li> 1331 * <li>Geographic CRS name: <b>Mhast (offshore)</b></li> 1332 * <li>Projection names (informative): <b>UTM</b></li> 1333 * <li>Particularly important to E&P industry.</li> 1334 * </ul> 1335 * 1336 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1337 */ 1338 @Test 1339 public void testMhast_offshore() throws FactoryException { 1340 important = true; 1341 name = "Mhast (offshore)"; 1342 projectionNames = new String[] {"UTM"}; 1343 datumCode = 6705; 1344 createAndVerifyProjectedCRS(3354); 1345 } 1346 1347 /** 1348 * Tests “Mhast (onshore)”-based projected CRS creation from the factory. 1349 * 1350 * <ul> 1351 * <li>Projected CRS codes: <b>3353</b></li> 1352 * <li>Geographic CRS name: <b>Mhast (onshore)</b></li> 1353 * <li>Projection names (informative): <b>UTM</b></li> 1354 * <li>Particularly important to E&P industry.</li> 1355 * </ul> 1356 * 1357 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1358 */ 1359 @Test 1360 public void testMhast_onshore() throws FactoryException { 1361 important = true; 1362 name = "Mhast (onshore)"; 1363 projectionNames = new String[] {"UTM"}; 1364 datumCode = 6704; 1365 createAndVerifyProjectedCRS(3353); 1366 } 1367 1368 /** 1369 * Tests “Minna”-based projected CRS creation from the factory. 1370 * 1371 * <ul> 1372 * <li>Projected CRS codes: <b>26331</b>, <b>26332</b>, <b>26391</b>, <b>26392</b>, <b>26393</b></li> 1373 * <li>Geographic CRS name: <b>Minna</b></li> 1374 * <li>Projection names (informative): <b>Nigeria belts</b>, <b>UTM</b></li> 1375 * <li>Particularly important to E&P industry.</li> 1376 * </ul> 1377 * 1378 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1379 */ 1380 @Test 1381 public void testMinna() throws FactoryException { 1382 important = true; 1383 name = "Minna"; 1384 projectionNames = new String[] {"Nigeria belts", "UTM"}; 1385 datumCode = 6263; 1386 createAndVerifyProjectedCRS(26331); 1387 createAndVerifyProjectedCRS(26332); 1388 createAndVerifyProjectedCRS(26391); 1389 createAndVerifyProjectedCRS(26392); 1390 createAndVerifyProjectedCRS(26393); 1391 } 1392 1393 /** 1394 * Tests “Monte Mario”-based projected CRS creation from the factory. 1395 * 1396 * <ul> 1397 * <li>Projected CRS codes: <b>3003</b>, <b>3004</b></li> 1398 * <li>Geographic CRS name: <b>Monte Mario</b></li> 1399 * <li>Projection names (informative): <b>Italy zones</b></li> 1400 * <li>Particularly important to E&P industry.</li> 1401 * </ul> 1402 * 1403 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1404 */ 1405 @Test 1406 public void testMonteMario() throws FactoryException { 1407 important = true; 1408 name = "Monte Mario"; 1409 projectionNames = new String[] {"Italy zones"}; 1410 datumCode = 6265; 1411 createAndVerifyProjectedCRS(3003); 1412 createAndVerifyProjectedCRS(3004); 1413 } 1414 1415 /** 1416 * Tests “M'poraloko”-based projected CRS creation from the factory. 1417 * 1418 * <ul> 1419 * <li>Projected CRS codes: <b>26632</b>, <b>26692</b></li> 1420 * <li>Geographic CRS name: <b>M'poraloko</b></li> 1421 * <li>Projection names (informative): <b>UTM</b></li> 1422 * <li>Particularly important to E&P industry.</li> 1423 * </ul> 1424 * 1425 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1426 */ 1427 @Test 1428 public void testMPoraloko() throws FactoryException { 1429 important = true; 1430 name = "M'poraloko"; 1431 projectionNames = new String[] {"UTM"}; 1432 datumCode = 6266; 1433 createAndVerifyProjectedCRS(26632); 1434 createAndVerifyProjectedCRS(26692); 1435 } 1436 1437 /** 1438 * Tests “NAD27”-based projected CRS creation from the factory. 1439 * 1440 * <ul> 1441 * <li>Projected CRS codes: <b>26711</b>, <b>26712</b>, <b>32012</b>, <b>32040</b>, <b>32064</b>, <b>32065</b>, <b>32066</b></li> 1442 * <li>Geographic CRS name: <b>NAD27</b></li> 1443 * <li>Projection names (informative): <b>State Plane zones</b>, <b>BLM zones</b>, <b>UTM</b></li> 1444 * <li>Particularly important to E&P industry.</li> 1445 * </ul> 1446 * 1447 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1448 */ 1449 @Test 1450 public void testNAD27() throws FactoryException { 1451 important = true; 1452 name = "NAD27"; 1453 projectionNames = new String[] {"State Plane zones", "BLM zones", "UTM"}; 1454 datumCode = 6267; 1455 createAndVerifyProjectedCRS(26711); 1456 createAndVerifyProjectedCRS(26712); 1457 createAndVerifyProjectedCRS(32012); 1458 createAndVerifyProjectedCRS(32040); 1459 createAndVerifyProjectedCRS(32064); 1460 createAndVerifyProjectedCRS(32065); 1461 createAndVerifyProjectedCRS(32066); 1462 } 1463 1464 /** 1465 * Tests “NAD27 Michigan”-based projected CRS creation from the factory. 1466 * 1467 * <ul> 1468 * <li>Projected CRS codes: <b>6201</b>, <b>6202</b></li> 1469 * <li>Geographic CRS name: <b>NAD27</b></li> 1470 * <li>Projection names (informative): <b>State Plane zones</b></li> 1471 * <li>Particularly important to E&P industry.</li> 1472 * </ul> 1473 * 1474 * If {@link #isDeprecatedObjectCreationSupported} is {@code true}, then this method tests also: 1475 * 1476 * <ul> 1477 * <li>Projected CRS codes: <b>26811</b>, <b>26812</b>, <b>26813</b></li> 1478 * <li>Geographic CRS name: <b>NAD27 Michigan</b></li> 1479 * <li>Projection names (informative): <b>State Plane zones</b></li> 1480 * </ul> 1481 * 1482 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1483 */ 1484 @Test 1485 public void testNAD27_Michigan() throws FactoryException { 1486 important = true; 1487 name = "NAD27"; 1488 projectionNames = new String[] {"State Plane zones"}; 1489 datumCode = 6267; 1490 createAndVerifyProjectedCRS(6201); 1491 createAndVerifyProjectedCRS(6202); 1492 if (isDeprecatedObjectCreationSupported) { 1493 name = "NAD27 Michigan"; 1494 datumCode = 6268; 1495 createAndVerifyProjectedCRS(26811); 1496 createAndVerifyProjectedCRS(26812); 1497 createAndVerifyProjectedCRS(26813); 1498 } 1499 } 1500 1501 /** 1502 * Tests “NAD83”-based projected CRS creation from the factory. 1503 * 1504 * <ul> 1505 * <li>Projected CRS codes: <b>3347</b>, <b>26911</b>, <b>26912</b>, <b>32156</b>, <b>3736</b>, <b>26990</b>, 1506 * <b>2253</b>, <b>32140</b>, <b>2278</b></li> 1507 * <li>Geographic CRS name: <b>NAD83</b></li> 1508 * <li>Projection names (informative): <b>State Plane zones</b>, <b>UTM</b></li> 1509 * <li>Specific usage / Remarks: <b>Check units</b></li> 1510 * <li>Particularly important to E&P industry.</li> 1511 * </ul> 1512 * 1513 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1514 */ 1515 @Test 1516 public void testNAD83() throws FactoryException { 1517 important = true; 1518 name = "NAD83"; 1519 projectionNames = new String[] {"State Plane zones", "UTM"}; 1520 datumCode = 6269; 1521 createAndVerifyProjectedCRS(3347); 1522 createAndVerifyProjectedCRS(26911); 1523 createAndVerifyProjectedCRS(26912); 1524 createAndVerifyProjectedCRS(32156); 1525 createAndVerifyProjectedCRS(3736); 1526 createAndVerifyProjectedCRS(26990); 1527 createAndVerifyProjectedCRS(2253); 1528 createAndVerifyProjectedCRS(32140); 1529 createAndVerifyProjectedCRS(2278); 1530 } 1531 1532 /** 1533 * Tests “NAD83(CSRS)”-based projected CRS creation from the factory. 1534 * 1535 * <ul> 1536 * <li>Projected CRS codes: <b>3348</b>, <b>2955</b>, <b>2956</b></li> 1537 * <li>Geographic CRS name: <b>NAD83(CSRS)</b></li> 1538 * <li>Projection names (informative): <b>UTM</b></li> 1539 * <li>Particularly important to E&P industry.</li> 1540 * </ul> 1541 * 1542 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1543 */ 1544 @Test 1545 public void testNAD83_CSRS() throws FactoryException { 1546 important = true; 1547 name = "NAD83(CSRS)"; 1548 projectionNames = new String[] {"UTM"}; 1549 datumCode = 6140; 1550 createAndVerifyProjectedCRS(3348); 1551 createAndVerifyProjectedCRS(2955); 1552 createAndVerifyProjectedCRS(2956); 1553 } 1554 1555 /** 1556 * Tests “NAD83(HARN)”-based projected CRS creation from the factory. 1557 * 1558 * <ul> 1559 * <li>Projected CRS codes: <b>2845</b>, <b>2917</b>, <b>2809</b>, <b>2898</b></li> 1560 * <li>Geographic CRS name: <b>NAD83(HARN)</b></li> 1561 * <li>Projection names (informative): <b>State Plane zones</b>, <b>UTM</b></li> 1562 * <li>Particularly important to E&P industry.</li> 1563 * </ul> 1564 * 1565 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1566 */ 1567 @Test 1568 public void testNAD83_HARN() throws FactoryException { 1569 important = true; 1570 name = "NAD83(HARN)"; 1571 projectionNames = new String[] {"State Plane zones", "UTM"}; 1572 datumCode = 6152; 1573 createAndVerifyProjectedCRS(2845); 1574 createAndVerifyProjectedCRS(2917); 1575 createAndVerifyProjectedCRS(2809); 1576 createAndVerifyProjectedCRS(2898); 1577 } 1578 1579 /** 1580 * Tests “Nahrwan 1967”-based projected CRS creation from the factory. 1581 * 1582 * <ul> 1583 * <li>Projected CRS codes: <b>27039</b>, <b>27040</b></li> 1584 * <li>Geographic CRS name: <b>Nahrwan 1967</b></li> 1585 * <li>Projection names (informative): <b>Nahrwan 1967</b></li> 1586 * <li>Particularly important to E&P industry.</li> 1587 * </ul> 1588 * 1589 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1590 */ 1591 @Test 1592 public void testNahrwan() throws FactoryException { 1593 important = true; 1594 name = "Nahrwan 1967"; 1595 projectionNames = new String[] {"Nahrwan 1967"}; 1596 datumCode = 6270; 1597 createAndVerifyProjectedCRS(27039); 1598 createAndVerifyProjectedCRS(27040); 1599 } 1600 1601 /** 1602 * Tests “Naparima 1955”-based projected CRS creation from the factory. 1603 * 1604 * <ul> 1605 * <li>Projected CRS codes: <b>2067</b></li> 1606 * <li>Geographic CRS name: <b>Naparima 1955</b></li> 1607 * <li>Projection names (informative): <b>UTM</b></li> 1608 * <li>Particularly important to E&P industry.</li> 1609 * </ul> 1610 * 1611 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1612 */ 1613 @Test 1614 public void testNaparima() throws FactoryException { 1615 important = true; 1616 name = "Naparima 1955"; 1617 projectionNames = new String[] {"UTM"}; 1618 datumCode = 6158; 1619 createAndVerifyProjectedCRS(2067); 1620 } 1621 1622 /** 1623 * Tests “Nord Sahara 1959”-based projected CRS creation from the factory. 1624 * 1625 * <ul> 1626 * <li>Projected CRS codes: <b>30791</b>, <b>30792</b>, <b>30730</b>, <b>30731</b>, <b>30732</b></li> 1627 * <li>Geographic CRS name: <b>Nord Sahara 1959</b></li> 1628 * <li>Projection names (informative): <b>Voirol Unifie</b>, <b>UTM</b></li> 1629 * <li>Specific usage / Remarks: <b>Check old Voirol</b></li> 1630 * <li>Particularly important to E&P industry.</li> 1631 * </ul> 1632 * 1633 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1634 */ 1635 @Test 1636 public void testNordSahara() throws FactoryException { 1637 important = true; 1638 name = "Nord Sahara 1959"; 1639 projectionNames = new String[] {"Voirol Unifie", "UTM"}; 1640 datumCode = 6307; 1641 createAndVerifyProjectedCRS(30791); 1642 createAndVerifyProjectedCRS(30792); 1643 createAndVerifyProjectedCRS(30730); 1644 createAndVerifyProjectedCRS(30731); 1645 createAndVerifyProjectedCRS(30732); 1646 } 1647 1648 /** 1649 * Tests “NTF (Paris)”-based projected CRS creation from the factory. 1650 * 1651 * <ul> 1652 * <li>Projected CRS codes: <b>27571</b>, <b>27572</b>, <b>27573</b></li> 1653 * <li>Geographic CRS name: <b>NTF (Paris)</b></li> 1654 * <li>Projection names (informative): <b>Lambert zones</b></li> 1655 * <li>Particularly important to E&P industry.</li> 1656 * </ul> 1657 * 1658 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1659 */ 1660 @Test 1661 public void testNTF_Paris() throws FactoryException { 1662 important = true; 1663 name = "NTF (Paris)"; 1664 projectionNames = new String[] {"Lambert zones"}; 1665 datumCode = 6807; 1666 createAndVerifyProjectedCRS(27571); 1667 createAndVerifyProjectedCRS(27572); 1668 createAndVerifyProjectedCRS(27573); 1669 } 1670 1671 /** 1672 * Tests “NZGD2000”-based projected CRS creation from the factory. 1673 * 1674 * <ul> 1675 * <li>Projected CRS codes: <b>2193</b>, <b>2133</b>, <b>2134</b>, <b>2135</b></li> 1676 * <li>Geographic CRS name: <b>NZGD2000</b></li> 1677 * <li>Projection names (informative): <b>TM</b></li> 1678 * <li>Particularly important to E&P industry.</li> 1679 * </ul> 1680 * 1681 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1682 */ 1683 @Test 1684 public void testNZGD2000() throws FactoryException { 1685 important = true; 1686 name = "NZGD2000"; 1687 projectionNames = new String[] {"TM"}; 1688 datumCode = 6167; 1689 isNorthAxisFirst = true; 1690 createAndVerifyProjectedCRS(2193); 1691 isNorthAxisFirst = false; 1692 createAndVerifyProjectedCRS(2133); 1693 createAndVerifyProjectedCRS(2134); 1694 createAndVerifyProjectedCRS(2135); 1695 } 1696 1697 /** 1698 * Tests “NZGD49”-based projected CRS creation from the factory. 1699 * 1700 * <ul> 1701 * <li>Projected CRS codes: <b>27200</b>, <b>27291</b>, <b>27292</b></li> 1702 * <li>Geographic CRS name: <b>NZGD49</b></li> 1703 * <li>Projection names (informative): <b>NZMG</b>, <b>TM zones</b></li> 1704 * <li>Particularly important to E&P industry.</li> 1705 * </ul> 1706 * 1707 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1708 */ 1709 @Test 1710 public void testNZGD49() throws FactoryException { 1711 important = true; 1712 name = "NZGD49"; 1713 projectionNames = new String[] {"NZMG", "TM zones"}; 1714 datumCode = 6272; 1715 createAndVerifyProjectedCRS(27200); 1716 createAndVerifyProjectedCRS(27291); 1717 createAndVerifyProjectedCRS(27292); 1718 } 1719 1720 /** 1721 * Tests “OSGB 1936”-based projected CRS creation from the factory. 1722 * 1723 * <ul> 1724 * <li>Projected CRS codes: <b>27700</b></li> 1725 * <li>Geographic CRS name: <b>OSGB 1936</b></li> 1726 * <li>Projection names (informative): <b>TM</b></li> 1727 * <li>Particularly important to E&P industry.</li> 1728 * </ul> 1729 * 1730 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1731 */ 1732 @Test 1733 public void testOSGB1936() throws FactoryException { 1734 important = true; 1735 name = "OSGB 1936"; 1736 projectionNames = new String[] {"TM"}; 1737 datumCode = 6277; 1738 createAndVerifyProjectedCRS(27700); 1739 } 1740 1741 /** 1742 * Tests “PSD93”-based projected CRS creation from the factory. 1743 * 1744 * <ul> 1745 * <li>Projected CRS codes: <b>3440</b></li> 1746 * <li>Geographic CRS name: <b>PSD93</b></li> 1747 * <li>Projection names (informative): <b>UTM</b></li> 1748 * <li>Particularly important to E&P industry.</li> 1749 * </ul> 1750 * 1751 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1752 */ 1753 @Test 1754 public void testPSD93() throws FactoryException { 1755 important = true; 1756 name = "PSD93"; 1757 projectionNames = new String[] {"UTM"}; 1758 datumCode = 6134; 1759 createAndVerifyProjectedCRS(3440); 1760 } 1761 1762 /** 1763 * Tests “Pointe Noire”-based projected CRS creation from the factory. 1764 * 1765 * <ul> 1766 * <li>Projected CRS codes: <b>28232</b></li> 1767 * <li>Geographic CRS name: <b>Pointe Noire</b></li> 1768 * <li>Projection names (informative): <b>UTM</b></li> 1769 * <li>Particularly important to E&P industry.</li> 1770 * </ul> 1771 * 1772 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1773 */ 1774 @Test 1775 public void testPointeNoire() throws FactoryException { 1776 important = true; 1777 name = "Pointe Noire"; 1778 projectionNames = new String[] {"UTM"}; 1779 datumCode = 6282; 1780 createAndVerifyProjectedCRS(28232); 1781 } 1782 1783 /** 1784 * Tests “POSGAR 94”-based projected CRS creation from the factory. 1785 * 1786 * <ul> 1787 * <li>Projected CRS codes: <b>22181</b>, <b>22182</b>, <b>22183</b>, <b>22184</b>, <b>22185</b>, <b>22186</b>, <b>22187</b></li> 1788 * <li>Geographic CRS name: <b>POSGAR 94</b></li> 1789 * <li>Projection names (informative): <b>Argentina zones</b></li> 1790 * <li>Particularly important to E&P industry.</li> 1791 * </ul> 1792 * 1793 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1794 */ 1795 @Test 1796 public void testPOSGAR94() throws FactoryException { 1797 important = true; 1798 name = "POSGAR 94"; 1799 projectionNames = new String[] {"Argentina zones"}; 1800 datumCode = 6694; 1801 isNorthAxisFirst = true; 1802 for (int code = 22181; code <= 22187; code++) { // Loop over 7 codes 1803 createAndVerifyProjectedCRS(code); 1804 } 1805 } 1806 1807 /** 1808 * Tests “POSGAR 98”-based projected CRS creation from the factory. 1809 * 1810 * <ul> 1811 * <li>Projected CRS codes: <b>22171</b>, <b>22172</b>, <b>22173</b>, <b>22174</b>, <b>22175</b>, <b>22176</b>, <b>22177</b></li> 1812 * <li>Geographic CRS name: <b>POSGAR 98</b></li> 1813 * <li>Projection names (informative): <b>Argentina zones</b></li> 1814 * <li>Particularly important to E&P industry.</li> 1815 * </ul> 1816 * 1817 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1818 */ 1819 @Test 1820 public void testPOSGAR98() throws FactoryException { 1821 important = true; 1822 name = "POSGAR 98"; 1823 projectionNames = new String[] {"Argentina zones"}; 1824 datumCode = 6190; 1825 isNorthAxisFirst = true; 1826 for (int code = 22171; code <= 22177; code++) { // Loop over 7 codes 1827 createAndVerifyProjectedCRS(code); 1828 } 1829 } 1830 1831 /** 1832 * Tests “PRS92”-based projected CRS creation from the factory. 1833 * 1834 * <ul> 1835 * <li>Projected CRS codes: <b>3121</b>, <b>3122</b>, <b>3123</b>, <b>3124</b>, <b>3125</b></li> 1836 * <li>Geographic CRS name: <b>PRS92</b></li> 1837 * <li>Projection names (informative): <b>Philippine zones</b></li> 1838 * <li>Particularly important to E&P industry.</li> 1839 * </ul> 1840 * 1841 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1842 */ 1843 @Test 1844 public void testPRS92() throws FactoryException { 1845 important = true; 1846 name = "PRS92"; 1847 projectionNames = new String[] {"Philippine zones"}; 1848 datumCode = 6683; 1849 for (int code = 3121; code <= 3125; code++) { // Loop over 5 codes 1850 createAndVerifyProjectedCRS(code); 1851 } 1852 } 1853 1854 /** 1855 * Tests “PSAD56”-based projected CRS creation from the factory. 1856 * 1857 * <ul> 1858 * <li>Projected CRS codes: <b>24817</b>, <b>24818</b>, <b>24819</b>, <b>24820</b>, <b>24877</b>, <b>24878</b>, 1859 * <b>24879</b>, <b>24891</b>, <b>24892</b>, <b>24893</b></li> 1860 * <li>Geographic CRS name: <b>PSAD56</b></li> 1861 * <li>Projection names (informative): <b>UTM</b>, <b>Peru zones</b></li> 1862 * <li>Particularly important to E&P industry.</li> 1863 * </ul> 1864 * 1865 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1866 */ 1867 @Test 1868 public void testPSAD56() throws FactoryException { 1869 important = true; 1870 name = "PSAD56"; 1871 projectionNames = new String[] {"UTM", "Peru zones"}; 1872 datumCode = 6248; 1873 for (int code = 24817; code <= 24820; code++) { // Loop over 4 codes 1874 createAndVerifyProjectedCRS(code); 1875 } 1876 createAndVerifyProjectedCRS(24877); 1877 createAndVerifyProjectedCRS(24878); 1878 createAndVerifyProjectedCRS(24879); 1879 createAndVerifyProjectedCRS(24891); 1880 createAndVerifyProjectedCRS(24892); 1881 createAndVerifyProjectedCRS(24893); 1882 } 1883 1884 /** 1885 * Tests “Pulkovo 1942”-based projected CRS creation from the factory. 1886 * 1887 * <ul> 1888 * <li>Projected CRS codes: <b>28409</b>, <b>28416</b>, <b>28424</b></li> 1889 * <li>Geographic CRS name: <b>Pulkovo 1942</b></li> 1890 * <li>Projection names (informative): <b>6-degree Gauss-Kruger</b></li> 1891 * <li>Specific usage / Remarks: <b>Check axes order and abbreviations</b></li> 1892 * <li>Particularly important to E&P industry.</li> 1893 * </ul> 1894 * 1895 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1896 */ 1897 @Test 1898 public void testPulkovo1942() throws FactoryException { 1899 important = true; 1900 name = "Pulkovo 1942"; 1901 projectionNames = new String[] {"6-degree Gauss-Kruger"}; 1902 datumCode = 6284; 1903 isNorthAxisFirst = true; 1904 createAndVerifyProjectedCRS(28409); 1905 createAndVerifyProjectedCRS(28416); 1906 createAndVerifyProjectedCRS(28424); 1907 } 1908 1909 /** 1910 * Tests “Pulkovo 1942(58)”-based projected CRS creation from the factory. 1911 * 1912 * <ul> 1913 * <li>Projected CRS codes: <b>3334</b>, <b>3335</b>, <b>3844</b></li> 1914 * <li>Geographic CRS name: <b>Pulkovo 1942(58)</b></li> 1915 * <li>Projection names (informative): <b>6-degree Gauss-Kruger</b>, <b>Stereo70</b></li> 1916 * <li>Specific usage / Remarks: <b>Check axes order and abbreviations</b></li> 1917 * <li>Particularly important to E&P industry.</li> 1918 * </ul> 1919 * 1920 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1921 */ 1922 @Test 1923 public void testPulkovo1942_58() throws FactoryException { 1924 important = true; 1925 name = "Pulkovo 1942(58)"; 1926 projectionNames = new String[] {"6-degree Gauss-Kruger", "Stereo70"}; 1927 datumCode = 6179; 1928 isNorthAxisFirst = true; 1929 createAndVerifyProjectedCRS(3334); 1930 createAndVerifyProjectedCRS(3335); 1931 createAndVerifyProjectedCRS(3844); 1932 } 1933 1934 /** 1935 * Tests “Pulkovo 1942(83)”-based projected CRS creation from the factory. 1936 * 1937 * <ul> 1938 * <li>Projected CRS codes: <b>3836</b></li> 1939 * <li>Geographic CRS name: <b>Pulkovo 1942(83)</b></li> 1940 * <li>Projection names (informative): <b>6-degree Gauss-Kruger</b></li> 1941 * <li>Specific usage / Remarks: <b>Check axes order and abbreviations</b></li> 1942 * <li>Particularly important to E&P industry.</li> 1943 * </ul> 1944 * 1945 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1946 */ 1947 @Test 1948 public void testPulkovo1942_83() throws FactoryException { 1949 important = true; 1950 name = "Pulkovo 1942(83)"; 1951 projectionNames = new String[] {"6-degree Gauss-Kruger"}; 1952 datumCode = 6178; 1953 isNorthAxisFirst = true; 1954 createAndVerifyProjectedCRS(3836); 1955 } 1956 1957 /** 1958 * Tests “Qatar 1948”-based projected CRS creation from the factory. 1959 * 1960 * <ul> 1961 * <li>Projected CRS codes: <b>2099</b></li> 1962 * <li>Geographic CRS name: <b>Qatar 1948</b></li> 1963 * <li>Projection names (informative): <b>Qatar Grid</b></li> 1964 * <li>Particularly important to E&P industry.</li> 1965 * </ul> 1966 * 1967 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1968 */ 1969 @Test 1970 public void testQatar1948() throws FactoryException { 1971 important = true; 1972 name = "Qatar 1948"; 1973 projectionNames = new String[] {"Qatar Grid"}; 1974 datumCode = 6286; 1975 createAndVerifyProjectedCRS(2099); 1976 } 1977 1978 /** 1979 * Tests “Qatar 1974”-based projected CRS creation from the factory. 1980 * 1981 * <ul> 1982 * <li>Projected CRS codes: <b>28600</b></li> 1983 * <li>Geographic CRS name: <b>Qatar 1974</b></li> 1984 * <li>Projection names (informative): <b>Qatar National Grid</b></li> 1985 * <li>Particularly important to E&P industry.</li> 1986 * </ul> 1987 * 1988 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 1989 */ 1990 @Test 1991 public void testQatar1974() throws FactoryException { 1992 important = true; 1993 name = "Qatar 1974"; 1994 projectionNames = new String[] {"Qatar National Grid"}; 1995 datumCode = 6285; 1996 createAndVerifyProjectedCRS(28600); 1997 } 1998 1999 /** 2000 * Tests “QND95”-based projected CRS creation from the factory. 2001 * 2002 * <ul> 2003 * <li>Projected CRS codes: <b>2932</b></li> 2004 * <li>Geographic CRS name: <b>QND95</b></li> 2005 * <li>Projection names (informative): <b>Qatar National Grid</b></li> 2006 * <li>Particularly important to E&P industry.</li> 2007 * </ul> 2008 * 2009 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2010 */ 2011 @Test 2012 public void testQND95() throws FactoryException { 2013 important = true; 2014 name = "QND95"; 2015 projectionNames = new String[] {"Qatar National Grid"}; 2016 datumCode = 6614; 2017 createAndVerifyProjectedCRS(2932); 2018 } 2019 2020 /** 2021 * Tests “REGVEN”-based projected CRS creation from the factory. 2022 * 2023 * <ul> 2024 * <li>Projected CRS codes: <b>2201</b>, <b>2202</b>, <b>2203</b></li> 2025 * <li>Geographic CRS name: <b>REGVEN</b></li> 2026 * <li>Projection names (informative): <b>UTM</b></li> 2027 * <li>Particularly important to E&P industry.</li> 2028 * </ul> 2029 * 2030 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2031 */ 2032 @Test 2033 public void testREGVEN() throws FactoryException { 2034 important = true; 2035 name = "REGVEN"; 2036 projectionNames = new String[] {"UTM"}; 2037 datumCode = 6189; 2038 createAndVerifyProjectedCRS(2201); 2039 createAndVerifyProjectedCRS(2202); 2040 createAndVerifyProjectedCRS(2203); 2041 } 2042 2043 /** 2044 * Tests “RGF93”-based projected CRS creation from the factory. 2045 * 2046 * <ul> 2047 * <li>Projected CRS codes: <b>2154</b></li> 2048 * <li>Geographic CRS name: <b>RGF93</b></li> 2049 * <li>Projection names (informative): <b>Lambert 93</b></li> 2050 * <li>Particularly important to E&P industry.</li> 2051 * </ul> 2052 * 2053 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2054 */ 2055 @Test 2056 public void testRGF93() throws FactoryException { 2057 important = true; 2058 name = "RGF93"; 2059 projectionNames = new String[] {"Lambert 93"}; 2060 datumCode = 6171; 2061 createAndVerifyProjectedCRS(2154); 2062 } 2063 2064 /** 2065 * Tests “SAD69”-based projected CRS creation from the factory. 2066 * 2067 * <ul> 2068 * <li>Projected CRS codes: <b>29101</b>, <b>29194</b></li> 2069 * <li>Geographic CRS name: <b>SAD69</b></li> 2070 * <li>Projection names (informative): <b>UTM</b>, <b>Brazil Polyconic</b></li> 2071 * <li>Particularly important to E&P industry.</li> 2072 * </ul> 2073 * 2074 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2075 */ 2076 @Test 2077 public void testSAD69() throws FactoryException { 2078 important = true; 2079 name = "SAD69"; 2080 projectionNames = new String[] {"UTM", "Brazil Polyconic"}; 2081 datumCode = 6618; 2082 createAndVerifyProjectedCRS(29101); 2083 createAndVerifyProjectedCRS(29194); 2084 } 2085 2086 /** 2087 * Tests “Schwarzeck”-based projected CRS creation from the factory. 2088 * 2089 * <ul> 2090 * <li>Projected CRS codes: <b>29371</b>, <b>29333</b></li> 2091 * <li>Geographic CRS name: <b>Schwarzeck</b></li> 2092 * <li>Projection names (informative): <b>Lo/22 zones</b>, <b>UTM</b></li> 2093 * <li>Particularly important to E&P industry.</li> 2094 * </ul> 2095 * 2096 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2097 */ 2098 @Test 2099 public void testSchwarzeck() throws FactoryException { 2100 important = true; 2101 name = "Schwarzeck"; 2102 projectionNames = new String[] {"Lo/22 zones", "UTM"}; 2103 datumCode = 6293; 2104 isWestOrientated = true; 2105 isSouthOrientated = true; 2106 createAndVerifyProjectedCRS(29371); 2107 isWestOrientated = false; 2108 isSouthOrientated = false; 2109 createAndVerifyProjectedCRS(29333); 2110 } 2111 2112 /** 2113 * Tests “SIRGAS 1995”-based projected CRS creation from the factory. 2114 * 2115 * <ul> 2116 * <li>Projected CRS codes: <b>31997</b></li> 2117 * <li>Geographic CRS name: <b>SIRGAS 1995</b></li> 2118 * <li>Projection names (informative): <b>UTM</b></li> 2119 * <li>Particularly important to E&P industry.</li> 2120 * </ul> 2121 * 2122 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2123 */ 2124 @Test 2125 public void testSIRGAS1995() throws FactoryException { 2126 important = true; 2127 name = "SIRGAS 1995"; 2128 projectionNames = new String[] {"UTM"}; 2129 datumCode = 6170; 2130 createAndVerifyProjectedCRS(31997); 2131 } 2132 2133 /** 2134 * Tests “SIRGAS 2000”-based projected CRS creation from the factory. 2135 * 2136 * <ul> 2137 * <li>Projected CRS codes: <b>31982</b></li> 2138 * <li>Geographic CRS name: <b>SIRGAS 2000</b></li> 2139 * <li>Projection names (informative): <b>UTM</b></li> 2140 * <li>Particularly important to E&P industry.</li> 2141 * </ul> 2142 * 2143 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2144 */ 2145 @Test 2146 public void testSIRGAS2000() throws FactoryException { 2147 important = true; 2148 name = "SIRGAS 2000"; 2149 projectionNames = new String[] {"UTM"}; 2150 datumCode = 6674; 2151 createAndVerifyProjectedCRS(31982); 2152 } 2153 2154 /** 2155 * Tests “Tananarive”-based projected CRS creation from the factory. 2156 * 2157 * <ul> 2158 * <li>Projected CRS codes: <b>29738</b></li> 2159 * <li>Geographic CRS name: <b>Tananarive</b></li> 2160 * <li>Projection names (informative): <b>UTM</b></li> 2161 * <li>Particularly important to E&P industry.</li> 2162 * </ul> 2163 * 2164 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2165 */ 2166 @Test 2167 public void testTananarive() throws FactoryException { 2168 important = true; 2169 name = "Tananarive"; 2170 projectionNames = new String[] {"UTM"}; 2171 datumCode = 6297; 2172 createAndVerifyProjectedCRS(29738); 2173 } 2174 2175 /** 2176 * Tests “Tananarive (Paris)”-based projected CRS creation from the factory. 2177 * 2178 * <ul> 2179 * <li>Projected CRS codes: <b>29701</b>, <b>29702</b></li> 2180 * <li>Geographic CRS name: <b>Tananarive (Paris)</b></li> 2181 * <li>Projection names (informative): <b>Laborde</b></li> 2182 * <li>Particularly important to E&P industry.</li> 2183 * </ul> 2184 * 2185 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2186 */ 2187 @Test 2188 public void testTananarive_Paris() throws FactoryException { 2189 important = true; 2190 name = "Tananarive (Paris)"; 2191 projectionNames = new String[] {"Laborde"}; 2192 datumCode = 6810; 2193 createAndVerifyProjectedCRS(29701); 2194 createAndVerifyProjectedCRS(29702); 2195 } 2196 2197 /** 2198 * Tests “TC(1948)”-based projected CRS creation from the factory. 2199 * 2200 * <ul> 2201 * <li>Projected CRS codes: <b>30339</b></li> 2202 * <li>Geographic CRS name: <b>TC(1948)</b></li> 2203 * <li>Projection names (informative): <b>UTM</b></li> 2204 * <li>Particularly important to E&P industry.</li> 2205 * </ul> 2206 * 2207 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2208 */ 2209 @Test 2210 public void testTC_1948() throws FactoryException { 2211 important = true; 2212 name = "TC(1948)"; 2213 projectionNames = new String[] {"UTM"}; 2214 datumCode = 6303; 2215 createAndVerifyProjectedCRS(30339); 2216 } 2217 2218 /** 2219 * Tests “Timbalai 1948”-based projected CRS creation from the factory. 2220 * 2221 * <ul> 2222 * <li>Projected CRS codes: <b>29850</b>, <b>29871</b>, <b>29872</b>, <b>29873</b></li> 2223 * <li>Geographic CRS name: <b>Timbalai 1948</b></li> 2224 * <li>Projection names (informative): <b>RSO</b>, <b>UTM</b></li> 2225 * <li>Particularly important to E&P industry.</li> 2226 * </ul> 2227 * 2228 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2229 */ 2230 @Test 2231 public void testTimbalai() throws FactoryException { 2232 important = true; 2233 name = "Timbalai 1948"; 2234 projectionNames = new String[] {"RSO", "UTM"}; 2235 datumCode = 6298; 2236 createAndVerifyProjectedCRS(29850); 2237 createAndVerifyProjectedCRS(29871); 2238 createAndVerifyProjectedCRS(29872); 2239 createAndVerifyProjectedCRS(29873); 2240 } 2241 2242 /** 2243 * Tests “Trinidad 1903”-based projected CRS creation from the factory. 2244 * 2245 * <ul> 2246 * <li>Projected CRS codes: <b>30200</b>, <b>2314</b></li> 2247 * <li>Geographic CRS name: <b>Trinidad 1903</b></li> 2248 * <li>Projection names (informative): <b>Cassini</b></li> 2249 * <li>Particularly important to E&P industry.</li> 2250 * </ul> 2251 * 2252 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2253 */ 2254 @Test 2255 public void testTrinidad() throws FactoryException { 2256 important = true; 2257 name = "Trinidad 1903"; 2258 projectionNames = new String[] {"Cassini"}; 2259 datumCode = 6302; 2260 createAndVerifyProjectedCRS(30200); 2261 createAndVerifyProjectedCRS(2314); 2262 } 2263 2264 /** 2265 * Tests “WGS 72BE”-based projected CRS creation from the factory. 2266 * 2267 * <ul> 2268 * <li>Projected CRS codes: <b>32488</b></li> 2269 * <li>Geographic CRS name: <b>WGS 72BE</b></li> 2270 * <li>Projection names (informative): <b>UTM</b></li> 2271 * <li>Particularly important to E&P industry.</li> 2272 * </ul> 2273 * 2274 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2275 */ 2276 @Test 2277 public void testWGS72BE() throws FactoryException { 2278 important = true; 2279 name = "WGS 72BE"; 2280 projectionNames = new String[] {"UTM"}; 2281 datumCode = 6324; 2282 createAndVerifyProjectedCRS(32488); 2283 } 2284 2285 /** 2286 * Tests “WGS 84”-based projected CRS creation from the factory. 2287 * 2288 * <ul> 2289 * <li>Projected CRS codes: <b>3832</b>, <b>32601</b>, <b>32602</b>, <b>32603</b>, <b>32604</b>, <b>32605</b>, 2290 * <b>32606</b>, <b>32607</b>, <b>32608</b>, <b>32609</b>, <b>32610</b>, <i>…110 more</i></li> 2291 * <li>Geographic CRS name: <b>WGS 84</b></li> 2292 * <li>Projection names (informative): <b>UTM</b></li> 2293 * <li>Specific usage / Remarks: <b>Check axes abbreviations</b></li> 2294 * <li>Particularly important to E&P industry.</li> 2295 * </ul> 2296 * 2297 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2298 */ 2299 @Test 2300 public void testWGS84() throws FactoryException { 2301 important = true; 2302 name = "WGS 84"; 2303 projectionNames = new String[] {"UTM"}; 2304 datumCode = 6326; 2305 createAndVerifyProjectedCRS(3832); 2306 for (int code = 32601; code <= 32660; code++) { // Loop over 60 codes 2307 createAndVerifyProjectedCRS(code); 2308 } 2309 for (int code = 32701; code <= 32760; code++) { // Loop over 60 codes 2310 createAndVerifyProjectedCRS(code); 2311 } 2312 } 2313 2314 /** 2315 * Tests “Xian 1980”-based projected CRS creation from the factory. 2316 * 2317 * <ul> 2318 * <li>Projected CRS codes: <b>2338</b>, <b>2339</b>, <b>2340</b>, <b>2341</b>, <b>2342</b>, <b>2343</b>, <b>2344</b>, <b>2345</b>, <b>2346</b>, <b>2347</b>, <i>…1 more</i></li> 2319 * <li>Geographic CRS name: <b>Xian 1980</b></li> 2320 * <li>Projection names (informative): <b>6-degree Gauss-Kruger</b></li> 2321 * <li>Specific usage / Remarks: <b>Check axes order and abbreviations</b></li> 2322 * <li>Particularly important to E&P industry.</li> 2323 * </ul> 2324 * 2325 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2326 */ 2327 @Test 2328 public void testXian() throws FactoryException { 2329 important = true; 2330 name = "Xian 1980"; 2331 projectionNames = new String[] {"6-degree Gauss-Kruger"}; 2332 datumCode = 6610; 2333 isNorthAxisFirst = true; 2334 for (int code = 2338; code <= 2348; code++) { // Loop over 11 codes 2335 createAndVerifyProjectedCRS(code); 2336 } 2337 } 2338 2339 /** 2340 * Tests “Yemen NGN96”-based projected CRS creation from the factory. 2341 * 2342 * <ul> 2343 * <li>Projected CRS codes: <b>2089</b>, <b>2090</b></li> 2344 * <li>Geographic CRS name: <b>Yemen NGN96</b></li> 2345 * <li>Projection names (informative): <b>UTM</b></li> 2346 * <li>Particularly important to E&P industry.</li> 2347 * </ul> 2348 * 2349 * @throws FactoryException if an error occurred while creating the projected CRS from the EPSG code. 2350 */ 2351 @Test 2352 public void testYemen() throws FactoryException { 2353 important = true; 2354 name = "Yemen NGN96"; 2355 projectionNames = new String[] {"UTM"}; 2356 datumCode = 6163; 2357 createAndVerifyProjectedCRS(2089); 2358 createAndVerifyProjectedCRS(2090); 2359 } 2360}