Skip to content

Commit d9a0a19

Browse files
Added unit tests for distribute tuple
1 parent 236d4fb commit d9a0a19

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

test-data/unit/check-tuples.test

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,45 @@ reveal_type(x) # N: Revealed type is "Tuple[builtins.int, fallback=__main__.Tes
10401040
[builtins fixtures/tuple.pyi]
10411041
[out]
10421042

1043+
# ----------------------------------------------------------------------------
1044+
# Union-in-Tuple distribution
1045+
# ----------------------------------------------------------------------------
1046+
1047+
[case testTupleUnionDistributionSuccess]
1048+
from typing import Tuple, Optional, Union
1049+
1050+
def f1(x: Tuple[float, Optional[float]]) -> Union[Tuple[float, float], Tuple[float, None]]:
1051+
return x
1052+
1053+
def f2(x: Tuple[Union[int, str], float]) -> Union[Tuple[int, float], Tuple[str, float]]:
1054+
return x
1055+
1056+
def f3(x: Tuple[int, Union[str, None]]) -> Union[Tuple[int, str], Tuple[int, None]]:
1057+
return x
1058+
1059+
def f4(x: Tuple[Union[int, float]]) -> Union[Tuple[int], Tuple[float]]:
1060+
return x
1061+
1062+
def f5(x: Tuple[Union[int, str], Union[bool, None]]) -> Union[
1063+
Tuple[int, bool],
1064+
Tuple[int, None],
1065+
Tuple[str, bool],
1066+
Tuple[str, None],
1067+
]:
1068+
return x
1069+
1070+
[builtins fixtures/tuple.pyi]
1071+
1072+
[case testTupleUnionDistributionFail]
1073+
from typing import Tuple, Optional, Union
1074+
1075+
def g1(x: Tuple[float, Optional[float]]) -> Union[Tuple[float, float], Tuple[str, float]]:
1076+
return x # E: Incompatible return value type (got "Tuple[float, Optional[float]]", expected "Union[Tuple[float, float], Tuple[str, float]]")
1077+
1078+
def g2(x: Tuple[float, Optional[float]]) -> Union[Tuple[float, str], Tuple[float, None]]:
1079+
return x # E: Incompatible return value type (got "Tuple[float, Optional[float]]", expected "Union[Tuple[float, str], Tuple[float, None]]")
1080+
1081+
[builtins fixtures/tuple.pyi]
10431082

10441083
-- Variable-length tuples (Tuple[t, ...] with literal '...')
10451084
-- ---------------------------------------------------------

0 commit comments

Comments
 (0)