Changeset 5236 in josm for trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java
- Timestamp:
- 2012-05-12T23:27:39+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java
r5073 r5236 2 2 package org.openstreetmap.josm.data.projection; 3 3 4 import static org.openstreetmap.josm.tools.I18n.tr;5 4 6 5 import java.io.BufferedReader; … … 12 11 import java.io.IOException; 13 12 import java.util.ArrayList; 14 import java.util.Arrays;15 13 import java.util.Collection; 16 import java.util.Collections;17 14 import java.util.HashMap; 18 15 import java.util.HashSet; 19 import java.util.LinkedHash Map;16 import java.util.LinkedHashSet; 20 17 import java.util.List; 21 18 import java.util.Map; … … 31 28 import org.openstreetmap.josm.data.coor.EastNorth; 32 29 import org.openstreetmap.josm.data.coor.LatLon; 33 import org.openstreetmap.josm.tools.Utils; 30 import org.openstreetmap.josm.gui.preferences.projection.ProjectionChoice; 31 import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference; 34 32 import org.openstreetmap.josm.tools.Pair; 35 33 … … 58 56 public static void main(String[] args) throws IOException, FileNotFoundException { 59 57 setUp(); 60 Map<String, Projection> allCodes = new LinkedHashMap<String, Projection>(); 61 List<Projection> projs = Projections.getProjections(); 62 for (Projection p: projs) { 63 if (p instanceof ProjectionSubPrefs) { 64 for (String code : ((ProjectionSubPrefs)p).allCodes()) { 65 ProjectionSubPrefs projSub = recreateProj((ProjectionSubPrefs)p); 66 Collection<String> prefs = projSub.getPreferencesFromCode(code); 67 projSub.setPreferences(prefs); 68 allCodes.put(code, projSub); 69 } 70 } else { 71 allCodes.put(p.toCode(), p); 58 59 Map<String, Projection> supportedCodesMap = new HashMap<String, Projection>(); 60 for (ProjectionChoice pc : ProjectionPreference.getProjectionChoices()) { 61 for (String code : pc.allCodes()) { 62 Collection<String> pref = pc.getPreferencesFromCode(code); 63 pc.setPreferences(pref); 64 Projection p = pc.getProjection(); 65 supportedCodesMap.put(code, p); 72 66 } 73 67 } … … 77 71 prevData = readData(); 78 72 } 79 Map<String,TestData> prevCodes = new HashMap<String,TestData>();73 Map<String,TestData> prevCodesMap = new HashMap<String,TestData>(); 80 74 for (TestData data : prevData) { 81 prevCodes.put(data.code, data); 75 prevCodesMap.put(data.code, data); 76 } 77 78 Set<String> codesToWrite = new LinkedHashSet<String>(); 79 for (TestData data : prevData) { 80 if (supportedCodesMap.containsKey(data.code)) { 81 codesToWrite.add(data.code); 82 } 83 } 84 for (String code : supportedCodesMap.keySet()) { 85 if (!codesToWrite.contains(code)) { 86 codesToWrite.add(code); 87 } 82 88 } 83 89 … … 86 92 out.write("# Data for test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java\n"); 87 93 out.write("# Format: 1. Projection code; 2. lat/lon; 3. lat/lon projected -> east/north; 4. east/north (3.) inverse projected\n"); 88 for (Entry<String, Projection> e : allCodes.entrySet()) { 89 Projection proj = e.getValue(); 94 for (Entry<String, Projection> e : supportedCodesMap.entrySet()) { 95 } 96 for (String code : codesToWrite) { 97 Projection proj = supportedCodesMap.get(code); 90 98 Bounds b = proj.getWorldBoundsLatLon(); 91 99 double lat, lon; 92 TestData prev = prevCodes .get(proj.toCode());100 TestData prev = prevCodesMap.get(proj.toCode()); 93 101 if (prev != null) { 94 102 lat = prev.ll.lat(); … … 103 111 } 104 112 out.close(); 105 }106 107 private static ProjectionSubPrefs recreateProj(ProjectionSubPrefs proj) {108 try {109 return proj.getClass().newInstance();110 } catch (Exception e) {111 throw new IllegalStateException(112 tr("Cannot instantiate projection ''{0}''", proj.getClass().toString()), e);113 }114 113 } 115 114 … … 163 162 StringBuilder fail = new StringBuilder(); 164 163 165 List<Projection> projs = Projections.getProjections(); 166 for (Projection p: projs) { 167 Collection<String> codes = null; 168 if (p instanceof ProjectionSubPrefs) { 169 codes = Arrays.asList(((ProjectionSubPrefs)p).allCodes()); 170 } else { 171 codes = Collections.singleton(p.toCode()); 172 } 173 for (String code : codes) { 164 for (ProjectionChoice pc : ProjectionPreference.getProjectionChoices()) { 165 for (String code : pc.allCodes()) { 174 166 if (!dataCodes.contains(code)) { 175 167 fail.append("Did not find projection "+code+" in test data!\n");
Note:
See TracChangeset
for help on using the changeset viewer.