PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ test_isclosed()

static void test_isclosed ( void  )
static

Definition at line 1016 of file cu_algorithm.c.

1017{
1018 LWGEOM *geom;
1019
1020 /* LINESTRING */
1021
1022 /* Not Closed on 2D */
1023 geom = lwgeom_from_wkt("LINESTRING(1 2,3 4)", LW_PARSER_CHECK_NONE);
1024 CU_ASSERT(!lwline_is_closed((LWLINE *) geom));
1025 lwgeom_free(geom);
1026
1027 /* Closed on 2D */
1028 geom = lwgeom_from_wkt("LINESTRING(1 2,3 4,1 2)", LW_PARSER_CHECK_NONE);
1029 CU_ASSERT(lwline_is_closed((LWLINE *) geom));
1030 lwgeom_free(geom);
1031
1032 /* Not closed on 3D */
1033 geom = lwgeom_from_wkt("LINESTRING(1 2 3,4 5 6)", LW_PARSER_CHECK_NONE);
1034 CU_ASSERT(!lwline_is_closed((LWLINE *) geom));
1035 lwgeom_free(geom);
1036
1037 /* Closed on 3D */
1038 geom = lwgeom_from_wkt("LINESTRING(1 2 3,4 5 6,1 2 3)", LW_PARSER_CHECK_NONE);
1039 CU_ASSERT(lwline_is_closed((LWLINE *) geom));
1040 lwgeom_free(geom);
1041
1042 /* Closed on 4D, even if M is not the same */
1043 geom = lwgeom_from_wkt("LINESTRING(1 2 3 4,5 6 7 8,1 2 3 0)", LW_PARSER_CHECK_NONE);
1044 CU_ASSERT(lwline_is_closed((LWLINE *) geom));
1045 lwgeom_free(geom);
1046
1047
1048 /* CIRCULARSTRING */
1049
1050 /* Not Closed on 2D */
1051 geom = lwgeom_from_wkt("CIRCULARSTRING(1 2,3 4,5 6)", LW_PARSER_CHECK_NONE);
1052 CU_ASSERT(!lwcircstring_is_closed((LWCIRCSTRING *) geom));
1053 lwgeom_free(geom);
1054
1055 /* Closed on 2D */
1056 geom = lwgeom_from_wkt("CIRCULARSTRING(1 2,3 4,1 2)", LW_PARSER_CHECK_NONE);
1057 CU_ASSERT(lwcircstring_is_closed((LWCIRCSTRING *) geom));
1058 lwgeom_free(geom);
1059
1060 /* Not closed on 3D */
1061 geom = lwgeom_from_wkt("CIRCULARSTRING(1 2 3,4 5 6,7 8 9)", LW_PARSER_CHECK_NONE);
1062 CU_ASSERT(!lwcircstring_is_closed((LWCIRCSTRING *) geom));
1063 lwgeom_free(geom);
1064
1065 /* Closed on 3D */
1066 geom = lwgeom_from_wkt("CIRCULARSTRING(1 2 3,4 5 6,1 2 3)", LW_PARSER_CHECK_NONE);
1067 CU_ASSERT(lwcircstring_is_closed((LWCIRCSTRING *) geom));
1068 lwgeom_free(geom);
1069
1070 /* Closed on 4D, even if M is not the same */
1071 geom = lwgeom_from_wkt("CIRCULARSTRING(1 2 3 4,5 6 7 8,1 2 3 0)", LW_PARSER_CHECK_NONE);
1072 CU_ASSERT(lwcircstring_is_closed((LWCIRCSTRING *) geom));
1073 lwgeom_free(geom);
1074
1075
1076 /* COMPOUNDCURVE */
1077
1078 /* Not Closed on 2D */
1079 geom = lwgeom_from_wkt("COMPOUNDCURVE(CIRCULARSTRING(1 2,3 4,1 2),(1 2,7 8,5 6))", LW_PARSER_CHECK_NONE);
1080 CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom));
1081 lwgeom_free(geom);
1082
1083 geom = lwgeom_from_wkt("COMPOUNDCURVE((1 2,3 4,1 2),CIRCULARSTRING(1 2,7 8,5 6))", LW_PARSER_CHECK_NONE);
1084 CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom));
1085 lwgeom_free(geom);
1086
1087 /* Closed on 2D */
1088 geom = lwgeom_from_wkt("COMPOUNDCURVE(CIRCULARSTRING(1 2,3 4,5 6), (5 6,7 8,1 2))", LW_PARSER_CHECK_NONE);
1089 CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom));
1090 lwgeom_free(geom);
1091
1092 geom = lwgeom_from_wkt("COMPOUNDCURVE((1 2,3 4,5 6),CIRCULARSTRING(5 6,7 8,1 2))", LW_PARSER_CHECK_NONE);
1093 CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom));
1094 lwgeom_free(geom);
1095
1096 /* Not Closed on 3D */
1097 geom = lwgeom_from_wkt("COMPOUNDCURVE(CIRCULARSTRING(1 2 3,4 5 6,1 2 3),(1 2 3,7 8 9,10 11 12))", LW_PARSER_CHECK_NONE);
1098 CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom));
1099 lwgeom_free(geom);
1100
1101 geom = lwgeom_from_wkt("COMPOUNDCURVE((1 2 3,4 5 6,1 2 3),CIRCULARSTRING(1 2 3,7 8 9,10 11 12))", LW_PARSER_CHECK_NONE);
1102 CU_ASSERT(!lwcompound_is_closed((LWCOMPOUND *) geom));
1103 lwgeom_free(geom);
1104
1105 /* Closed on 3D */
1106 geom = lwgeom_from_wkt("COMPOUNDCURVE(CIRCULARSTRING(1 2 3,4 5 6,7 8 9),(7 8 9,10 11 12,1 2 3))", LW_PARSER_CHECK_NONE);
1107 CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom));
1108 lwgeom_free(geom);
1109
1110 geom = lwgeom_from_wkt("COMPOUNDCURVE((1 2 3,4 5 6,7 8 9),CIRCULARSTRING(7 8 9,10 11 12,1 2 3))", LW_PARSER_CHECK_NONE);
1111 CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom));
1112 lwgeom_free(geom);
1113
1114 /* Closed on 4D, even if M is not the same */
1115 geom = lwgeom_from_wkt("COMPOUNDCURVE((1 2 3 4,5 6 7 8,9 10 11 12),CIRCULARSTRING(9 10 11 12,13 14 15 16,1 2 3 0))", LW_PARSER_CHECK_NONE);
1116 CU_ASSERT(lwcompound_is_closed((LWCOMPOUND *) geom));
1117 lwgeom_free(geom);
1118}
void lwgeom_free(LWGEOM *geom)
Definition lwgeom.c:1138
#define LW_PARSER_CHECK_NONE
Definition liblwgeom.h:2060
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
Definition lwin_wkt.c:905
int lwcircstring_is_closed(const LWCIRCSTRING *curve)
int lwline_is_closed(const LWLINE *line)
Definition lwline.c:445
int lwcompound_is_closed(const LWCOMPOUND *curve)
Definition lwcompound.c:35

References LW_PARSER_CHECK_NONE, lwcircstring_is_closed(), lwcompound_is_closed(), lwgeom_free(), lwgeom_from_wkt(), and lwline_is_closed().

Referenced by algorithms_suite_setup().

Here is the call graph for this function:
Here is the caller graph for this function: