61 lines
1.4 KiB
Python
61 lines
1.4 KiB
Python
import pytest
|
|
|
|
import spamsum
|
|
|
|
GILBERT = (
|
|
"I am the very model of a modern Major-General, "
|
|
"I've information animal and vegetable and mineral"
|
|
)
|
|
NOT_GILBERT = (
|
|
"I am the very model of a modern Brigadier, "
|
|
"I've information animal and vegetable and something else"
|
|
)
|
|
IGNORANCE = "Huh? Gilbert and Who?"
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"s1, s2, distance",
|
|
[
|
|
(GILBERT, NOT_GILBERT, 27),
|
|
(NOT_GILBERT, GILBERT, 27),
|
|
(GILBERT, IGNORANCE, 93),
|
|
(NOT_GILBERT, IGNORANCE, 96),
|
|
],
|
|
)
|
|
def test_edit_distance(s1, s2, distance):
|
|
assert spamsum.edit_distance(s1, s2) == distance
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"value, expected",
|
|
[
|
|
(
|
|
GILBERT,
|
|
"3:kEvyc/sFIKwYclQY4MKLFE4Igu0uLzIKygn:kE6Ai3KQ/MKOgDKZn",
|
|
),
|
|
(
|
|
NOT_GILBERT,
|
|
"3:kEvyc/sFIKwpErXLsCTApY4MKLFE4Igu0uLzWKIAYjtn:kE6Ai3jjTU/MKOgdK9Yjt",
|
|
),
|
|
(
|
|
IGNORANCE,
|
|
"3:uZ3B:uZx",
|
|
),
|
|
],
|
|
)
|
|
def test_spamsum(value, expected):
|
|
assert spamsum.spamsum(value) == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"s1, s2, match",
|
|
[
|
|
(GILBERT, GILBERT, 100),
|
|
(GILBERT, NOT_GILBERT, 72),
|
|
(NOT_GILBERT, GILBERT, 72),
|
|
(GILBERT, IGNORANCE, 0),
|
|
(NOT_GILBERT, IGNORANCE, 0),
|
|
],
|
|
)
|
|
def test_match(s1, s2, match):
|
|
assert spamsum.match(spamsum.spamsum(s1), spamsum.spamsum(s2)) == match
|