mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
- Changes to reading in draft rankings.
This commit is contained in:
@@ -3,11 +3,11 @@ package forge.game.limited;
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.esotericsoftware.minlog.Log;
|
||||||
|
|
||||||
import forge.error.ErrorViewer;
|
import forge.error.ErrorViewer;
|
||||||
import forge.properties.ForgeProps;
|
import forge.properties.ForgeProps;
|
||||||
import forge.properties.NewConstants;
|
import forge.properties.NewConstants;
|
||||||
@@ -21,7 +21,7 @@ public class ReadDraftRankings {
|
|||||||
/** Constant <code>comment="//"</code>. */
|
/** Constant <code>comment="//"</code>. */
|
||||||
private static final String COMMENT = "//";
|
private static final String COMMENT = "//";
|
||||||
|
|
||||||
private Map<String, List<String>> draftRankings;
|
private Map<String, Map<String, Integer>> draftRankings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -50,9 +50,9 @@ public class ReadDraftRankings {
|
|||||||
* a {@link java.io.File} object.
|
* a {@link java.io.File} object.
|
||||||
* @return a {@link java.util.Map} object.
|
* @return a {@link java.util.Map} object.
|
||||||
*/
|
*/
|
||||||
private Map<String, List<String>> readFile(final File file) {
|
private Map<String, Map<String, Integer>> readFile(final File file) {
|
||||||
BufferedReader in;
|
BufferedReader in;
|
||||||
final Map<String, List<String>> map = new HashMap<String, List<String>>();
|
final Map<String, Map<String, Integer>> map = new HashMap<String, Map<String, Integer>>();
|
||||||
try {
|
try {
|
||||||
|
|
||||||
in = new BufferedReader(new FileReader(file));
|
in = new BufferedReader(new FileReader(file));
|
||||||
@@ -62,15 +62,20 @@ public class ReadDraftRankings {
|
|||||||
while ((line != null) && (line.trim().length() != 0)) {
|
while ((line != null) && (line.trim().length() != 0)) {
|
||||||
if (!line.startsWith(ReadDraftRankings.COMMENT)) {
|
if (!line.startsWith(ReadDraftRankings.COMMENT)) {
|
||||||
final String[] s = line.split(",");
|
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 name = s[1].trim();
|
||||||
//final String rarity = s[2].trim();
|
// final String rarity = s[2].trim();
|
||||||
final String edition = s[3].trim();
|
final String edition = s[3].trim();
|
||||||
|
|
||||||
|
try {
|
||||||
|
final int rank = Integer.parseInt(rankStr);
|
||||||
if (!map.containsKey(edition)) {
|
if (!map.containsKey(edition)) {
|
||||||
map.put(edition, new ArrayList<String>());
|
map.put(edition, new HashMap<String, Integer>());
|
||||||
|
}
|
||||||
|
map.get(edition).put(name, rank);
|
||||||
|
} catch (NumberFormatException nfe) {
|
||||||
|
Log.warn("NumberFormatException: " + nfe.getMessage());
|
||||||
}
|
}
|
||||||
map.get(edition).add(name);
|
|
||||||
}
|
}
|
||||||
line = in.readLine();
|
line = in.readLine();
|
||||||
} // if
|
} // if
|
||||||
@@ -83,14 +88,12 @@ public class ReadDraftRankings {
|
|||||||
return map;
|
return map;
|
||||||
} // readFile()
|
} // readFile()
|
||||||
|
|
||||||
/**
|
public Integer getRanking(String cardName, String edition) {
|
||||||
* <p>
|
Integer rank = null;
|
||||||
* getDraftRankings.
|
if (draftRankings.containsKey(edition)) {
|
||||||
* </p>
|
String safeName = cardName.replaceAll("[^A-Za-z ]", "");
|
||||||
*
|
rank = draftRankings.get(edition).get(safeName);
|
||||||
* @return a {@link java.util.Map} object.
|
}
|
||||||
*/
|
return rank;
|
||||||
public final Map<String, List<String>> getDraftRankings() {
|
|
||||||
return this.draftRankings;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
package forge;
|
package forge;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import forge.game.limited.ReadDraftRankings;
|
import forge.game.limited.ReadDraftRankings;
|
||||||
|
import forge.properties.ForgeProps;
|
||||||
|
import forge.properties.NewConstants;
|
||||||
|
import forge.util.FileUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for DeckWants.
|
* Tests for DeckWants.
|
||||||
@@ -23,10 +26,20 @@ public class ReadDraftRankingsTest {
|
|||||||
void test() {
|
void test() {
|
||||||
ReadDraftRankings rdr = new ReadDraftRankings();
|
ReadDraftRankings rdr = new ReadDraftRankings();
|
||||||
Assert.assertNotNull(rdr);
|
Assert.assertNotNull(rdr);
|
||||||
Map<String, List<String>> rankings = rdr.getDraftRankings();
|
|
||||||
Assert.assertNotNull(rankings);
|
List<String> cardLines = FileUtil
|
||||||
Assert.assertEquals("Garruk Primal Hunter", rankings.get("M13").get(0));
|
.readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/g", "garruk_primal_hunter.txt"));
|
||||||
Assert.assertEquals("Clone", rankings.get("M13").get(37));
|
Card c = CardReader.readCard(cardLines);
|
||||||
Assert.assertEquals("Tamiyo the Moon Sage", rankings.get("AVR").get(0));
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user