tests for resolve

This commit is contained in:
Will McGugan
2022-08-30 12:34:02 +01:00
parent b5246a54e8
commit 671dba5cf4
2 changed files with 58 additions and 29 deletions

View File

@@ -71,32 +71,3 @@ def resolve(
] ]
return results return results
if __name__ == "__main__":
dimensions = [Scalar.parse("3"), Scalar.parse("1fr"), Scalar.parse("1")]
print(resolve(dimensions, 20, 1, Size(40, 20), Size(40, 20)))
print(
resolve(
[Scalar.parse("1fr"), Scalar.parse("1fr")],
20,
1,
Size(40, 20),
Size(40, 20),
)
)
print(
resolve(
[
Scalar.parse("1fr"),
],
20,
1,
Size(40, 20),
Size(40, 20),
)
)

58
tests/test_resolve.py Normal file
View File

@@ -0,0 +1,58 @@
import pytest
from textual.geometry import Size
from textual.css.scalar import Scalar
from textual._resolve import resolve
def test_resolve_empty():
assert resolve([], 10, 1, Size(20, 10), Size(80, 24)) == []
@pytest.mark.parametrize(
"scalars,total,gutter,result",
[
(["10"], 100, 0, [(0, 10)]),
(
["10", "20"],
100,
0,
[(0, 10), (10, 20)],
),
(
["10", "20"],
100,
1,
[(0, 10), (11, 20)],
),
(
["10", "1fr"],
100,
1,
[(0, 10), (11, 89)],
),
(
["1fr", "1fr"],
100,
0,
[(0, 50), (50, 50)],
),
(
["3", "1fr", "1fr", "1"],
100,
1,
[(0, 3), (4, 46), (51, 47), (99, 1)],
),
],
)
def test_resolve(scalars, total, gutter, result):
assert (
resolve(
[Scalar.parse(scalar) for scalar in scalars],
total,
gutter,
Size(40, 20),
Size(80, 24),
)
== result
)