add test for non-standard booster generation

This commit is contained in:
Neil Gentleman 2015-11-19 23:43:12 -08:00
parent 96bc3172f5
commit 038d02e8d7
8 changed files with 122 additions and 3 deletions

View file

@ -27,19 +27,20 @@
*/
package mage.sets.arabiannights;
import mage.constants.Rarity;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public class Mountain1 extends mage.cards.basiclands.Mountain {
public Mountain1(UUID ownerId) {
super(ownerId, 91);
this.expansionSetCode = "ARN";
this.rarity = Rarity.COMMON;
}
public Mountain1(final Mountain1 card) {

View file

@ -27,6 +27,8 @@
*/
package mage.sets.masterseditionii;
import mage.constants.Rarity;
import java.util.UUID;
/**
@ -39,6 +41,7 @@ public class SnowCoveredForest extends mage.sets.iceage.SnowCoveredForest {
super(ownerId);
this.cardNumber = 245;
this.expansionSetCode = "ME2";
this.rarity = Rarity.LAND;
}
public SnowCoveredForest(final SnowCoveredForest card) {

View file

@ -27,6 +27,8 @@
*/
package mage.sets.masterseditionii;
import mage.constants.Rarity;
import java.util.UUID;
/**
@ -39,6 +41,7 @@ public class SnowCoveredIsland extends mage.sets.iceage.SnowCoveredIsland {
super(ownerId);
this.cardNumber = 242;
this.expansionSetCode = "ME2";
this.rarity = Rarity.LAND;
}
public SnowCoveredIsland(final SnowCoveredIsland card) {

View file

@ -27,6 +27,8 @@
*/
package mage.sets.masterseditionii;
import mage.constants.Rarity;
import java.util.UUID;
/**
@ -39,6 +41,7 @@ public class SnowCoveredMountain extends mage.sets.iceage.SnowCoveredMountain {
super(ownerId);
this.cardNumber = 244;
this.expansionSetCode = "ME2";
this.rarity = Rarity.LAND;
}
public SnowCoveredMountain(final SnowCoveredMountain card) {

View file

@ -27,6 +27,8 @@
*/
package mage.sets.masterseditionii;
import mage.constants.Rarity;
import java.util.UUID;
/**
@ -39,6 +41,7 @@ public class SnowCoveredPlains extends mage.sets.iceage.SnowCoveredPlains {
super(ownerId);
this.cardNumber = 241;
this.expansionSetCode = "ME2";
this.rarity = Rarity.LAND;
}
public SnowCoveredPlains(final SnowCoveredPlains card) {

View file

@ -27,6 +27,8 @@
*/
package mage.sets.masterseditionii;
import mage.constants.Rarity;
import java.util.UUID;
/**
@ -39,6 +41,7 @@ public class SnowCoveredSwamp extends mage.sets.iceage.SnowCoveredSwamp {
super(ownerId);
this.cardNumber = 243;
this.expansionSetCode = "ME2";
this.rarity = Rarity.LAND;
}
public SnowCoveredSwamp(final SnowCoveredSwamp card) {

View file

@ -0,0 +1,103 @@
package org.mage.test.sets;
import mage.cards.Card;
import mage.cards.repository.CardScanner;
import mage.sets.FateReforged;
import mage.sets.MastersEditionII;
import mage.sets.MastersEditionIV;
import org.junit.Before;
import org.junit.Test;
import org.mage.test.serverside.base.MageTestBase;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
*
* @author nigelzor
*/
public class BoosterGenerationTest extends MageTestBase {
@Before
public void setUp() {
CardScanner.scan();
}
private static final List<String> basics = Arrays.asList("Plains", "Island", "Swamp", "Mountain", "Forest");
@Test
public void testFateReforged() {
List<String> tapland = Arrays.asList(
"Bloodfell Caves", "Blossoming Sands", "Dismal Backwater", "Jungle Hollow", "Rugged Highlands",
"Scoured Barrens", "Swiftwater Cliffs", "Thornwood Falls", "Tranquil Cove", "Wind-Scarred Crag");
List<String> fetchland = Arrays.asList(
"Bloodstained Mire", "Flooded Strand", "Polluted Delta", "Windswept Heath", "Wooded Foothills");
List<Card> booster = FateReforged.getInstance().createBooster();
assertTrue(str(booster), contains(booster, tapland, "FRF") || contains(booster, fetchland, "KTK"));
assertFalse(str(booster), contains(booster, basics, null));
}
@Test
public void testMastersEditionII() {
List<String> snowCoveredLand = Arrays.asList(
"Snow-Covered Plains",
"Snow-Covered Island",
"Snow-Covered Swamp",
"Snow-Covered Mountain",
"Snow-Covered Forest"
);
List<Card> booster = MastersEditionII.getInstance().createBooster();
assertTrue(str(booster), contains(booster, snowCoveredLand, "ME2"));
assertFalse(str(booster), contains(booster, basics, null));
}
@Test
public void testMastersEditionIV() {
List<String> urzaLand = Arrays.asList(
"Urza's Mine",
"Urza's Power Plant",
"Urza's Tower"
);
List<Card> booster = MastersEditionIV.getInstance().createBooster();
assertTrue(str(booster), contains(booster, urzaLand, "ME4"));
assertFalse(str(booster), contains(booster, basics, null));
}
private static String str(List<Card> cards) {
StringBuilder sb = new StringBuilder("[");
Iterator<Card> iterator = cards.iterator();
while (iterator.hasNext()) {
Card next = iterator.next();
sb.append(next.getName());
if (iterator.hasNext()) {
sb.append(", ");
}
}
sb.append("] (").append(cards.size()).append(")");
return sb.toString();
}
private static boolean contains(List<Card> cards, List<String> names, String code) {
for (String name : names) {
if (contains(cards, name, code)) {
return true;
}
}
return false;
}
private static boolean contains(List<Card> cards, String name, String code) {
for (Card card : cards) {
if (card.getName().equals(name) && (code == null || card.getExpansionSetCode().equals(code))) {
return true;
}
}
return false;
}
}

View file

@ -58,7 +58,7 @@ public abstract class ExpansionSet implements Serializable {
protected int numBoosterSpecial;
protected int numBoosterLands;
protected int ratioBoosterSpecialLand = 0; // if > 0 basic lands are replaced with speical land in the ratio every X land is replaced by special land
protected int ratioBoosterSpecialLand = 0; // if > 0 basic lands are replaced with special land in the ratio every X land is replaced by special land
protected int numBoosterCommon;
protected int numBoosterUncommon;