|
263 | 263 | @test iszero(@allocated tr2 = convert(ScaledIsometry{Nothing}, tr))
|
264 | 264 | @test convert(ScaledIsometry{Point{Int}}, tr).origin isa Point{Int}
|
265 | 265 | @test hash(ScaledIsometry()) == hash(ScaledIsometry(Point(0, 0)))
|
| 266 | + |
| 267 | + # Point vector unfolding |
| 268 | + ux = Point(1, 0) |
| 269 | + uy = Point(0, 1) |
| 270 | + # Ints |
| 271 | + pts = [Point(-1, 0), Point(-1, 1)] |
| 272 | + @test unfold(pts, uy) ≈ [Point(-1, 0), Point(-1, 1), Point(1, 1), Point(1, 0)] |
| 273 | + # Floats |
| 274 | + pts = [Point(-1.0, 0.0), Point(-1.0, 1.0)] |
| 275 | + @test unfold(pts, uy) ≈ |
| 276 | + [Point(-1.0, 0.0), Point(-1.0, 1.0), Point(1.0, 1.0), Point(1.0, 0.0)] |
| 277 | + # Mixed Ints/Floats |
| 278 | + pts = [Point(-1, 0), Point(-1, 1)] |
| 279 | + @test unfold(pts, Point(0.0, 1.0)) ≈ |
| 280 | + [Point(-1.0, 0.0), Point(-1.0, 1.0), Point(1.0, 1.0), Point(1.0, 0.0)] |
| 281 | + # x-axis reflection |
| 282 | + pts = [Point(-1, -1), Point(1, -1)] |
| 283 | + @test unfold(pts, ux) ≈ [Point(-1, -1), Point(1, -1), Point(1, 1), Point(-1, 1)] |
| 284 | + # With units |
| 285 | + pts = [Point(-1μm, 0μm), Point(-1μm, 1μm)] |
| 286 | + @test unfold(pts, uy) ≈ |
| 287 | + [Point(-1μm, 0μm), Point(-1μm, 1μm), Point(1μm, 1μm), Point(1μm, 0μm)] |
| 288 | + @test unfold(pts, uy * μm) ≈ |
| 289 | + [Point(-1μm, 0μm), Point(-1μm, 1μm), Point(1μm, 1μm), Point(1μm, 0μm)] |
| 290 | + # With angle instead of vector |
| 291 | + @test unfold(pts, 90°) ≈ |
| 292 | + [Point(-1μm, 0μm), Point(-1μm, 1μm), Point(1μm, 1μm), Point(1μm, 0μm)] |
| 293 | + # Axis by two points |
| 294 | + @test unfold(pts, Point(0μm, 0μm), Point(0μm, 1μm)) ≈ |
| 295 | + [Point(-1μm, 0μm), Point(-1μm, 1μm), Point(1μm, 1μm), Point(1μm, 0μm)] |
| 296 | + # Less trivial case (off-center axis) |
| 297 | + @test unfold(pts, Point(1μm, 0μm), Point(1μm, 1μm)) ≈ |
| 298 | + [Point(-1μm, 0μm), Point(-1μm, 1μm), Point(3μm, 1μm), Point(3μm, 0μm)] |
266 | 299 | end
|
267 | 300 |
|
268 | 301 | @testset "Polygon rendering" begin
|
|
0 commit comments