Unit tests for the TileMap.getViewableTiles() (#3222)

This commit is contained in:
Jack Rainy 2020-10-04 10:54:48 +03:00 committed by GitHub
parent 3e98e0c00f
commit 296da5b205
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -0,0 +1,216 @@
package com.unciv.logic.map
import com.badlogic.gdx.math.Vector2
import com.unciv.Constants
import com.unciv.models.ruleset.Ruleset
import com.unciv.models.ruleset.RulesetCache
import com.unciv.testing.GdxTestRunner
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(GdxTestRunner::class)
class TileMapTests {
private var map = TileMap()
private var tile1 = TileInfo()
private var tile2 = TileInfo()
private var tile3 = TileInfo()
private var ruleSet = Ruleset()
@Before
fun initTheWorld() {
RulesetCache.loadRulesets()
ruleSet = RulesetCache.getBaseRuleset()
map = TileMap()
tile1.position = Vector2(0f, 0f)
tile1.tileMap = map
tile1.ruleset = ruleSet
tile2.position = Vector2(0f, 1f)
tile2.tileMap = map
tile2.ruleset = ruleSet
tile3.position = Vector2(0f, 2f)
tile3.tileMap = map
tile3.ruleset = ruleSet
map.tileMatrix.add(arrayListOf(tile1, tile2, tile3))
}
@Test
fun canSeeOnFlatGround() {
tile1.baseTerrain = Constants.grassland
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.desert
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.snow
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
@Test
fun canSeeOnFlatWater() {
tile1.baseTerrain = Constants.ocean
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.coast
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.ocean
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
@Test
fun canSeeFromHills() {
tile1.baseTerrain = Constants.hill
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.grassland
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.coast
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
@Test
fun canSeeOverForestFromHills() {
tile1.baseTerrain = Constants.hill
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.grassland
tile2.terrainFeature = Constants.forest
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.coast
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
@Test
fun canSeeMountainOverHills() {
tile1.baseTerrain = Constants.grassland
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.hill
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.mountain
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
@Test
fun canSeeMountainFromForestOverHills() {
tile1.baseTerrain = Constants.grassland
tile1.terrainFeature = Constants.forest
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.hill
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.mountain
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
@Test
fun canSeeHillsFromHills() {
tile1.baseTerrain = Constants.hill
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.grassland
tile2.terrainFeature = Constants.forest
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.hill
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
@Test
fun canNOTSeeGrassOverHills() {
tile1.baseTerrain = Constants.grassland
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.hill
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.grassland
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertFalse(tile3 in visibleTiles)
}
@Test
fun canNOTSeeHillsOverHills() {
tile1.baseTerrain = Constants.grassland
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.hill
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.hill
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertFalse(tile3 in visibleTiles)
}
@Test
fun canNOTSeeOutThroughForest() {
tile1.baseTerrain = Constants.grassland
tile1.terrainFeature = Constants.forest
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.grassland
tile2.terrainFeature = Constants.forest
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.grassland
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertFalse(tile3 in visibleTiles)
}
@Test
fun canNOTSeeWaterOverJungle() {
tile1.baseTerrain = Constants.coast
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.grassland
tile2.terrainFeature = Constants.jungle
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.coast
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertFalse(tile3 in visibleTiles)
}
@Test
fun canSeeWaterOverFlatLand() {
tile1.baseTerrain = Constants.coast
tile1.setTerrainTransients()
tile2.baseTerrain = Constants.grassland
tile2.setTerrainTransients()
tile3.baseTerrain = Constants.coast
tile3.setTerrainTransients()
val visibleTiles = map.getViewableTiles(tile1.position,2)
Assert.assertTrue(tile2 in visibleTiles)
Assert.assertTrue(tile3 in visibleTiles)
}
}