Mercurial > repos > public > sbplib_julia
comparison test/Grids/geometry_test.jl @ 1973:8e9575b518a1 feature/grids/geometry_functions
Add tests for TransfiniteInterpolationSurface and implemnet check_tranfiniteinterpolation
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 14 Feb 2025 22:19:06 +0100 |
parents | 7f4a5146c84c |
children | 3ed7ca1f60c4 |
comparison
equal
deleted
inserted
replaced
1971:9e89084cbba4 | 1973:8e9575b518a1 |
---|---|
1 using Diffinitive.Grids | 1 using Diffinitive.Grids |
2 using Diffinitive.Grids: Line, LineSegment, linesegments, polygon_edges, Circle | 2 using Diffinitive.Grids: Line, LineSegment, linesegments, polygon_edges, Circle, TransfiniteInterpolationSurface, check_transfiniteinterpolation |
3 using StaticArrays | 3 using StaticArrays |
4 | 4 |
5 @testset "Line" begin | 5 @testset "Line" begin |
6 @testset "Constructors" begin | 6 @testset "Constructors" begin |
7 @test Line([1,2],[2,3]) isa Line{SVector{2,Int}} | 7 @test Line([1,2],[2,3]) isa Line{SVector{2,Int}} |
114 end | 114 end |
115 end | 115 end |
116 | 116 |
117 @testset "TransfiniteInterpolationSurface" begin | 117 @testset "TransfiniteInterpolationSurface" begin |
118 @testset "Constructors" begin | 118 @testset "Constructors" begin |
119 @test TransfiniteInterpolationSurface(t->[1,2], t->[2,1], t->[0,0], t->[1,1]) isa TransfiniteInterpolationSurface | |
120 | |
121 cs = polygon_edges([0,0],[1,0],[1,1],[0,1]) | |
122 @test TransfiniteInterpolationSurface(cs...) isa TransfiniteInterpolationSurface | |
119 end | 123 end |
120 | 124 |
121 @test_broken false | 125 @testset "Evaluation" begin |
126 a, b, c, d = [1,0],[2,1/4],[2.5,1],[-1/3,1] | |
127 cs = polygon_edges([0,0],[1,0],[1,1],[0,1]) | |
128 ti = TransfiniteInterpolationSurface(cs...) | |
129 | |
130 @test ti(0,0) == [0,0] | |
131 @test ti([0,0]) == [0,0] | |
132 @test ti(1,0) == [1,0] | |
133 @test ti([1,0]) == [1,0] | |
134 @test ti(1,1) == [1,1] | |
135 @test ti([1,1]) == [1,1] | |
136 @test ti(0,1) == [0,1] | |
137 @test ti([0,1]) == [0,1] | |
138 | |
139 @test ti(1/2, 0) == [1/2, 0] | |
140 @test ti(1/2, 1) == [1/2, 1] | |
141 @test ti(0,1/2) == [0,1/2] | |
142 @test ti(1,1/2) == [1,1/2] | |
143 | |
144 | |
145 a, b, c, d = [1,0],[2,1/4],[2.5,1],[-1/3,1] | |
146 cs = polygon_edges(a,b,c,d) | |
147 ti = TransfiniteInterpolationSurface(cs...) | |
148 | |
149 @test ti(0,0) == a | |
150 @test ti(1,0) == b | |
151 @test ti(1,1) == c | |
152 @test ti(0,1) == d | |
153 | |
154 @test ti(1/2, 0) == (a+b)/2 | |
155 @test ti(1/2, 1) == (c+d)/2 | |
156 @test ti(0, 1/2) == (a+d)/2 | |
157 @test ti(1, 1/2) == (b+c)/2 | |
158 | |
159 # TODO: Some test with curved edges? | |
160 end | |
161 | |
162 @testset "check_transfiniteinterpolation" begin | |
163 cs = polygon_edges([0,0],[1,0],[1,1],[0,1]) | |
164 ti = TransfiniteInterpolationSurface(cs...) | |
165 | |
166 @test check_transfiniteinterpolation(ti) == nothing | |
167 @test check_transfiniteinterpolation(Bool, ti) == true | |
168 | |
169 bad_sides = [ | |
170 LineSegment([0,0],[1/2,0]), | |
171 LineSegment([1,0],[1,1/2]), | |
172 LineSegment([1,1],[0,1/2]), | |
173 LineSegment([0,1],[0,1/2]), | |
174 ] | |
175 | |
176 s1 = TransfiniteInterpolationSurface(bad_sides[1],cs[2],cs[3],cs[4]) | |
177 s2 = TransfiniteInterpolationSurface(cs[1],bad_sides[2],cs[3],cs[4]) | |
178 s3 = TransfiniteInterpolationSurface(cs[1],cs[2],bad_sides[3],cs[4]) | |
179 s4 = TransfiniteInterpolationSurface(cs[1],cs[2],cs[3],bad_sides[4]) | |
180 | |
181 @test check_transfiniteinterpolation(Bool, s1) == false | |
182 @test check_transfiniteinterpolation(Bool, s2) == false | |
183 @test check_transfiniteinterpolation(Bool, s3) == false | |
184 @test check_transfiniteinterpolation(Bool, s4) == false | |
185 | |
186 @test_throws Exception check_transfiniteinterpolation(s1) | |
187 @test_throws Exception check_transfiniteinterpolation(s2) | |
188 @test_throws Exception check_transfiniteinterpolation(s3) | |
189 @test_throws Exception check_transfiniteinterpolation(s4) | |
190 end | |
122 end | 191 end |