mirror of
https://github.com/rio-labs/rio.git
synced 2026-01-20 04:19:31 -06:00
87 lines
1.9 KiB
Python
87 lines
1.9 KiB
Python
import pytest
|
|
|
|
import rio
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"input_type,output_type",
|
|
[
|
|
# Simple cases
|
|
("pdf", "pdf"),
|
|
(".Pdf", "pdf"),
|
|
(".PDF", "pdf"),
|
|
("*pdf", "pdf"),
|
|
("*.Pdf", "pdf"),
|
|
("*.PDF", "pdf"),
|
|
("application/pdf", "pdf"),
|
|
# Make the results are standardized
|
|
(".jpg", "jpg"),
|
|
(".jpeg", "jpg"),
|
|
# Invalid MIME types
|
|
("not/a/real/type", "type"),
|
|
("////Type", "type"),
|
|
],
|
|
)
|
|
def test_standardize_file_types(
|
|
input_type: str,
|
|
output_type: str,
|
|
) -> None:
|
|
cleaned_type = rio.utils.normalize_file_type(input_type)
|
|
assert cleaned_type == output_type
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"unsorted_sequence,keys,sorted_sequence_should",
|
|
[
|
|
(
|
|
[0, 1, 2, 3, 4],
|
|
[0, 1, 2, 3, 4],
|
|
[0, 1, 2, 3, 4],
|
|
),
|
|
(
|
|
[4, 3, 2, 1, 0],
|
|
[4, 3, 2, 1, 0],
|
|
[0, 1, 2, 3, 4],
|
|
),
|
|
(
|
|
[4, 3, 2, 1, 0],
|
|
[4, None, None, None, 0],
|
|
[0, 3, 2, 1, 4],
|
|
),
|
|
(
|
|
[0, 1, 2, 3],
|
|
[0, 1, 1, 3],
|
|
[0, 1, 2, 3],
|
|
),
|
|
(
|
|
[3, 2, 1, 0],
|
|
[3, 1, 1, 0],
|
|
[0, 2, 1, 3],
|
|
),
|
|
(
|
|
[0, 1, 2, 3],
|
|
[0, None, None, None],
|
|
[0, 1, 2, 3],
|
|
),
|
|
(
|
|
[0, 1, 2, 3],
|
|
[9, None, None, None],
|
|
[1, 2, 3, 0],
|
|
),
|
|
],
|
|
)
|
|
def test_soft_sort(
|
|
unsorted_sequence: list[int],
|
|
keys: list[int],
|
|
sorted_sequence_should: list[int],
|
|
) -> None:
|
|
# Sort the sequence
|
|
sorted_sequence_is = unsorted_sequence.copy()
|
|
rio.utils.soft_sort(
|
|
sorted_sequence_is,
|
|
key=lambda x: keys[unsorted_sequence.index(x)],
|
|
)
|
|
|
|
# Verify the result
|
|
assert sorted_sequence_is == sorted_sequence_should
|