Use inside for new year province assertions (#7361)

This commit is contained in:
2026-06-20 07:53:31 -07:00
committed by GitHub
parent 2634c7c3c8
commit 01be354271
@@ -161,79 +161,82 @@ class NewYearActionTest extends AnyFlatSpec with Matchers with BeforeAndAfterEac
it should "not increase gold or food for a province with insufficient support" in {
val result = NewYearAction(gs).immediateExecute
val lowSupportAfter =
result.changedProvinces.find(_.provinceId == lowSupportProvince.id).get.asInstanceOf[ChangedProvinceC]
lowSupportAfter.foodDelta shouldBe None
lowSupportAfter.goldDelta shouldBe None
inside(result.changedProvinces.collectFirst {
case cp: ChangedProvinceC if cp.provinceId == lowSupportProvince.id => cp
}) {
case Some(lowSupportAfter) =>
lowSupportAfter.foodDelta shouldBe None
lowSupportAfter.goldDelta shouldBe None
}
}
it should "increase gold for a province with sufficient support" in {
val result = NewYearAction(gs).immediateExecute
val highSupportAfter =
result.changedProvinces.find(_.provinceId == highSupportProvince.id).get.asInstanceOf[ChangedProvinceC]
highSupportAfter.goldDelta should contain((40 * highSupportProvince.economy).toInt)
inside(result.changedProvinces.collectFirst {
case cp: ChangedProvinceC if cp.provinceId == highSupportProvince.id => cp
}) {
case Some(highSupportAfter) =>
highSupportAfter.goldDelta should contain((40 * highSupportProvince.economy).toInt)
}
}
it should "increase food for a province with sufficient support" in {
val result = NewYearAction(gs).immediateExecute
val highSupportAfter =
result.changedProvinces.find(_.provinceId == highSupportProvince.id).get.asInstanceOf[ChangedProvinceC]
highSupportAfter.foodDelta should contain((60 * highSupportProvince.agriculture).toInt)
inside(result.changedProvinces.collectFirst {
case cp: ChangedProvinceC if cp.provinceId == highSupportProvince.id => cp
}) {
case Some(highSupportAfter) =>
highSupportAfter.foodDelta should contain((60 * highSupportProvince.agriculture).toInt)
}
}
it should "degrade the economy in all provinces" in {
val result = NewYearAction(gs).immediateExecute
val oldAndNew = provincesMap.values.map(p =>
(p, result.changedProvinces.find(_.provinceId == p.id).get.asInstanceOf[ChangedProvinceC])
)
for (oldProv, newProv) <- oldAndNew do {
newProv.economyDelta shouldBe None
newProv.economyDevastationDelta should contain(0.15 * oldProv.economy)
}
for oldProv <- provincesMap.values do
inside(result.changedProvinces.collectFirst { case cp: ChangedProvinceC if cp.provinceId == oldProv.id => cp }) {
case Some(newProv) =>
newProv.economyDelta shouldBe None
newProv.economyDevastationDelta should contain(0.15 * oldProv.economy)
}
}
it should "degrade the agriculture in all provinces" in {
val result = NewYearAction(gs).immediateExecute
val oldAndNew = provincesMap.values.map(p =>
(p, result.changedProvinces.find(_.provinceId == p.id).get.asInstanceOf[ChangedProvinceC])
)
for (oldProv, newProv) <- oldAndNew do {
newProv.agricultureDelta shouldBe None
newProv.agricultureDevastationDelta should contain(
0.15 * oldProv.agriculture
)
}
for oldProv <- provincesMap.values do
inside(result.changedProvinces.collectFirst { case cp: ChangedProvinceC if cp.provinceId == oldProv.id => cp }) {
case Some(newProv) =>
newProv.agricultureDelta shouldBe None
newProv.agricultureDevastationDelta should contain(
0.15 * oldProv.agriculture
)
}
}
it should "degrade the infrastructure in all provinces" in {
val result = NewYearAction(gs).immediateExecute
val oldAndNew = provincesMap.values.map(p =>
(p, result.changedProvinces.find(_.provinceId == p.id).get.asInstanceOf[ChangedProvinceC])
)
for (oldProv, newProv) <- oldAndNew do {
newProv.infrastructureDelta shouldBe None
newProv.infrastructureDevastationDelta should contain(
0.15 * oldProv.infrastructure
)
}
for oldProv <- provincesMap.values do
inside(result.changedProvinces.collectFirst { case cp: ChangedProvinceC if cp.provinceId == oldProv.id => cp }) {
case Some(newProv) =>
newProv.infrastructureDelta shouldBe None
newProv.infrastructureDevastationDelta should contain(
0.15 * oldProv.infrastructure
)
}
}
it should "degrade the support in all provinces" in {
val result = NewYearAction(gs).immediateExecute
val oldAndNew = provincesMap.values.map(p =>
(p, result.changedProvinces.find(_.provinceId == p.id).get.asInstanceOf[ChangedProvinceC])
)
for (oldProv, newProv) <- oldAndNew do newProv.supportDelta should contain(-0.15 * oldProv.support)
for oldProv <- provincesMap.values do
inside(result.changedProvinces.collectFirst { case cp: ChangedProvinceC if cp.provinceId == oldProv.id => cp }) {
case Some(newProv) =>
newProv.supportDelta should contain(-0.15 * oldProv.support)
}
}
it should "degrade the armament of all battalions" in {