Skip to content

Commit cff28af

Browse files
committed
Add tests for TypeRepr.isTupleN
1 parent 96e6a5a commit cff28af

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import scala.quoted.*
2+
3+
inline def isTupleN[T]: Boolean = ${ isTupleNImpl[T] }
4+
5+
private def isTupleNImpl[T: Type](using Quotes): Expr[Boolean] = {
6+
import quotes.reflect.*
7+
Expr(TypeRepr.of[T].isTupleN)
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
@main def Test = {
2+
assert(isTupleN[Tuple1[Int]])
3+
assert(isTupleN[(Int, Int)])
4+
assert(isTupleN[(Int, Int, Int)])
5+
assert(isTupleN[(Int, Int, Int, Int)])
6+
assert(isTupleN[(Int, Int, Int, Int, Int)])
7+
assert(isTupleN[(Int, Int, Int, Int, Int, Int)])
8+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int)])
9+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int)])
10+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int)])
11+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
12+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
13+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
14+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
15+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
16+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
17+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
18+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
19+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
20+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
21+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
22+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
23+
assert(isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)])
24+
25+
type Tup = (Int, Int)
26+
assert(isTupleN[Tup])
27+
28+
assert(!isTupleN[(Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)]) // No tuple 23
29+
assert(!isTupleN[Tuple])
30+
assert(!isTupleN[EmptyTuple])
31+
assert(!isTupleN[NonEmptyTuple])
32+
assert(!isTupleN[Int *: Tuple])
33+
34+
assert(!isTupleN[Any])
35+
assert(!isTupleN[Int])
36+
assert(!isTupleN[Object])
37+
assert(!isTupleN[Nothing])
38+
}

0 commit comments

Comments
 (0)