selfcrossing-1 and selfcrossing-1-rev tests

This commit is contained in:
Motiejus Jakštys 2021-04-15 15:47:17 +03:00
parent 7a7c0ad72b
commit 4a32d2f7de

View File

@ -135,13 +135,15 @@ end $$ language plpgsql;
do $$ do $$
declare declare
fig6 constant text default 'LINESTRING(84 47,91 59,114 64,120 45,125 39,141 39,147 32)';
selfcrossing1 constant text default 'LINESTRING(-27 180,-20 166,-13 176,-18 184)';
vcrossings geometry[]; vcrossings geometry[];
mutated boolean; mutated boolean;
begin begin
select (self_crossing(array((select way from wm_debug where stage='cinflections' and name='fig6')))).* into vcrossings, mutated; select (self_crossing(array((select way from wm_debug where stage='cinflections' and name='fig6')))).* into vcrossings, mutated;
perform assert_equals(true, mutated); perform assert_equals(true, mutated);
perform assert_equals( perform assert_equals(
'LINESTRING(84 47,91 59,114 64,120 45,125 39,141 39,147 32)', fig6,
(select st_astext( (select st_astext(
st_linemerge(st_union(way)) st_linemerge(st_union(way))
) from (select unnest(vcrossings) way) a) ) from (select unnest(vcrossings) way) a)
@ -150,7 +152,7 @@ begin
select (self_crossing(array((select way from wm_debug where stage='cinflections' and name='fig6-rev')))).* into vcrossings, mutated; select (self_crossing(array((select way from wm_debug where stage='cinflections' and name='fig6-rev')))).* into vcrossings, mutated;
perform assert_equals(true, mutated); perform assert_equals(true, mutated);
perform assert_equals( perform assert_equals(
'LINESTRING(84 47,91 59,114 64,120 45,125 39,141 39,147 32)', fig6,
(select st_astext( (select st_astext(
st_translate(st_reverse(st_linemerge(st_union(way))), -60, 0) st_translate(st_reverse(st_linemerge(st_union(way))), -60, 0)
) from (select unnest(vcrossings) way) a) ) from (select unnest(vcrossings) way) a)
@ -165,4 +167,23 @@ begin
) from (select unnest(vcrossings) way) a) ) from (select unnest(vcrossings) way) a)
); );
select (self_crossing(array((select way from wm_debug where stage='cinflections' and name='selfcrossing-1' and gen=1)))).* into vcrossings, mutated;
perform assert_equals(true, mutated);
perform assert_equals(
selfcrossing1,
(select st_astext(
st_linemerge(st_union(way))
) from (select unnest(vcrossings) way) a)
);
select (self_crossing(array((select way from wm_debug where stage='cinflections' and name='selfcrossing-1-rev')))).* into vcrossings, mutated;
perform assert_equals(true, mutated);
perform assert_equals(
selfcrossing1,
(select st_astext(
st_translate(st_reverse(st_linemerge(st_union(way))), -60, 0)
) from (select unnest(vcrossings) way) a)
);
end $$ language plpgsql; end $$ language plpgsql;