pyspamsum/tests/test_spamsum.py
2025-02-18 14:23:09 +08:00

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