Skip to content

Commit ddcc5c5

Browse files
move type tests to own file
1 parent 21822e2 commit ddcc5c5

File tree

2 files changed

+31
-28
lines changed

2 files changed

+31
-28
lines changed

python/egg_smol/type_constraint_solver.py

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -69,31 +69,3 @@ def _subtitute_typevars(self, tp: TypeOrVarRef) -> JustTypeRef:
6969
tp.name,
7070
tuple(self._subtitute_typevars(arg) for arg in tp.args),
7171
)
72-
73-
74-
def test_type_inference() -> None:
75-
import pytest
76-
77-
i64 = TypeRefWithVars("i64")
78-
unit = TypeRefWithVars("Unit")
79-
K, V = ClassTypeVarRef(0), ClassTypeVarRef(1)
80-
map = TypeRefWithVars("Map", (K, V))
81-
map_i64_unit = TypeRefWithVars("Map", (i64, unit))
82-
83-
cs = TypeConstraintSolver()
84-
assert cs.infer_return_type([i64], i64, [i64.to_just()]) == i64.to_just()
85-
with pytest.raises(TypeError):
86-
cs.infer_return_type([i64], i64, [unit.to_just()])
87-
with pytest.raises(TypeError):
88-
cs.infer_return_type([], i64, [unit.to_just()])
89-
90-
assert cs.infer_return_type([map, K], V, [map_i64_unit.to_just(), i64.to_just()]) == unit.to_just()
91-
92-
with pytest.raises(TypeError):
93-
cs.infer_return_type([map, K], V, [map_i64_unit.to_just(), unit.to_just()])
94-
95-
bound_cs = TypeConstraintSolver.from_type_parameters([i64.to_just(), unit.to_just()])
96-
assert bound_cs.infer_return_type([K], V, [i64.to_just()]) == unit.to_just()
97-
98-
with pytest.raises(TypeError):
99-
bound_cs.infer_return_type([K], V, [unit.to_just()])
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from __future__ import annotations
2+
3+
import pytest
4+
from egg_smol.declarations import *
5+
from egg_smol.type_constraint_solver import *
6+
7+
8+
def test_type_inference() -> None:
9+
i64 = TypeRefWithVars("i64")
10+
unit = TypeRefWithVars("Unit")
11+
K, V = ClassTypeVarRef(0), ClassTypeVarRef(1)
12+
map = TypeRefWithVars("Map", (K, V))
13+
map_i64_unit = TypeRefWithVars("Map", (i64, unit))
14+
15+
cs = TypeConstraintSolver()
16+
assert cs.infer_return_type([i64], i64, [i64.to_just()]) == i64.to_just()
17+
with pytest.raises(TypeError):
18+
cs.infer_return_type([i64], i64, [unit.to_just()])
19+
with pytest.raises(TypeError):
20+
cs.infer_return_type([], i64, [unit.to_just()])
21+
22+
assert cs.infer_return_type([map, K], V, [map_i64_unit.to_just(), i64.to_just()]) == unit.to_just()
23+
24+
with pytest.raises(TypeError):
25+
cs.infer_return_type([map, K], V, [map_i64_unit.to_just(), unit.to_just()])
26+
27+
bound_cs = TypeConstraintSolver.from_type_parameters([i64.to_just(), unit.to_just()])
28+
assert bound_cs.infer_return_type([K], V, [i64.to_just()]) == unit.to_just()
29+
30+
with pytest.raises(TypeError):
31+
bound_cs.infer_return_type([K], V, [unit.to_just()])

0 commit comments

Comments
 (0)