From 6d15f53c7c9c9d174b7c3a5bac1ca9ba1372b9c6 Mon Sep 17 00:00:00 2001 From: Carlos Eduardo Date: Sun, 4 Aug 2024 11:01:47 -0300 Subject: [PATCH] Resolves #98 (#99) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(issue-98): Add SC2Action class * test(issue-98): Add units tests to SC2Action * refactor(issue-98): Fix typo in SC2Action unit tests * refactor(issue-98): Rename action_id to action #98 * refactor(issue-98): Rename action to action_function #99 Co-authored-by: Álvaro Paiva --------- Co-authored-by: Álvaro Paiva --- tests/units/sc2/actions/test_sc2_action.py | 21 +++++++++++++++++++++ urnai/sc2/actions/sc2_action.py | 9 +++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/units/sc2/actions/test_sc2_action.py create mode 100644 urnai/sc2/actions/sc2_action.py diff --git a/tests/units/sc2/actions/test_sc2_action.py b/tests/units/sc2/actions/test_sc2_action.py new file mode 100644 index 0000000..cd4a8e0 --- /dev/null +++ b/tests/units/sc2/actions/test_sc2_action.py @@ -0,0 +1,21 @@ +import unittest + +from pysc2.lib import actions + +from urnai.actions.sc2_action import SC2Action + +_BUILD_REFINERY = actions.RAW_FUNCTIONS.Build_Refinery_pt +_NO_OP = actions.FUNCTIONS.no_op + +class TestSC2Action(unittest.TestCase): + + def test_run(self): + + run_no_op = SC2Action.run(_NO_OP) + run_build_refinery = SC2Action.run(_BUILD_REFINERY, 'now', 0) + + self.assertEqual(run_no_op.function, _NO_OP.id) + self.assertEqual(run_no_op.arguments, []) + + self.assertEqual(run_build_refinery.function, _BUILD_REFINERY.id) + self.assertEqual(run_build_refinery.arguments, [[actions.Queued['now']], [0]]) diff --git a/urnai/sc2/actions/sc2_action.py b/urnai/sc2/actions/sc2_action.py new file mode 100644 index 0000000..d2d1047 --- /dev/null +++ b/urnai/sc2/actions/sc2_action.py @@ -0,0 +1,9 @@ +from pysc2.lib.actions import FunctionCall + + +class SC2Action: + + """This class encapsulates the usage of actions from pysc2""" + + def run(action_function, *args) -> FunctionCall: + return action_function(*args)