| import socceraction.atomic.spadl as spadlcfg | |
| from pandas import testing as tm | |
| from pandera.typing import DataFrame | |
| from socceraction.atomic.spadl import AtomicSPADLSchema | |
| from socceraction.atomic.vaep import features as fs | |
| xfns = [ | |
| fs.actiontype, | |
| fs.actiontype_onehot, | |
| fs.bodypart, | |
| fs.bodypart_detailed, | |
| fs.bodypart_onehot, | |
| fs.bodypart_detailed_onehot, | |
| fs.team, | |
| fs.time, | |
| fs.time_delta, | |
| fs.location, | |
| fs.polar, | |
| fs.movement_polar, | |
| fs.direction, | |
| fs.goalscore, | |
| ] | |
| def test_same_index(atomic_spadl_actions: DataFrame[AtomicSPADLSchema]) -> None: | |
| """The feature generators should not change the index of the input dataframe.""" | |
| atomic_spadl_actions.index += 10 | |
| game_actions_with_names = spadlcfg.add_names(atomic_spadl_actions) | |
| gamestates = fs.gamestates(game_actions_with_names, 3) | |
| gamestates = fs.play_left_to_right(gamestates, 782) | |
| for fn in xfns: | |
| features = fn(gamestates) | |
| tm.assert_index_equal(features.index, atomic_spadl_actions.index) | |