- Framework for reading draft rankings. Currently unused.

This commit is contained in:
mcrawford620
2012-07-27 22:34:35 +00:00
parent 2462d49de3
commit 12df2b7e5f
6 changed files with 605 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
package forge.game.limited;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import forge.error.ErrorViewer;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
/**
* ReadDraftRankings class.
*
*/
public class ReadDraftRankings {
/** Constant <code>comment="//"</code>. */
private static final String COMMENT = "//";
private Map<String, List<String>> draftRankings;
/**
* <p>
* Constructor for ReadPriceList.
* </p>
*/
public ReadDraftRankings() {
this.setup();
}
/**
* <p>
* setup.
* </p>
*/
private void setup() {
this.draftRankings = this.readFile(ForgeProps.getFile(NewConstants.Draft.RANKINGS));
} // setup()
/**
* <p>
* readFile.
* </p>
*
* @param file
* a {@link java.io.File} object.
* @return a {@link java.util.Map} object.
*/
private Map<String, List<String>> readFile(final File file) {
BufferedReader in;
final Map<String, List<String>> map = new HashMap<String, List<String>>();
try {
in = new BufferedReader(new FileReader(file));
String line = in.readLine();
// stop reading if end of file or blank line is read
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 name = s[1].trim();
//final String rarity = s[2].trim();
final String edition = s[3].trim();
if (!map.containsKey(edition)) {
map.put(edition, new ArrayList<String>());
}
map.get(edition).add(name);
}
line = in.readLine();
} // if
} catch (final Exception ex) {
ErrorViewer.showError(ex);
throw new RuntimeException("ReadDraftRankings : readFile error, " + ex);
}
return map;
} // readFile()
/**
* <p>
* getDraftRankings.
* </p>
*
* @return a {@link java.util.Map} object.
*/
public final Map<String, List<String>> getDraftRankings() {
return this.draftRankings;
}
}

View File

@@ -171,6 +171,8 @@ public final class NewConstants {
public static final String UNCOMMON = "draft/uncommon";
/** Property path for a rare card. */
public static final String RARE = "draft/rare";
/** Path for draft rankings. */
public static final String RANKINGS = "draft/rankings";
}
/**

View File

@@ -0,0 +1,32 @@
package forge;
import java.util.List;
import java.util.Map;
import junit.framework.Assert;
import org.testng.annotations.Test;
import forge.game.limited.ReadDraftRankings;
/**
* Tests for DeckWants.
*
*/
@Test(enabled = true)
public class ReadDraftRankingsTest {
/**
* Card test.
*/
@Test(enabled = true)
void test() {
ReadDraftRankings rdr = new ReadDraftRankings();
Assert.assertNotNull(rdr);
Map<String, List<String>> 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));
}
}