mirror of
https://github.com/sebastiandine/Card-Collection-Manager-3.git
synced 2026-08-29 09:18:48 +00:00
set collection
This commit is contained in:
@@ -119,6 +119,54 @@ TEST_SUITE("computeDigiBattle99SetCompletion") {
|
||||
};
|
||||
CHECK(computeDigiBattle99SetCompletion(collection, catalog).empty());
|
||||
}
|
||||
|
||||
TEST_CASE("language filter hides packs with no cards in that language") {
|
||||
const auto catalog = sampleCatalog();
|
||||
DigiBattle99Card en =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-01");
|
||||
en.language = Language::English;
|
||||
|
||||
const auto allRows = computeDigiBattle99SetCompletion({en}, catalog);
|
||||
REQUIRE(allRows.size() == 1);
|
||||
|
||||
const auto deRows =
|
||||
computeDigiBattle99SetCompletion({en}, catalog, Language::German);
|
||||
CHECK(deRows.empty());
|
||||
|
||||
const auto enRows =
|
||||
computeDigiBattle99SetCompletion({en}, catalog, Language::English);
|
||||
REQUIRE(enRows.size() == 1);
|
||||
CHECK(enRows[0].ownedUnique == 1);
|
||||
}
|
||||
|
||||
TEST_CASE("same setNo in two languages counts once aggregated; filter is exclusive") {
|
||||
const auto catalog = sampleCatalog();
|
||||
DigiBattle99Card en =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-01");
|
||||
en.language = Language::English;
|
||||
DigiBattle99Card de =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-01");
|
||||
de.id = 2;
|
||||
de.language = Language::German;
|
||||
|
||||
const auto allRows = computeDigiBattle99SetCompletion({en, de}, catalog);
|
||||
REQUIRE(allRows.size() == 1);
|
||||
CHECK(allRows[0].ownedUnique == 1);
|
||||
|
||||
const auto enRows =
|
||||
computeDigiBattle99SetCompletion({en, de}, catalog, Language::English);
|
||||
REQUIRE(enRows.size() == 1);
|
||||
CHECK(enRows[0].ownedUnique == 1);
|
||||
|
||||
DigiBattle99Card deOnly =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-02");
|
||||
deOnly.id = 3;
|
||||
deOnly.language = Language::German;
|
||||
const auto deRows = computeDigiBattle99SetCompletion({en, de, deOnly}, catalog,
|
||||
Language::German);
|
||||
REQUIRE(deRows.size() == 1);
|
||||
CHECK(deRows[0].ownedUnique == 2);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_SUITE("digiBattle99ChecklistForSet") {
|
||||
@@ -142,6 +190,57 @@ TEST_SUITE("digiBattle99ChecklistForSet") {
|
||||
const auto catalog = sampleCatalog();
|
||||
CHECK(digiBattle99ChecklistForSet({}, catalog, "missing").empty());
|
||||
}
|
||||
|
||||
TEST_CASE("owned flags respect language filter") {
|
||||
const auto catalog = sampleCatalog();
|
||||
DigiBattle99Card en =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-02");
|
||||
en.language = Language::English;
|
||||
|
||||
const auto filtered =
|
||||
digiBattle99ChecklistForSet({en}, catalog, "series-1-starter-set",
|
||||
Language::German);
|
||||
REQUIRE(filtered.size() == 3);
|
||||
CHECK(filtered[0].owned == false);
|
||||
CHECK(filtered[1].owned == false);
|
||||
CHECK(filtered[2].owned == false);
|
||||
|
||||
const auto english =
|
||||
digiBattle99ChecklistForSet({en}, catalog, "series-1-starter-set",
|
||||
Language::English);
|
||||
REQUIRE(english.size() == 3);
|
||||
CHECK(english[1].owned == true);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_SUITE("digiBattle99LanguagesInCollection") {
|
||||
TEST_CASE("empty collection yields empty") {
|
||||
CHECK(digiBattle99LanguagesInCollection({}).empty());
|
||||
}
|
||||
|
||||
TEST_CASE("returns distinct languages in allLanguages order") {
|
||||
DigiBattle99Card jp =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-01");
|
||||
jp.language = Language::Japanese;
|
||||
DigiBattle99Card en =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-02");
|
||||
en.id = 2;
|
||||
en.language = Language::English;
|
||||
DigiBattle99Card enDup =
|
||||
makeOwned("series-1-booster-pack", "Series 1 Booster Pack", "BO-01");
|
||||
enDup.id = 3;
|
||||
enDup.language = Language::English;
|
||||
DigiBattle99Card de =
|
||||
makeOwned("series-1-starter-set", "Series 1 Starter Set", "ST-03");
|
||||
de.id = 4;
|
||||
de.language = Language::German;
|
||||
|
||||
const auto langs = digiBattle99LanguagesInCollection({jp, en, enDup, de});
|
||||
REQUIRE(langs.size() == 3);
|
||||
CHECK(langs[0] == Language::English);
|
||||
CHECK(langs[1] == Language::German);
|
||||
CHECK(langs[2] == Language::Japanese);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_SUITE("DigiBattle99SetCatalogService") {
|
||||
|
||||
Reference in New Issue
Block a user