|
1 | 1 | @testitem "Traversing" setup = [Setup] begin
|
| 2 | + # LinearPath |
2 | 3 | grid = cartgrid(100, 100)
|
3 |
| - for path in [LinearPath(), RandomPath(), ShiftedPath(LinearPath(), 0), SourcePath(1:3)] |
4 |
| - p = traverse(grid, path) |
5 |
| - @test length(p) == 100 * 100 |
6 |
| - end |
7 |
| - |
8 |
| - grid = cartgrid(100, 100) |
9 |
| - p = traverse(grid, LinearPath()) |
10 |
| - @test p == 1:(100 * 100) |
| 4 | + path = LinearPath() |
| 5 | + @test traverse(grid, path) == 1:10000 |
11 | 6 |
|
| 7 | + # RandomPath |
12 | 8 | grid = cartgrid(100, 100)
|
13 |
| - p = traverse(grid, RandomPath()) |
14 |
| - @test all(1 .≤ collect(p) .≤ 100 * 100) |
15 | 9 | path = RandomPath(StableRNG(123))
|
| 10 | + @test all(1 .≤ traverse(grid, path) .≤ 10000) |
16 | 11 | grid = cartgrid(3, 3)
|
| 12 | + path = RandomPath(StableRNG(123)) |
17 | 13 | @test traverse(grid, path) == [4, 7, 2, 1, 3, 8, 5, 6, 9]
|
18 | 14 |
|
| 15 | + # SourcePath |
19 | 16 | grid = cartgrid(3, 3)
|
20 | 17 | pset = PointSet(centroid.(grid))
|
21 | 18 | for sdomain in [grid, pset]
|
22 |
| - t = traverse(sdomain, SourcePath([1, 9])) |
23 |
| - @test collect(t) == [1, 9, 2, 4, 6, 8, 5, 3, 7] |
24 |
| - |
25 |
| - t = traverse(sdomain, SourcePath([1])) |
26 |
| - @test collect(t) == [1, 2, 4, 5, 3, 7, 6, 8, 9] |
| 19 | + spath = SourcePath([1, 9]) |
| 20 | + @test traverse(sdomain, spath) == [1, 9, 2, 4, 6, 8, 5, 3, 7] |
| 21 | + spath = SourcePath([1]) |
| 22 | + @test traverse(sdomain, spath) == [1, 2, 4, 5, 3, 7, 6, 8, 9] |
27 | 23 | end
|
28 | 24 |
|
| 25 | + # ShiftedPath |
29 | 26 | grid = cartgrid(3, 3)
|
30 | 27 | path = LinearPath()
|
31 | 28 | for offset in [0, 1, -1]
|
|
36 | 33 | @test collect(st) == circshift(t, -offset)
|
37 | 34 | end
|
38 | 35 |
|
| 36 | + # MultiGridPath |
39 | 37 | path = MultiGridPath()
|
40 |
| - |
41 | 38 | grid = cartgrid(3, 3)
|
42 | 39 | @test traverse(grid, path) == [1, 3, 7, 9, 2, 4, 5, 6, 8]
|
43 |
| - |
44 | 40 | grid = cartgrid(3, 4)
|
45 | 41 | @test traverse(grid, path) == [1, 3, 10, 12, 2, 7, 8, 9, 4, 5, 6, 11]
|
46 |
| - |
47 | 42 | grid = CartesianGrid(3, 3, 2)
|
48 | 43 | @test traverse(grid, path) == [1, 3, 7, 9, 10, 12, 16, 18, 2, 4, 5, 6, 8, 11, 13, 14, 15, 17]
|
49 |
| - |
50 | 44 | grid = RectilinearGrid(T.(0:3), T.(0:3))
|
51 | 45 | @test traverse(grid, path) == [1, 3, 7, 9, 2, 4, 5, 6, 8]
|
52 |
| - |
53 | 46 | grid = RectilinearGrid(T.(0:0.5:2), T.(0:0.5:2))
|
54 | 47 | @test traverse(grid, path) == [1, 4, 13, 16, 3, 9, 11, 2, 5, 6, 7, 8, 10, 12, 14, 15]
|
55 |
| - |
56 | 48 | cgrid = cartgrid(4, 4)
|
57 | 49 | rgrid = RectilinearGrid(T.(0:4), T.(0:4))
|
58 | 50 | @test traverse(cgrid, path) == traverse(rgrid, path)
|
59 |
| - |
60 | 51 | grid = cartgrid(3, 4)
|
61 | 52 | vgrid = view(grid, 3:10)
|
62 | 53 | @test traverse(vgrid, path) == [3, 10, 7, 8, 9, 4, 5, 6]
|
63 | 54 |
|
| 55 | + # visual tests |
64 | 56 | if visualtests
|
65 | 57 | paths = [LinearPath(), RandomPath(StableRNG(123)), ShiftedPath(LinearPath(), 10), SourcePath(1:3), MultiGridPath()]
|
66 | 58 |
|
67 | 59 | fnames = ["linear-path", "random-path", "shifted-path", "source-path", "multi-grid-path"]
|
68 | 60 |
|
69 | 61 | for (path, fname) in zip(paths, fnames)
|
70 |
| - for d in (6, 7) |
71 |
| - agrid = cartgrid(d, d) |
72 |
| - elems = [agrid[i] for i in traverse(agrid, path)] |
73 |
| - fig = viz(elems, color=1:length(elems)) |
74 |
| - @test_reference "data/$fname-$(d)x$(d).png" fig |
| 62 | + for n in (6, 7) |
| 63 | + agrid = cartgrid(n, n) |
| 64 | + pinds = collect(traverse(agrid, path)) |
| 65 | + pgrid = view(agrid, pinds) |
| 66 | + fig = viz(pgrid, color=1:nelements(pgrid)) |
| 67 | + @test_reference "data/$fname-$(n)x$(n).png" fig |
75 | 68 | end
|
76 | 69 | end
|
77 | 70 | end
|
|
0 commit comments