|
| 1 | +@testitem "TransformedDomain" setup = [Setup] begin |
| 2 | + # constructor |
| 3 | + pset = PointSet(randpoint2(10)) |
| 4 | + trans1 = Scale(T(2), T(2)) |
| 5 | + trans2 = Translate(T(4), T(4)) |
| 6 | + tpset1 = TransformedDomain(pset, trans1) |
| 7 | + @test parent(tpset1) == pset |
| 8 | + @test Meshes.transform(tpset1) == trans1 |
| 9 | + tpset2 = TransformedDomain(tpset1, trans2) |
| 10 | + @test parent(tpset2) == pset |
| 11 | + @test Meshes.transform(tpset2) == (trans1 → trans2) |
| 12 | + |
| 13 | + pset = PointSet(randpoint2(10)) |
| 14 | + trans = Identity() |
| 15 | + tpset = TransformedDomain(pset, trans) |
| 16 | + @test nelements(tpset) == nelements(pset) |
| 17 | + @test element(tpset, 1) == element(pset, 1) |
| 18 | + @test tpset == pset |
| 19 | + trans = Translate(T(2), T(2)) |
| 20 | + tpset = TransformedDomain(pset, trans) |
| 21 | + @test nelements(tpset) == nelements(pset) |
| 22 | + @test element(tpset, 1) == trans(element(pset, 1)) |
| 23 | + @test tpset == trans(pset) |
| 24 | + |
| 25 | + t1 = Triangle(cart(0, 0), cart(1, 0), cart(0, 1)) |
| 26 | + t2 = Triangle(cart(1, 1), cart(2, 1), cart(1, 2)) |
| 27 | + gset = GeometrySet([t1, t2]) |
| 28 | + trans = Identity() |
| 29 | + tgset = TransformedDomain(gset, trans) |
| 30 | + @test nelements(tgset) == nelements(gset) |
| 31 | + @test element(tgset, 1) == element(gset, 1) |
| 32 | + @test tgset == gset |
| 33 | + trans = Translate(T(2), T(2)) |
| 34 | + tgset = TransformedDomain(gset, trans) |
| 35 | + @test nelements(tgset) == nelements(gset) |
| 36 | + @test element(tgset, 1) == trans(element(gset, 1)) |
| 37 | + @test tgset == trans(gset) |
| 38 | + |
| 39 | + grid = cartgrid(10, 10) |
| 40 | + trans = Identity() |
| 41 | + tgrid = TransformedDomain(grid, trans) |
| 42 | + @test nelements(tgrid) == nelements(grid) |
| 43 | + @test element(tgrid, 1) == element(grid, 1) |
| 44 | + @test tgrid == grid |
| 45 | + trans = Translate(T(2), T(2)) |
| 46 | + tgrid = TransformedDomain(grid, trans) |
| 47 | + @test nelements(tgrid) == nelements(grid) |
| 48 | + @test element(tgrid, 1) == trans(element(grid, 1)) |
| 49 | + @test tgrid == trans(grid) |
| 50 | + |
| 51 | + grid = cartgrid(10, 10) |
| 52 | + subgrid = view(grid, 1:10) |
| 53 | + trans = Identity() |
| 54 | + tsubgrid = TransformedDomain(subgrid, trans) |
| 55 | + @test nelements(tsubgrid) == nelements(subgrid) |
| 56 | + @test element(tsubgrid, 1) == element(subgrid, 1) |
| 57 | + @test tsubgrid == subgrid |
| 58 | + trans = Translate(T(2), T(2)) |
| 59 | + tsubgrid = TransformedDomain(subgrid, trans) |
| 60 | + @test nelements(tsubgrid) == nelements(subgrid) |
| 61 | + @test element(tsubgrid, 1) == trans(element(subgrid, 1)) |
| 62 | + @test tsubgrid == trans(subgrid) |
| 63 | + |
| 64 | + # transforms that change the CRS |
| 65 | + pset = PointSet(latlon(0, 0), latlon(0, 45), latlon(45, 0)) |
| 66 | + trans = Proj(Mercator) |
| 67 | + tpset = TransformedDomain(pset, trans) |
| 68 | + @test manifold(tpset) === 𝔼{2} |
| 69 | + @test crs(tpset) <: Mercator |
| 70 | + @test nelements(tpset) == nelements(pset) |
| 71 | + @test element(tpset, 1) == trans(element(pset, 1)) |
| 72 | + @test tpset == trans(pset) |
| 73 | +end |
0 commit comments