(t *testing.T)
| 1198 | } |
| 1199 | |
| 1200 | func TestPathNot(t *testing.T) { |
| 1201 | var tts = []struct { |
| 1202 | p, q string |
| 1203 | r string |
| 1204 | }{ |
| 1205 | // overlap |
| 1206 | {"L10 0L5 10z", "M0 5L10 5L5 15z", "L10 0L7.5 5L2.5 5z"}, |
| 1207 | {"L10 0L5 10z", "M0 5L5 15L10 5z", "L10 0L7.5 5L2.5 5z"}, |
| 1208 | {"L5 10L10 0z", "M0 5L10 5L5 15z", "L10 0L7.5 5L2.5 5z"}, |
| 1209 | {"L5 10L10 0z", "M0 5L5 15L10 5z", "L10 0L7.5 5L2.5 5z"}, |
| 1210 | |
| 1211 | {"M0 5L10 5L5 15z", "L10 0L5 10z", "M0 5L2.5 5L5 10L7.5 5L10 5L5 15z"}, |
| 1212 | {"M0 5L10 5L5 15z", "L5 10L10 0z", "M0 5L2.5 5L5 10L7.5 5L10 5L5 15z"}, |
| 1213 | {"M0 5L5 15L10 5z", "L10 0L5 10z", "M0 5L2.5 5L5 10L7.5 5L10 5L5 15z"}, |
| 1214 | {"M0 5L5 15L10 5z", "L5 10L10 0z", "M0 5L2.5 5L5 10L7.5 5L10 5L5 15z"}, |
| 1215 | |
| 1216 | // touching edges |
| 1217 | {"L2 0L2 2L0 2z", "M2 0L4 0L4 2L2 2z", "L2 0L2 2L0 2z"}, |
| 1218 | {"L2 0L2 2L0 2z", "M2 1L4 1L4 3L2 3z", "L2 0L2 2L0 2z"}, |
| 1219 | {"M2 0L4 0L4 2L2 2z", "L2 0L2 2L0 2z", "M2 0L4 0L4 2L2 2z"}, |
| 1220 | {"M2 1L4 1L4 3L2 3z", "L2 0L2 2L0 2z", "M2 1L4 1L4 3L2 3z"}, |
| 1221 | |
| 1222 | // no overlap |
| 1223 | {"L10 0L5 10z", "M0 10L10 10L5 20z", "L10 0L5 10z"}, |
| 1224 | {"M0 10L10 10L5 20z", "L10 0L5 10z", "M0 10L10 10L5 20z"}, |
| 1225 | |
| 1226 | // containment |
| 1227 | {"L10 0L5 10z", "M2 2L8 2L5 8z", "L10 0L5 10zM2 2L5 8L8 2z"}, |
| 1228 | {"M2 2L8 2L5 8z", "L10 0L5 10z", ""}, |
| 1229 | |
| 1230 | // equal |
| 1231 | {"L10 0L5 10z", "L10 0L5 10z", ""}, |
| 1232 | {"L10 -10L20 0L10 10z", "A10 10 0 0 0 20 0A10 10 0 0 0 0 0z", ""}, |
| 1233 | //{"A10 10 0 0 0 20 0A10 10 0 0 0 0 0z", "L10 -10L20 0L10 10z", "A10 10 0 0 1 20 0A10 10 0 0 1 0 0zL10 10L20 0L10 -10z"}, // TODO |
| 1234 | //{"L10 -10L20 0L10 10z", "Q10 0 10 10Q10 0 20 0Q10 0 10 -10Q10 0 0 0z", "L10 -10L20 0L10 10zQ10 0 10 10Q10 0 20 0Q10 0 10 -10Q10 0 0 0z"}, // TODO |
| 1235 | {"Q10 0 10 10Q10 0 20 0Q10 0 10 -10Q10 0 0 0z", "L10 -10L20 0L10 10z", ""}, |
| 1236 | |
| 1237 | // partly parallel |
| 1238 | {"M1 3L4 3L4 4L6 6L6 7L1 7z", "M9 3L4 3L4 7L9 7z", "M1 3L4 3L4 7L1 7z"}, |
| 1239 | {"M1 3L6 3L6 4L4 6L4 7L1 7z", "M9 3L4 3L4 7L9 7z", "M1 3L4 3L4 7L1 7z"}, |
| 1240 | {"L2 0L2 1L0 1z", "L1 0L1 1L0 1z", "M1 0L2 0L2 1L1 1z"}, |
| 1241 | {"L1 0L1 1L0 1z", "L2 0L2 1L0 1z", ""}, |
| 1242 | {"L3 0L3 1L0 1z", "M1 0L2 0L2 1L1 1z", "L1 0L1 0L1 1L0 1zM2 0L3 0L3 1L2 1z"}, |
| 1243 | {"L2 0L2 2L0 2z", "L1 0L1 1L0 1z", "M0 1L1 1L1 0L2 0L2 2L0 2z"}, |
| 1244 | |
| 1245 | // figure 10 from Martinez et al. |
| 1246 | {"L3 0L3 3L0 3z", "M1 2L2 2L2 3L1 3z", "L3 0L3 3L2 3L2 2L1 2L1 3L0 3z"}, |
| 1247 | {"L3 0L3 3L0 3z", "M1 3L2 3L2 4L1 4z", "L3 0L3 3L0 3z"}, |
| 1248 | |
| 1249 | // subpaths on A cross at the same point on B |
| 1250 | {"L1 0L1 1L0 1zM2 -1L2 2L1 2L1 1.1L1.6 0.5L1 -0.1L1 -1z", "M2 -1L2 2L1 2L1 -1z", "L1 0L1 1L0 1z"}, |
| 1251 | {"L1 0L1 1L0 1zM2 -1L2 2L1 2L1 1L1.5 0.5L1 0L1 -1z", "M2 -1L2 2L1 2L1 -1z", "L1 0L1 1L0 1z"}, |
| 1252 | {"L1 0L1 1L0 1zM2 -1L2 2L1 2L1 0.9L1.4 0.5L1 0.1L1 -1z", "M2 -1L2 2L1 2L1 -1z", "L1 0L1 1L0 1z"}, |
| 1253 | {"M2 -1L2 2L1 2L1 -1z", "L1 0L1 1L0 1zM2 -1L2 2L1 2L1 1.1L1.6 0.5L1 -0.1L1 -1z", "M1 -0.1L1.6 0.5L1 1.1z"}, |
| 1254 | {"M2 -1L2 2L1 2L1 -1z", "L1 0L1 1L0 1zM2 -1L2 2L1 2L1 1L1.5 0.5L1 0L1 -1z", "M1 0L1.5 0.5L1 1z"}, |
| 1255 | {"M2 -1L2 2L1 2L1 -1z", "L1 0L1 1L0 1zM2 -1L2 2L1 2L1 0.9L1.4 0.5L1 0.1L1 -1z", "M1 0.1L1.4 0.5L1 0.9z"}, |
| 1256 | |
| 1257 | // subpaths |
nothing calls this directly
no test coverage detected