Files
mcpacker/tungston/core/habitat_test.py
T
2025-10-06 22:44:46 -06:00

46 lines
1.5 KiB
Python

from pytest import fixture
from tungston.core.ecology.biomefilter import BiomeFilter
from tungston.core.habitat import Habitat
import tungston.core.ecology.flora as FL
import tungston.core.ecology.heat as HE
import tungston.core.season as SE
import tungston.core.scarcity as SC
# Fixtures #########################################################################################
@fixture(name="fields")
def createFieldsFilter():
yield BiomeFilter([FL.FIELD, HE.TEMPERATE])
@fixture(name="derivedHabitats")
def createDerivedHabitat(fields):
yield (
Habitat(biomeFilter=fields, seasons=SE.SUMMER, scarcity=SC.COMMON)
.derive(seasons=SE.AUTUMN, scarcity=SC.UNCOMMON)
.derive(seasons=SE.WINTER, scarcity=SC.ABSENT)
.collect()
)
@fixture(name="fields")
def createFieldsHabitat(fields):
yield Habitat(biomeFilter=fields)
# Tests ############################################################################################
def test_derive(derivedHabitats):
assert [h.scarcity for h in derivedHabitats] == [SC.COMMON, SC.UNCOMMON, SC.ABSENT]
def test_repr(fields):
assert repr(fields) == (
"Habitat{" +
"altitude: anywhere <-64 to 320>, " +
"biomeFilter: BiomeFilter([[Flora<field>, Heat<temperate>]], [[]]), " +
"seasons: [Season<spring>, Season<summer>, Season<autumn>, Season<winter>], " +
"group: solo<1 to 1>, " +
"location: Location<outside>, " +
"scarcity: Scarcity<sparse>" +
"}"
)