diff options
Diffstat (limited to 'src/LivingVillage.Desktop.Tests')
| -rw-r--r-- | src/LivingVillage.Desktop.Tests/PrototypeTests.fs | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/LivingVillage.Desktop.Tests/PrototypeTests.fs b/src/LivingVillage.Desktop.Tests/PrototypeTests.fs index 7959d27..4d698ad 100644 --- a/src/LivingVillage.Desktop.Tests/PrototypeTests.fs +++ b/src/LivingVillage.Desktop.Tests/PrototypeTests.fs @@ -301,8 +301,30 @@ type PrototypeTests () = Assert.IsTrue(footprint.Contains({ X = door.X + dx; Y = door.Y - 2 } : TilePosition), sprintf "missing ridge tile dx=%d" dx) Assert.IsTrue(footprint.Contains({ X = door.X + dx; Y = door.Y - 1 } : TilePosition), sprintf "missing eave tile dx=%d" dx) Assert.IsTrue(footprint.Contains({ X = door.X + dx; Y = door.Y } : TilePosition), sprintf "missing wall tile dx=%d" dx) - // 12 house tiles + 3 bridge + 3 bamboo + 2 garden. - Assert.AreEqual<int>(20, footprint.Count) + // 12 house + 3 bridge + 3 bamboo + 2 garden + 2x2 willow + 2 shrub + 2 flowers + 2 reeds + 1 bench + 2 lanterns. + Assert.AreEqual<int>(33, footprint.Count) + + [<TestMethod>] + member _.VegetationAndRiversidePropsDecorateTheScene () = + let plan = VillageArt.sampleRenderPlan () + let kinds = plan.Props |> List.map (fun prop -> prop.Kind) + let count kind = kinds |> List.filter (fun candidate -> candidate = kind) |> List.length + let grounds = plan.Grounds |> List.map fst |> Set.ofList + + Assert.AreEqual<int>(2, count VillageArt.WillowTree) + Assert.IsTrue(count VillageArt.ShrubPatch >= 2) + Assert.IsTrue(count VillageArt.FlowerBush >= 2) + Assert.AreEqual<int>(2, count VillageArt.ReedCluster) + Assert.AreEqual<int>(1, count VillageArt.StoneBench) + Assert.AreEqual<int>(2, count VillageArt.RiverLantern) + + // Reeds must root in water; lanterns stand on the bank path. + for prop in plan.Props do + let tile = VillageArt.worldTile plan prop.Position + match prop.Kind with + | VillageArt.ReedCluster -> Assert.IsTrue(grounds.Contains(prop.Position), "reeds must sit on water tiles") + | VillageArt.RiverLantern -> Assert.IsTrue(plan.Grounds |> List.contains (prop.Position, VillageArt.StonePath), "lanterns must stand on the bank path") + | _ -> () [<TestMethod>] member _.WaterRippleFramesAreDeterministicAndTwoPhase () = |
