From cd6a5c077874ac6baacc8b073195aaea81a1e247 Mon Sep 17 00:00:00 2001 From: Eduardo Pedroni Date: Sun, 28 Jun 2015 12:51:11 +0200 Subject: Made good progress with introspective sort, fixed ant build issue, ant builds are now done on a different bin directory --- test/Testest.java | 54 ++++ .../equalparts/test/cardbase/CardbaseSortTest.java | 301 ++++++++++++++++----- 2 files changed, 282 insertions(+), 73 deletions(-) create mode 100644 test/Testest.java (limited to 'test') diff --git a/test/Testest.java b/test/Testest.java new file mode 100644 index 0000000..016cbf4 --- /dev/null +++ b/test/Testest.java @@ -0,0 +1,54 @@ +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; + +import eu.equalparts.cardbase.data.Card; +import eu.equalparts.cardbase.utils.JSON; + + +public class Testest { + + + public static class FullCardSet { + + public String name; + public String code; + public String magicCardsInfoCode; + public String releaseDate; + public String border; + public String type; + public String block; + public String gathererCode; + public List cards; + + public FullCardSet() {} + } + + + public static void main(String... args) throws JsonParseException, JsonMappingException, MalformedURLException, IOException { + Map setMap = JSON.mapper.readValue(new File("./AllSets.json"), new TypeReference> () {}); + + List rarities = new ArrayList(); + + int count = 0; + + for (FullCardSet cardSet : setMap.values()) { + for (Card card : cardSet.cards) { + count++; + if (!rarities.contains(card.rarity)) { + rarities.add(card.rarity); + System.out.println(card.rarity); + } + } + } + + System.out.println("Done, " + count + " cards looked at."); + } +} diff --git a/test/eu/equalparts/test/cardbase/CardbaseSortTest.java b/test/eu/equalparts/test/cardbase/CardbaseSortTest.java index 261451a..2e756a3 100644 --- a/test/eu/equalparts/test/cardbase/CardbaseSortTest.java +++ b/test/eu/equalparts/test/cardbase/CardbaseSortTest.java @@ -1,7 +1,6 @@ package eu.equalparts.test.cardbase; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.util.Collection; import java.util.List; @@ -47,123 +46,279 @@ public class CardbaseSortTest { @Test public void test_sortByName() throws Exception { - Collection sortedCards = cardbase.sort("name"); - int i = 0; - String[] names = {"Callow Jushi", - "Coerced Confession", - "Disrupting Shoal", - "Khalni Hydra", - "Nightmare", - "Shivan Dragon", - "Sorin Markov", - "Ugin's Construct" }; - + String[] names = { + "Callow Jushi", + "Coerced Confession", + "Disrupting Shoal", + "Khalni Hydra", + "Nightmare", + "Shivan Dragon", + "Sorin Markov", + "Ugin's Construct", + }; for (Card card : sortedCards) { assertTrue(card.name + " should have been " + names[i] + ", i = " + i, card.name.equals(names[i])); i++; } } - + @Test public void test_sortByLayout() throws Exception { - Collection sortedCards = cardbase.sort("layout"); - int i = 0; - String[] layouts = {"flip", - "normal", - "normal", - "normal", - "normal", - "normal", - "normal", - "normal" }; - + String[] layouts = { + "flip", + "normal", + "normal", + "normal", + "normal", + "normal", + "normal", + "normal", + }; for (Card card : sortedCards) { assertTrue(card.layout + " should have been " + layouts[i] + ", i = " + i, card.layout.equals(layouts[i])); i++; } } - + @Test public void test_sortByManaCost() throws Exception { - - - -// Collection sortedCards = cardbase.sort("name"); -// -// int i = 0; -// String[] layouts = {"flip", -// "normal", -// "normal", -// "normal", -// "normal", -// "normal", -// "normal", -// "normal" }; -// -// for (Card card : sortedCards) { -// assertTrue(card.layout + " should have been " + layouts[i] + ", i = " + i, card.layout.equals(layouts[i])); -// i++; -// } - fail("todo"); + Collection sortedCards = cardbase.sort("manaCost"); + int i = 0; + String[] costs = { + "{1}{U}{U}", + "{3}{B}{B}{B}", + "{4}", + "{4}{R}{R}", + "{4}{U/B}", + "{5}{B}", + "{G}{G}{G}{G}{G}{G}{G}{G}", + "{X}{U}{U}", + }; + for (Card card : sortedCards) { + assertTrue(card.manaCost + " should have been " + costs[i] + ", i = " + i, card.manaCost.equals(costs[i])); + i++; + } } - + @Test public void test_sortByCMC() throws Exception { - Collection sortedCards = cardbase.sort("cmc"); - int i = 0; Integer[] cmcs = {2, 3, 4, 5, 6, 6, 6, 8}; - for (Card card : sortedCards) { assertTrue(card.cmc + " should have been " + cmcs[i] + ", i = " + i, card.cmc.equals(cmcs[i])); i++; } } - + @Test public void test_sortByType() throws Exception { - Collection sortedCards = cardbase.sort("type"); - int i = 0; - String[] types = {"Artifact Creature — Construct", - "Creature — Dragon", - "Creature — Human Wizard", - "Creature — Hydra", - "Creature — Nightmare Horse", - "Instant — Arcane", - "Planeswalker — Sorin", - "Sorcery"}; - + String[] types = { + "Artifact Creature — Construct", + "Creature — Dragon", + "Creature — Human Wizard", + "Creature — Hydra", + "Creature — Nightmare Horse", + "Instant — Arcane", + "Planeswalker — Sorin", + "Sorcery", + }; for (Card card : sortedCards) { assertTrue(card.type + " should have been " + types[i] + ", i = " + i, card.type.equals(types[i])); i++; } } - + @Test public void test_sortByRarity() throws Exception { - Collection sortedCards = cardbase.sort("rarity"); - int i = 0; - String[] rarities = {"Uncommon", - "Uncommon", - "Uncommon", - "Rare", - "Rare", - "Rare", - "Mythic Rare", - "Mythic Rare"}; - + String[] rarities = { + "Uncommon", + "Uncommon", + "Uncommon", + "Rare", + "Rare", + "Rare", + "Mythic Rare", + "Mythic Rare", + }; for (Card card : sortedCards) { assertTrue(card.rarity + " should have been " + rarities[i] + ", i = " + i, card.rarity.equals(rarities[i])); i++; } } + + @Test + public void test_sortByText() throws Exception { + Collection sortedCards = cardbase.sort("text"); + int i = 0; + String[] texts = { + "+2: Sorin Markov deals 2 damage to target creature or player and you gain 2 life.\n−3: Target opponent's life total becomes 10.\n−7: You control target player during that player's next turn.", + "Flying (This creature can't be blocked except by creatures with flying or reach.)\nNightmare's power and toughness are each equal to the number of Swamps you control.", + "Flying (This creature can't be blocked except by creatures with flying or reach.)\n{R}: Shivan Dragon gets +1/+0 until end of turn.", + "Khalni Hydra costs {G} less to cast for each green creature you control.\nTrample", + "Target player puts the top four cards of his or her library into his or her graveyard. You draw a card for each creature card put into that graveyard this way.", + "When Ugin's Construct enters the battlefield, sacrifice a permanent that's one or more colors.", + "Whenever you cast a Spirit or Arcane spell, you may put a ki counter on Callow Jushi.\nAt the beginning of the end step, if there are two or more ki counters on Callow Jushi, you may flip it.", + "You may exile a blue card with converted mana cost X from your hand rather than pay Disrupting Shoal's mana cost.\nCounter target spell if its converted mana cost is X.", + }; + for (Card card : sortedCards) { + assertTrue(card.text + " should have been " + texts[i] + ", i = " + i, card.text.equals(texts[i])); + i++; + } + } + + @Test + public void test_sortByFlavor() throws Exception { + Collection sortedCards = cardbase.sort("flavor"); + int i = 0; + String[] flavors = { + "", + "", + "", + "\"Ask the right questions in the right way and truth is inevitable.\"\n—Lazav", + "\"In ages past, bargains were struck and promises were made. Now we must collect on our debt. Begin the hymns.\"\n—Moruul, Khalni druid", + "The thunder of its hooves beats dreams into despair.", + "The undisputed master of the mountains of Shiv.", + "While trapping the Eldrazi on Zendikar, Ugin learned little from Sorin, but he gleaned the rudiments of lithomancy from Nahiri.", + }; + for (Card card : sortedCards) { + String flavor = card.flavor != null ? card.flavor : ""; + assertTrue(flavor + " should have been " + flavors[i] + ", i = " + i, flavor.equals(flavors[i])); + i++; + } + } + + @Test + public void test_sortByArtist() throws Exception { + Collection sortedCards = cardbase.sort("artist"); + int i = 0; + String[] artists = { + "Donato Giancola", + "Mathias Kollros", + "Michael Komarck", + "Peter Mohrbacher", + "Scott M. Fischer", + "Todd Lockwood", + "Tsutomu Kawade", + "Vance Kovacs", + }; + for (Card card : sortedCards) { + assertTrue(card.artist + " should have been " + artists[i] + ", i = " + i, card.artist.equals(artists[i])); + i++; + } + } + + @Test + public void test_sortByNumber() throws Exception { + Collection sortedCards = cardbase.sort("number"); + int i = 0; + String[] numbers = { + "31a", + "33", + "109", + "164", + "192", + "217", + "276", + "281", + }; + for (Card card : sortedCards) { + assertTrue(card.number + " should have been " + numbers[i] + ", i = " + i, card.number.equals(numbers[i])); + i++; + } + } + + @Test + public void test_sortByPower() throws Exception { + Collection sortedCards = cardbase.sort("power"); + int i = 0; + String[] powers = { + "", + "", + "", + "*", + "2", + "4", + "5", + "8", + }; + for (Card card : sortedCards) { + String power = card.power != null ? card.power : ""; + assertTrue(power + " should have been " + powers[i] + ", i = " + i, power.equals(powers[i])); + i++; + } + } + + @Test + public void test_sortByToughness() throws Exception { + Collection sortedCards = cardbase.sort("power"); + int i = 0; + String[] toughnesses = { + "", + "", + "", + "*", + "2", + "5", + "5", + "8", + }; + for (Card card : sortedCards) { + String toughness = card.toughness != null ? card.toughness : ""; + assertTrue(toughness + " should have been " + toughnesses[i] + ", i = " + i, toughness.equals(toughnesses[i])); + i++; + } + } + + @Test + public void test_sortByLoyalty() throws Exception { + Collection sortedCards = cardbase.sort("loyalty"); + int i = 0; + Integer[] loyalties = {0, 0, 0, 0, 0, 0, 0, 4}; + for (Card card : sortedCards) { + Integer loyalty = card.loyalty != null ? card.loyalty : 0; + assertTrue(loyalty + " should have been " + loyalties[i] + ", i = " + i, loyalty.equals(loyalties[i])); + i++; + } + } + + @Test + public void test_sortByMultiverseID() throws Exception { + Collection sortedCards = cardbase.sort("multiverseid"); + int i = 0; + Integer[] ids = {74128, 74489, 193551, 238330, 366408, 383168, 383172, 391949 }; + for (Card card : sortedCards) { + Integer id = card.multiverseid != null ? card.multiverseid : 0; + assertTrue(id + " should have been " + ids[i] + ", i = " + i, id.equals(ids[i])); + i++; + } + } + + @Test + public void test_sortByImageName() throws Exception { + Collection sortedCards = cardbase.sort("number"); + int i = 0; + String[] names = { + "", + "", + "", + "", + "", + "", + "", + "", + }; + for (Card card : sortedCards) { + assertTrue(card.imageName + " should have been " + names[i] + ", i = " + i, card.imageName.equals(names[i])); + i++; + } + } } -- cgit v1.2.3