Skip to content

Commit

Permalink
added adjacent slot getter tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sanni-t committed Feb 7, 2024
1 parent c0bf651 commit 948df21
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 8 deletions.
16 changes: 8 additions & 8 deletions api/src/opentrons/motion_planning/adjacent_slots_getters.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ class _MixedTypeSlots:
def get_surrounding_slots(slot: int, robot_type: RobotType) -> _MixedTypeSlots:
"""Get all the surrounding slots, i.e., adjacent slots as well as corner slots."""
corner_slots: List[Union[int, None]] = [
get_north_west_slot(slot),
get_north_east_slot(slot),
get_south_west_slot(slot),
get_north_west_slot(slot),
get_south_east_slot(slot),
get_south_west_slot(slot),
]

surrounding_regular_slots_int = get_adjacent_slots(slot) + [
Expand Down Expand Up @@ -119,18 +119,18 @@ def get_surrounding_slots(slot: int, robot_type: RobotType) -> _MixedTypeSlots:


_SURROUNDING_STAGING_SLOTS_MAP: Dict[DeckSlotName, List[StagingSlotName]] = {
DeckSlotName.SLOT_D3: [StagingSlotName.SLOT_D4, StagingSlotName.SLOT_C4],
DeckSlotName.SLOT_D3: [StagingSlotName.SLOT_C4, StagingSlotName.SLOT_D4],
DeckSlotName.SLOT_C3: [
StagingSlotName.SLOT_D4,
StagingSlotName.SLOT_C4,
StagingSlotName.SLOT_B4,
StagingSlotName.SLOT_C4,
StagingSlotName.SLOT_D4,
],
DeckSlotName.SLOT_B3: [
StagingSlotName.SLOT_C4,
StagingSlotName.SLOT_B4,
StagingSlotName.SLOT_A4,
StagingSlotName.SLOT_B4,
StagingSlotName.SLOT_C4,
],
DeckSlotName.SLOT_A3: [StagingSlotName.SLOT_B4, StagingSlotName.SLOT_A4],
DeckSlotName.SLOT_A3: [StagingSlotName.SLOT_A4, StagingSlotName.SLOT_B4],
}


Expand Down
79 changes: 79 additions & 0 deletions api/tests/opentrons/motion_planning/test_adjacent_slots_getters.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import pytest
from typing import List, Optional

from opentrons_shared_data.robot.dev_types import RobotType

from opentrons.types import DeckSlotName, StagingSlotName
from opentrons.motion_planning.adjacent_slots_getters import (
get_east_slot,
Expand All @@ -13,6 +15,8 @@
get_adjacent_slots,
get_west_of_staging_slot,
get_adjacent_staging_slot,
_MixedTypeSlots,
get_surrounding_slots,
)


Expand Down Expand Up @@ -128,3 +132,78 @@ def test_get_adjacent_staging_slot(
) -> None:
"""It should find the adjacent slot east of a staging slot if it exists."""
assert get_adjacent_staging_slot(slot) == expected_adjacent


@pytest.mark.parametrize(
argnames=["slot", "robot_type", "expected_surrounding_slots"],
argvalues=[
(
2,
"OT-2 Standard",
_MixedTypeSlots(
regular_slots=[
DeckSlotName.SLOT_3,
DeckSlotName.SLOT_1,
DeckSlotName.SLOT_5,
DeckSlotName.SLOT_6,
DeckSlotName.SLOT_4,
],
staging_slots=[],
),
),
(
6,
"OT-2 Standard",
_MixedTypeSlots(
regular_slots=[
DeckSlotName.SLOT_5,
DeckSlotName.SLOT_9,
DeckSlotName.SLOT_3,
DeckSlotName.SLOT_8,
DeckSlotName.SLOT_2,
],
staging_slots=[],
),
),
(
6,
"OT-3 Standard",
_MixedTypeSlots(
regular_slots=[
DeckSlotName.SLOT_C2,
DeckSlotName.SLOT_B3,
DeckSlotName.SLOT_D3,
DeckSlotName.SLOT_B2,
DeckSlotName.SLOT_D2,
],
staging_slots=[
StagingSlotName.SLOT_B4,
StagingSlotName.SLOT_C4,
StagingSlotName.SLOT_D4,
],
),
),
(
10,
"OT-3 Standard",
_MixedTypeSlots(
regular_slots=[
DeckSlotName.SLOT_A2,
DeckSlotName.SLOT_B1,
DeckSlotName.SLOT_B2,
],
staging_slots=[],
),
),
],
)
def test_get_surrounding_slots(
slot: int,
robot_type: RobotType,
expected_surrounding_slots: _MixedTypeSlots,
) -> None:
"""It should get the list of surrounding slots appropriate for the robot type."""
assert (
get_surrounding_slots(slot=slot, robot_type=robot_type)
== expected_surrounding_slots
)

0 comments on commit 948df21

Please sign in to comment.