Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from typing import Iterable, List, Sequence

from spinn_front_end_common.utility_models.live_packet_gather import \
_LPGSplitter
from parameterized import parameterized

from spinn_utilities.config_holder import set_config
from spinn_utilities.overrides import overrides

from spinn_machine.version.version_strings import VersionStrings
from spinn_machine.version import ALL_BOARD_TYPES
from spinn_machine.tags.iptag import IPTag

from pacman.model.graphs.application import ApplicationVertex, ApplicationEdge
Expand All @@ -37,7 +38,8 @@
from spinn_front_end_common.data.fec_data_writer import FecDataWriter
from spinn_front_end_common.interface.interface_functions import (
database_interface)

from spinn_front_end_common.utility_models.live_packet_gather import \
_LPGSplitter
from spinn_front_end_common.utilities.utility_objs import (
LivePacketGatherParameters)
from spinn_front_end_common.interface.config_setup import unittest_setup
Expand Down Expand Up @@ -140,9 +142,10 @@ def _place_vertices(app_vertexes: List[ApplicationVertex],
return placements


def test_database_interface() -> None:
@parameterized.expand(ALL_BOARD_TYPES)
def test_database_interface(_: str, ver_num: str) -> None:
unittest_setup()
set_config("Machine", "versions", VersionStrings.ANY.text)
set_config("Machine", "version", ver_num)
set_config("Database", "create_database", "True")
set_config("Database", "create_routing_info_to_neuron_id_mapping", "True")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,14 @@
# limitations under the License.

import unittest

from parameterized import parameterized

from spinn_utilities.config_holder import set_config
from spinn_machine.version.version_strings import VersionStrings

from spinn_machine.version import BIG_BOARD_TYPES
from spinn_machine.virtual_machine import virtual_machine_by_boards

from spinnman.messages.eieio import EIEIOType
from pacman.model.graphs.machine import MachineVertex
from pacman.model.placements import Placements
Expand All @@ -38,14 +43,13 @@ def number_of_atoms(self) -> int:


class TestInsertLPGs(unittest.TestCase):
""" tests the LPG insert functions
""" tests the LPG insert functions """

"""
def setUp(self) -> None:
@parameterized.expand(BIG_BOARD_TYPES) # Needs multiple boards
def test_that_3_lpgs_are_generated_on_3_board_app_graph(
self, _: str, ver_num: str) -> None:
unittest_setup()
set_config("Machine", "versions", VersionStrings.BIG.text)

def test_that_3_lpgs_are_generated_on_3_board_app_graph(self) -> None:
set_config("Machine", "version", ver_num)
writer = FecDataWriter.mock()
writer.set_machine(virtual_machine_by_boards(3))

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[[tool.mypy.overrides]]
module = ["scipy"]
module = ["parameterized", "scipy"]
ignore_missing_imports = true
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ test =
pytest-cov
testfixtures
httpretty != 1.0.0
parameterized
types-jsonschema
types-requests
plotting =
Expand Down
14 changes: 9 additions & 5 deletions unittests/data/test_simulator_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
from typing import Dict, Tuple
import unittest

from parameterized import parameterized

from spinn_utilities.config_holder import set_config
# hack do not copy
from spinn_utilities.data.data_status import DataStatus
Expand All @@ -27,7 +29,7 @@
from spinn_utilities.typing.coords import XY

from spinn_machine import Chip, CoreSubsets, RoutingEntry
from spinn_machine.version.version_strings import VersionStrings
from spinn_machine.version import FOUR_PLUS_BOARD_TYPES

from spinnman.messages.scp.enums.signal import Signal
from spinnman.model.enums import ExecutableType
Expand Down Expand Up @@ -470,9 +472,10 @@ def test_executable_targets(self) -> None:
with self.assertRaises(TypeError):
writer.set_executable_targets([]) # type: ignore[arg-type]

def test_gatherer_map(self) -> None:
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_gatherer_map(self, _: str, ver_num: str) -> None:
writer = FecDataWriter.mock()
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
set_config("Machine", "version", ver_num)
with self.assertRaises(DataNotYetAvialable):
FecDataView.get_gatherer_by_xy(0, 0)
with self.assertRaises(DataNotYetAvialable):
Expand Down Expand Up @@ -519,9 +522,10 @@ def test_gatherer_map(self) -> None:
map4[(0, "bacon")] = vertex
writer.set_gatherer_map(map4) # type: ignore[arg-type]

def test_monitor_map(self) -> None:
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_monitor_map(self, _: str, ver_num: str) -> None:
writer = FecDataWriter.mock()
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
set_config("Machine", "version", ver_num)
self.assertFalse(FecDataView.has_monitors())
with self.assertRaises(DataNotYetAvialable):
FecDataView.get_monitor_by_xy(0, 0)
Expand Down
21 changes: 13 additions & 8 deletions unittests/interface/buffer_management/test_buffered_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import unittest
import os
from typing import Sequence, Tuple
import unittest

from parameterized import parameterized

from spinn_utilities.config_holder import set_config
from spinn_utilities.overrides import overrides

from spinn_machine.version.version_strings import VersionStrings
from spinn_machine.version import MANY_BOARD_TYPES

from pacman.model.graphs.machine import SimpleMachineVertex
from pacman.model.placements import Placement, Placements
Expand Down Expand Up @@ -61,8 +63,9 @@ class TestBufferedDatabase(unittest.TestCase):
def setUp(self) -> None:
unittest_setup()

def test_recording(self) -> None:
set_config("Machine", "versions", VersionStrings.ANY.text)
@parameterized.expand(MANY_BOARD_TYPES)
def test_recording(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
writer = FecDataWriter.mock()
f = BufferDatabase.default_database_file()
self.assertFalse(os.path.isfile(f), "no existing DB at first")
Expand Down Expand Up @@ -142,8 +145,9 @@ def test_recording(self) -> None:

self.assertTrue(os.path.isfile(f), "DB still exists")

def test_download(self) -> None:
set_config("Machine", "versions", VersionStrings.ANY.text)
@parameterized.expand(MANY_BOARD_TYPES)
def test_download(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
writer = FecDataWriter.mock()

info = Placements([])
Expand Down Expand Up @@ -194,8 +198,9 @@ def test_download(self) -> None:
self.assertTrue(missing, "data should be 'missing'")
self.assertEqual(bytes(data), b"gh")

def test_clear(self) -> None:
set_config("Machine", "versions", VersionStrings.ANY.text)
@parameterized.expand(MANY_BOARD_TYPES)
def test_clear(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
writer = FecDataWriter.mock()

info = Placements([])
Expand Down
72 changes: 44 additions & 28 deletions unittests/interface/ds/test_ds.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from sqlite3 import IntegrityError
import unittest

from parameterized import parameterized
from sqlite3 import IntegrityError

from spinn_utilities.config_holder import set_config
from spinn_utilities.overrides import overrides

from spinn_machine import Chip, Router
from spinn_machine.version.version_strings import VersionStrings
from spinn_machine.version import (
BIG_BOARD_TYPES, FOUR_PLUS_BOARD_TYPES, MANY_BOARD_TYPES)
from spinn_machine.virtual_machine import virtual_machine_by_min_size
from spinnman.model.enums import ExecutableType

Expand Down Expand Up @@ -67,24 +70,27 @@ class TestDataSpecification(unittest.TestCase):
def setUp(self) -> None:
unittest_setup()

def test_init(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_init(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex1 = _TestVertexWithBinary(
"off_board__system", ExecutableType.SYSTEM)
with DsSqlliteDatabase() as db:
DataSpecificationGenerator(0, 1, 2, vertex1, db)
DataSpecificationReloader(0, 1, 2, db)

def test_none_ds_vertex(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_none_ds_vertex(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = SimpleMachineVertex(None)
with DsSqlliteDatabase() as db:
with self.assertRaises(AttributeError):
DataSpecificationGenerator(
0, 1, 2, vertex, db) # type: ignore[arg-type]

def test_bad_x_y_ds_vertex(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_bad_x_y_ds_vertex(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = _TestVertexWithBinary(
"off_board__system", ExecutableType.SYSTEM)
width, height = FecDataView.get_machine_version().board_shape
Expand All @@ -93,8 +99,9 @@ def test_bad_x_y_ds_vertex(self) -> None:
# x, y to high
DataSpecificationGenerator(width, height, 2, vertex, db)

def test_repeat_x_y_ds_vertex(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_repeat_x_y_ds_vertex(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex1 = _TestVertexWithBinary(
"v1", ExecutableType.SYSTEM)
vertex2 = _TestVertexWithBinary(
Expand All @@ -104,8 +111,9 @@ def test_repeat_x_y_ds_vertex(self) -> None:
with self.assertRaises(IntegrityError):
DataSpecificationGenerator(0, 1, 2, vertex2, db)

def test_core_infos(self) -> None:
set_config("Machine", "versions", VersionStrings.BIG.text)
@parameterized.expand(BIG_BOARD_TYPES) # Needs multiple boards
def test_core_infos(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
writer = FecDataWriter.mock()
writer.set_machine(virtual_machine_by_min_size(9, 9))
with DsSqlliteDatabase() as db:
Expand All @@ -128,8 +136,9 @@ def test_core_infos(self) -> None:
app_infos = [(0, 0, 3, 0, 0), (0, 0, 4, 0, 0)]
self.assertEqual(app_infos, db.get_core_infos(False))

def test_bad_ethernet(self) -> None:
set_config("Machine", "versions", VersionStrings.ANY.text)
@parameterized.expand(MANY_BOARD_TYPES)
def test_bad_ethernet(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
router = Router([], 123)
width, height = FecDataView.get_machine_version().board_shape
bad = Chip(width, height, [0], range(1, 15), router, 100, 8, 8)
Expand All @@ -140,8 +149,9 @@ def test_bad_ethernet(self) -> None:
with self.assertRaises(IntegrityError):
DataSpecificationGenerator(width, height, 2, vertex, db)

def test_reserve_memory_region(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_reserve_memory_region(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = _TestVertexWithBinary(
"binary", ExecutableType.SYSTEM)
with DsSqlliteDatabase() as db:
Expand Down Expand Up @@ -182,8 +192,9 @@ def test_reserve_memory_region(self) -> None:
self.assertEqual({}, db.get_region_sizes(0, 1, 3))
self.assertEqual(0, db.get_total_regions_size(0, 1, 3))

def test_regions_content(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_regions_content(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = _TestVertexWithBinary(
"binary", ExecutableType.SYSTEM)
with DsSqlliteDatabase() as db:
Expand All @@ -209,8 +220,9 @@ def test_regions_content(self) -> None:
self.assertEqual(12, db.get_max_content_size(True))
self.assertEqual([(12, 1), (4, 1)], db.get_content_sizes(True))

def test_switch_write_focus(self) -> None:
set_config("Machine", "versions", VersionStrings.ANY.text)
@parameterized.expand(MANY_BOARD_TYPES)
def test_switch_write_focus(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = _TestVertexWithBinary(
"binary", ExecutableType.SYSTEM)
with DsSqlliteDatabase() as db:
Expand All @@ -223,8 +235,9 @@ def test_switch_write_focus(self) -> None:
with self.assertRaises(DsDatabaseException):
dsg.switch_write_focus(8)

def test_pointers(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_pointers(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
# You can use a reference before defining it
vertex = _TestVertexWithBinary(
"binary1", ExecutableType.SYSTEM)
Expand Down Expand Up @@ -289,8 +302,9 @@ def test_pointers(self) -> None:
with self.assertRaises(DsDatabaseException):
db.get_region_pointer(1, 2, 3, 9)

def test_write(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_write(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = _TestVertexWithBinary(
"binary", ExecutableType.SYSTEM)

Expand Down Expand Up @@ -343,8 +357,9 @@ def test_write(self) -> None:
db.set_region_content(
0, 1, 4, 5, bytearray(b'\x0c\x00\x00\x00'), "test")

def test_ds_cores(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_ds_cores(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = _TestVertexWithBinary(
"binary", ExecutableType.SYSTEM)
with DsSqlliteDatabase() as db:
Expand All @@ -361,8 +376,9 @@ def test_ds_cores(self) -> None:
self.assertIn((0, 1, 4), cores)
self.assertIn((1, 0, 3), cores)

def test_memory_to_write(self) -> None:
set_config("Machine", "versions", VersionStrings.FOUR_PLUS.text)
@parameterized.expand(FOUR_PLUS_BOARD_TYPES)
def test_memory_to_write(self, _: str, ver_num: str) -> None:
set_config("Machine", "version", ver_num)
vertex = _TestVertexWithBinary(
"binary", ExecutableType.SYSTEM)
with DsSqlliteDatabase() as db:
Expand Down
Loading
Loading