> draftRankings;
/**
*
@@ -50,9 +50,9 @@ public class ReadDraftRankings {
* a {@link java.io.File} object.
* @return a {@link java.util.Map} object.
*/
- private Map> readFile(final File file) {
+ private Map> readFile(final File file) {
BufferedReader in;
- final Map> map = new HashMap>();
+ final Map> map = new HashMap>();
try {
in = new BufferedReader(new FileReader(file));
@@ -62,15 +62,20 @@ public class ReadDraftRankings {
while ((line != null) && (line.trim().length() != 0)) {
if (!line.startsWith(ReadDraftRankings.COMMENT)) {
final String[] s = line.split(",");
- //final String rank = s[0].trim().substring(1);
+ final String rankStr = s[0].trim().substring(1);
final String name = s[1].trim();
- //final String rarity = s[2].trim();
+ // final String rarity = s[2].trim();
final String edition = s[3].trim();
- if (!map.containsKey(edition)) {
- map.put(edition, new ArrayList());
+ try {
+ final int rank = Integer.parseInt(rankStr);
+ if (!map.containsKey(edition)) {
+ map.put(edition, new HashMap());
+ }
+ map.get(edition).put(name, rank);
+ } catch (NumberFormatException nfe) {
+ Log.warn("NumberFormatException: " + nfe.getMessage());
}
- map.get(edition).add(name);
}
line = in.readLine();
} // if
@@ -83,14 +88,12 @@ public class ReadDraftRankings {
return map;
} // readFile()
- /**
- *
- * getDraftRankings.
- *
- *
- * @return a {@link java.util.Map} object.
- */
- public final Map> getDraftRankings() {
- return this.draftRankings;
+ public Integer getRanking(String cardName, String edition) {
+ Integer rank = null;
+ if (draftRankings.containsKey(edition)) {
+ String safeName = cardName.replaceAll("[^A-Za-z ]", "");
+ rank = draftRankings.get(edition).get(safeName);
+ }
+ return rank;
}
}
diff --git a/src/test/java/forge/ReadDraftRankingsTest.java b/src/test/java/forge/ReadDraftRankingsTest.java
index dc0ec598eb5..31e725d6fdb 100644
--- a/src/test/java/forge/ReadDraftRankingsTest.java
+++ b/src/test/java/forge/ReadDraftRankingsTest.java
@@ -1,13 +1,16 @@
package forge;
+import java.io.File;
import java.util.List;
-import java.util.Map;
import junit.framework.Assert;
import org.testng.annotations.Test;
import forge.game.limited.ReadDraftRankings;
+import forge.properties.ForgeProps;
+import forge.properties.NewConstants;
+import forge.util.FileUtil;
/**
* Tests for DeckWants.
@@ -23,10 +26,20 @@ public class ReadDraftRankingsTest {
void test() {
ReadDraftRankings rdr = new ReadDraftRankings();
Assert.assertNotNull(rdr);
- Map> rankings = rdr.getDraftRankings();
- Assert.assertNotNull(rankings);
- Assert.assertEquals("Garruk Primal Hunter", rankings.get("M13").get(0));
- Assert.assertEquals("Clone", rankings.get("M13").get(37));
- Assert.assertEquals("Tamiyo the Moon Sage", rankings.get("AVR").get(0));
+
+ List cardLines = FileUtil
+ .readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/g", "garruk_primal_hunter.txt"));
+ Card c = CardReader.readCard(cardLines);
+ Assert.assertEquals(1, rdr.getRanking(c.getName(), "M13").intValue());
+
+ cardLines = FileUtil
+ .readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/c", "clone.txt"));
+ c = CardReader.readCard(cardLines);
+ Assert.assertEquals(38, rdr.getRanking(c.getName(), "M13").intValue());
+
+ cardLines = FileUtil
+ .readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/t", "tamiyo_the_moon_sage.txt"));
+ c = CardReader.readCard(cardLines);
+ Assert.assertEquals(1, rdr.getRanking(c.getName(), "AVR").intValue());
}
}