Skip to content

Commit

Permalink
Merge pull request #62 from ninezerozeronine/rom_tests
Browse files Browse the repository at this point in the history
Add rom tests. Update tox.ini for mac use.
  • Loading branch information
ninezerozeronine committed Jul 10, 2019
2 parents c1c209d + 876ae7e commit 4ccac58
Show file tree
Hide file tree
Showing 3 changed files with 138 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/eight_bit_computer/rom.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ def slice_rom(rom):
RomData(
address="0000000 0000 000",
data="10101010 111111111 00000000 11001100"
data="10101010 11111111 00000000 11001100"
)
We would end up with::
Expand Down
137 changes: 133 additions & 4 deletions tests/test_rom.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@
from eight_bit_computer.data_structures import DataTemplate


@pytest.mark.slow
def test_get_rom_doesnt_raise():
data = rom.get_rom()
assert True


@pytest.mark.parametrize("test_input,expected", [
(
[
Expand Down Expand Up @@ -62,6 +68,105 @@ def test_collapse_datatemplates_to_romdatas(test_input, expected):
assert rom.collapse_datatemplates_to_romdatas(test_input) == expected


@pytest.mark.parametrize("romdatas,all_addresses,default_data,expected", [
(
[
rom.RomData(address="00", data="0000"),
rom.RomData(address="11", data="1111"),
],
[
'00',
'01',
'10',
'11',
],
"0101",
[
rom.RomData(address="00", data="0000"),
rom.RomData(address="01", data="0101"),
rom.RomData(address="10", data="0101"),
rom.RomData(address="11", data="1111"),
]
)
])
def test_populate_empty_addresses(romdatas, all_addresses, default_data, expected):
assert rom.populate_empty_addresses(romdatas, all_addresses, default_data) == expected


@pytest.mark.parametrize("test_input,expected", [
(
[
rom.RomData(address="00", data="0000"),
rom.RomData(address="00", data="0000"),
rom.RomData(address="11", data="0000"),
],
True
),
(
[
rom.RomData(address="00", data="0000"),
rom.RomData(address="01", data="0000"),
rom.RomData(address="11", data="0000"),
],
False
)
])
def test_romdatas_have_duplicate_addresses(test_input, expected):
assert rom.romdatas_have_duplicate_addresses(test_input) == expected


@pytest.mark.parametrize("test_input,expected", [
(
[
rom.RomData(
address="0",
data="10101010111111110000000011001100"
),
rom.RomData(
address="1",
data="00000000110000110011110011110000"
),
],
{
0: [
rom.RomData(address="0", data="11001100"),
rom.RomData(address="1", data="11110000"),
],
1: [
rom.RomData(address="0", data="00000000"),
rom.RomData(address="1", data="00111100"),
],
2: [
rom.RomData(address="0", data="11111111"),
rom.RomData(address="1", data="11000011"),
],
3: [
rom.RomData(address="0", data="10101010"),
rom.RomData(address="1", data="00000000"),
],
}
),
(
[
rom.RomData(
address="0",
data="1010101011111111"
),
],
{
0: [
rom.RomData(address="0", data="11111111"),
],
1: [
rom.RomData(address="0", data="10101010"),
],
}
),
])
def test_slice_rom(test_input, expected):
assert rom.slice_rom(test_input) == expected


@pytest.mark.parametrize("test_input,expected", [
("010", 1),
("01001111", 1),
Expand All @@ -72,7 +177,31 @@ def test_get_num_bytes(test_input, expected):
assert rom.get_num_bytes(test_input) == expected


@pytest.mark.slow
def test_get_rom_doesnt_raise():
data = rom.get_rom()
assert True
@pytest.mark.parametrize("romdatas,end,start,expected", [
(
[
rom.RomData(address="00", data="0000"),
rom.RomData(address="11", data="1101"),
],
2,
0,
[
rom.RomData(address="00", data="000"),
rom.RomData(address="11", data="101"),
]
),
(
[
rom.RomData(address="00", data="0000"),
rom.RomData(address="11", data="1101"),
],
0,
0,
[
rom.RomData(address="00", data="0"),
rom.RomData(address="11", data="1"),
]
),
])
def test_get_romdata_slice(romdatas, end, start, expected):
assert rom.get_romdata_slice(romdatas, end, start) == expected
6 changes: 4 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
envlist = py27

[testenv]

[testenv:test]
deps =
pytest

commands =
pytest {posargs}

[testenv:cov]
basepython = python2.7

deps =
pytest
coverage
Expand All @@ -22,6 +22,8 @@ commands =
coverage html

[testenv:travis]
basepython = python2.7

deps =
pytest
coverage
Expand Down

0 comments on commit 4ccac58

Please sign in to comment.