Commit 0e27f1d4 authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

add tilde object tests and make pow~ compatible with Vanilla 0.49

parent 4f8d1ccf
......@@ -11,7 +11,8 @@ debian_jessie_i386_deb:
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_control.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/regression_tilde.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -32,7 +33,8 @@ debian_jessie_x86_64_deb:
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_control.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/regression_tilde.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -53,7 +55,8 @@ debian_stretch_x86_64_deb:
- ./tar_em_up.sh -B
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_control.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/regression_tilde.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -75,7 +78,8 @@ ubuntu_14.04_i386_deb:
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_control.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/regression_tilde.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -97,7 +101,8 @@ ubuntu_14.04_x86_64_deb:
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_control.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/regression_tilde.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -119,7 +124,8 @@ ubuntu_16.04_x86_64_deb:
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- cd scripts
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" regression_control.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/regression_tilde.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -137,7 +143,8 @@ osx_10.11_x86_64_dmg:
- cd l2ork_addons
- ./tar_em_up.sh -X
- cd ../scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_control.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio regression_tilde.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -155,7 +162,8 @@ osx_10.8_x86_64_dmg:
- cd l2ork_addons
- osx_version=10.8 ./tar_em_up.sh -X
- cd ../scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_control.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio regression_tilde.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -172,7 +180,8 @@ windows_i386_innosetup:
- cd l2ork_addons
- ./tar_em_up.sh -Z
- cd ../scripts
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio -send "init dollarzero \$0" regression_control.pd
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio regression_tilde.pd
- ../packages/win32_inno/build/bin/pd.exe -noprefs -nostdpath -nogui -noaudio external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......@@ -194,7 +203,8 @@ raspbian_stretch_armv7l_deb:
- ./tar_em_up.sh -r
- cd ..
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_control.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/regression_tilde.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
......
......@@ -654,7 +654,7 @@ static void *pow_tilde_new(t_symbol *s, int argc, t_atom *argv)
}
}
t_int *pow_tilde_perform(t_int *w)
t_int *pow_tilde_perform_old(t_int *w)
{
t_sample *in1 = (t_sample *)(w[1]);
t_sample *in2 = (t_sample *)(w[2]);
......@@ -672,7 +672,23 @@ t_int *pow_tilde_perform(t_int *w)
return (w+5);
}
t_int *scalarpow_tilde_perform(t_int *w)
t_int *pow_tilde_perform(t_int *w)
{
t_sample *in1 = (t_sample *)(w[1]);
t_sample *in2 = (t_sample *)(w[2]);
t_sample *out = (t_sample *)(w[3]);
int n = (int)(w[4]);
while (n--)
{
t_float f1 = *in1++, f2 = *in2++;
*out++ = (f1 == 0 && f2 < 0) ||
(f1 < 0 && (f2 - (int)f2) != 0) ?
0 : pow(f1, f2);
}
return (w+5);
}
t_int *scalarpow_tilde_perform_old(t_int *w)
{
t_sample *in = (t_sample *)(w[1]);
t_float g = *(t_float *)(w[2]);
......@@ -689,15 +705,33 @@ t_int *scalarpow_tilde_perform(t_int *w)
return(w+5);
}
t_int *scalarpow_tilde_perform(t_int *w)
{
t_sample *in = (t_sample *)(w[1]);
t_float g = *(t_float *)(w[2]);
t_sample *out = (t_sample *)(w[3]);
int n = (int)(w[4]);
while (n--)
{
t_float f = *in++;
*out++ = (f == 0 && g < 0) ||
(f < 0 && (g - (int)g) != 0) ?
0 : pow(f, g);
}
return(w+5);
}
static void pow_tilde_dsp(t_pow_tilde *x, t_signal **sp)
{
dsp_add(pow_tilde_perform, 4,
dsp_add((pd_compatibilitylevel > 48 ?
pow_tilde_perform : pow_tilde_perform_old), 4,
sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
}
static void scalarpow_tilde_dsp(t_scalarpow_tilde *x, t_signal **sp)
{
dsp_add(scalarpow_tilde_perform, 4,
dsp_add((pd_compatibilitylevel > 48 ?
scalarpow_tilde_perform : scalarpow_tilde_perform_old), 4,
sp[0]->s_vec, &x->x_g, sp[1]->s_vec, sp[0]->s_n);
}
......
#N canvas 3 60 749 617 12;
#N canvas 591 76 749 617 12;
#X obj 345 301 r \$0-result;
#X obj 345 326 route 0;
#X obj 453 470 print failure;
#X obj 430 336 tgl 28 0 empty empty Print_All_Results 31 11 0 12 -262144
-1 -1 1 1;
-1 -1 0 1;
#X obj 159 149 bng 31 250 50 0 empty empty Run_all 39 13 0 12 -262144
-1 -1;
#X obj 56 25 r init;
......
#N canvas 636 60 534 633 12;
#X obj 135 436 switch~;
#X obj 46 21 inlet;
#X obj 225 492 pow~;
#X obj 225 517 snapshot~;
#X obj 46 383 r \$0-test;
#X obj 225 435 list split 3;
#X obj 225 460 unpack 0 0 0;
#X obj 225 543 ==;
#X obj 225 572 list append;
#X obj 46 408 trigger bang bang anything;
#X msg 46 180 \; \$0-test 2 2 4 standard positive base and positive
exponent \; \$0-test 0 2 0 bash to zero with zero base and positive
exponent \; \$0-test 0 -2 0 bash to zero with zero base negative exponent
\; \$0-test 2 -2 0.25 standard positive base and negative exponent
\; \$0-test -2 -2 0 bash to zero with negative base and negative exponent
\; \$0-test -2 2 0 bash to zero with negative base and positive exponent
;
#X obj 225 597 outlet;
#X obj 46 46 t b b;
#X obj 78 152 send pd;
#X text 99 21 Code coverage test for compatibility with the pre-0.49
pow~ behavior. We use the "compatibility" message to set compatibility
to 0.48. Our testing framework makes sure to set compatibility back
to the recent version. We might want to generalize this test for more
tilde unit tests later...;
#X msg 78 127 compatibility 0.48;
#X connect 1 0 12 0;
#X connect 2 0 3 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 6 0;
#X connect 5 1 8 1;
#X connect 6 0 2 0;
#X connect 6 1 2 1;
#X connect 6 2 7 1;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 3 0;
#X connect 9 1 0 0;
#X connect 9 2 5 0;
#X connect 12 0 10 0;
#X connect 12 1 15 0;
#X connect 15 0 13 0;
#N canvas 645 60 534 633 12;
#X obj 135 436 switch~;
#X obj 46 21 inlet;
#X obj 225 492 pow~;
#X obj 225 517 snapshot~;
#X obj 46 383 r \$0-test;
#X obj 225 435 list split 3;
#X obj 225 460 unpack 0 0 0;
#X obj 225 543 ==;
#X obj 225 572 list append;
#X obj 46 408 trigger bang bang anything;
#X obj 225 597 outlet;
#X obj 46 46 t b b;
#X obj 78 152 send pd;
#X msg 78 127 compatibility 0.49;
#X msg 46 180 \; \$0-test 2 2 4 standard positive base and positive
exponent \; \$0-test 0 2 0 bash to zero with zero base and positive
exponent \; \$0-test 0 -2 0 bash to zero with zero base and negative
exponent \; \$0-test 2 -2 0.25 standard positive base and negative
exponent \; \$0-test -2 -2 0.25 standard negative base and negative
exponent \; \$0-test -2 2 4 standard with negative base and positive
exponent;
#X text 99 21 Code coverage test for compatibility with the 0.49 pow~
behavior. We use the "compatibility" message to set compatibility to
0.49. Our testing framework makes sure to set compatibility back to
the recent version. We might want to generalize this test for more
tilde unit tests later...;
#X connect 1 0 11 0;
#X connect 2 0 3 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 6 0;
#X connect 5 1 8 1;
#X connect 6 0 2 0;
#X connect 6 1 2 1;
#X connect 6 2 7 1;
#X connect 7 0 8 0;
#X connect 8 0 10 0;
#X connect 9 0 3 0;
#X connect 9 1 0 0;
#X connect 9 2 5 0;
#X connect 11 0 14 0;
#X connect 11 1 13 0;
#X connect 13 0 12 0;
#N canvas 639 60 534 633 12;
#X obj 135 436 switch~;
#X obj 46 21 inlet;
#X obj 225 517 snapshot~;
#X obj 46 383 r \$0-test;
#X obj 225 435 list split 3;
#X obj 225 460 unpack 0 0 0;
#X obj 225 543 ==;
#X obj 225 572 list append;
#X obj 46 408 trigger bang bang anything;
#X msg 46 180 \; \$0-test 2 2 4 standard positive base and positive
exponent \; \$0-test 0 2 0 bash to zero with zero base and positive
exponent \; \$0-test 0 -2 0 bash to zero with zero base negative exponent
\; \$0-test 2 -2 0.25 standard positive base and negative exponent
\; \$0-test -2 -2 0 bash to zero with negative base and negative exponent
\; \$0-test -2 2 0 bash to zero with negative base and positive exponent
;
#X obj 225 597 outlet;
#X obj 46 46 t b b;
#X obj 78 152 send pd;
#X text 99 41 Code coverage test for compatibility with the pre-0.49
pow~ behavior. We use the "compatibility" message to set compatibility
to 0.48. Our testing framework makes sure to set compatibility back
to the recent version. We might want to generalize this test for more
tilde unit tests later...;
#X msg 78 127 compatibility 0.48;
#X obj 225 492 pow~ 0;
#X text 178 14 Test with *scalar* exponent;
#X connect 1 0 11 0;
#X connect 2 0 6 0;
#X connect 3 0 8 0;
#X connect 4 0 5 0;
#X connect 4 1 7 1;
#X connect 5 0 15 0;
#X connect 5 1 15 1;
#X connect 5 2 6 1;
#X connect 6 0 7 0;
#X connect 7 0 10 0;
#X connect 8 0 2 0;
#X connect 8 1 0 0;
#X connect 8 2 4 0;
#X connect 11 0 9 0;
#X connect 11 1 14 0;
#X connect 14 0 12 0;
#X connect 15 0 2 0;
#N canvas 645 60 534 633 12;
#X obj 135 436 switch~;
#X obj 46 21 inlet;
#X obj 225 517 snapshot~;
#X obj 46 383 r \$0-test;
#X obj 225 435 list split 3;
#X obj 225 460 unpack 0 0 0;
#X obj 225 543 ==;
#X obj 225 572 list append;
#X obj 46 408 trigger bang bang anything;
#X obj 225 597 outlet;
#X obj 46 46 t b b;
#X obj 78 152 send pd;
#X msg 78 127 compatibility 0.49;
#X msg 46 180 \; \$0-test 2 2 4 standard positive base and positive
exponent \; \$0-test 0 2 0 bash to zero with zero base and positive
exponent \; \$0-test 0 -2 0 bash to zero with zero base and negative
exponent \; \$0-test 2 -2 0.25 standard positive base and negative
exponent \; \$0-test -2 -2 0.25 standard negative base and negative
exponent \; \$0-test -2 2 4 standard with negative base and positive
exponent;
#X text 99 41 Code coverage test for compatibility with the 0.49 pow~
behavior. We use the "compatibility" message to set compatibility to
0.49. Our testing framework makes sure to set compatibility back to
the recent version. We might want to generalize this test for more
tilde unit tests later...;
#X text 190 17 Test for *scalar* exponent;
#X obj 225 492 pow~ 0;
#X connect 1 0 10 0;
#X connect 2 0 6 0;
#X connect 3 0 8 0;
#X connect 4 0 5 0;
#X connect 4 1 7 1;
#X connect 5 0 16 0;
#X connect 5 1 16 1;
#X connect 5 2 6 1;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 8 0 2 0;
#X connect 8 1 0 0;
#X connect 8 2 4 0;
#X connect 10 0 13 0;
#X connect 10 1 12 0;
#X connect 12 0 11 0;
#X connect 16 0 2 0;
#N canvas 379 60 749 617 12;
#X obj 425 81 r \$0-result;
#X obj 425 106 route 0;
#X obj 533 250 print failure;
#X obj 510 116 tgl 28 0 empty empty Print_All_Results 31 11 0 12 -262144
-1 -1 1 1;
#X obj 145 299 bng 31 250 50 0 empty empty Run_all 39 13 0 12 -262144
-1 -1;
#X obj 425 191 t b a;
#X obj 425 321 s pd;
#X msg 56 85 gui;
#X obj 56 110 pdinfo;
#X obj 56 135 sel 0;
#X obj 56 185 s pd;
#X msg 425 296 quit 1;
#X msg 56 160 quit;
#X msg 425 220 gui;
#X obj 425 245 pdinfo;
#X obj 425 270 sel 0;
#X obj 471 154 spigot;
#X obj 487 220 route 1;
#X obj 487 275 print success;
#X obj 56 60 trigger bang bang bang;
#X obj 207 112 send pd;
#X msg 207 87 dsp 1;
#X text 210 141 Unfortunately \, we need DSP turned on for the tests.
Otherwise we cannot selectively bang the [wtich~] object to get the
results for each test. This means we will trigger lots of DSP graph
rebuilds in the process., f 27;
#X obj 131 343 rtest pow~_0.48_compatibility;
#X obj 56 25 loadbang;
#X obj 131 444 rtest pow~_0.49_compatibility;
#X text 153 26 Regression tests for tilde objects.;
#X obj 131 394 rtest pow~_scalar_0.48_compatibility;
#X obj 131 495 rtest pow~_scalar_0.49_compatibility;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 1 1 16 0;
#X connect 3 0 16 1;
#X connect 4 0 23 0;
#X connect 5 0 13 0;
#X connect 5 1 17 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 12 0;
#X connect 11 0 6 0;
#X connect 12 0 10 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 11 0;
#X connect 16 0 5 0;
#X connect 17 0 18 0;
#X connect 17 1 2 0;
#X connect 19 0 7 0;
#X connect 19 1 23 0;
#X connect 19 2 21 0;
#X connect 21 0 20 0;
#X connect 23 0 27 0;
#X connect 24 0 19 0;
#X connect 25 0 28 0;
#X connect 27 0 25 0;
#N canvas 212 151 506 469 12;
#N canvas 363 60 506 479 12;
#X obj 36 60 inlet;
#X obj 36 416 outlet;
#X obj 68 387 send;
#X obj 93 282 loadbang;
#X msg 93 308 dollarzero;
#X obj 93 334 canvasinfo 1;
#X msg 93 359 symbol \$1-result;
#X obj 36 436 outlet;
#X obj 68 407 send;
#X obj 93 302 loadbang;
#X msg 93 328 dollarzero;
#X obj 93 354 canvasinfo 1;
#X msg 93 379 symbol \$1-result;
#X obj 106 63 bng 20 250 50 0 empty empty Run 21 8 0 12 -262144 -1
-1;
#X obj 68 124 regression_tests/\$1;
#X obj 36 85 t b a;
#X obj 68 149 list split 1;
#X obj 68 244 list;
#X text 260 201 <- insert "test_name:" here;
#X obj 219 124 loadbang;
#X obj 219 149 list append \$1;
#X msg 219 174 \$1:;
#X obj 108 211 list prepend;
#X obj 68 144 regression_tests/\$1;
#X obj 68 169 list split 1;
#X obj 68 264 list;
#X text 260 221 <- insert "test_name:" here;
#X obj 219 144 loadbang;
#X obj 219 169 list append \$1;
#X msg 219 194 \$1:;
#X obj 108 231 list prepend;
#X obj 156 63 bng 20 250 50 0 empty empty Show_Test 21 8 0 12 -262144
-1 -1;
#N canvas 378 161 450 369 vis 0;
......@@ -33,21 +32,44 @@
#X connect 4 1 0 0;
#X connect 5 0 2 1;
#X restore 156 94 pd vis;
#X connect 0 0 9 0;
#X obj 36 85 t b a b;
#N canvas 691 139 570 300 init 0;
#X obj 27 20 inlet;
#X obj 27 45 b;
#X msg 27 70 version;
#X obj 27 95 pdinfo;
#X obj 27 120 unpack 0 0 0;
#X obj 27 148 * 100;
#X obj 27 185 +;
#X msg 27 210 compatibility \$1;
#X text 156 96 reset compatibility level to the current version;
#X obj 27 235 send pd;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 1 6 1;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X restore 82 117 pd init;
#X connect 0 0 18 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 2 1;
#X connect 7 0 8 0;
#X connect 8 0 10 0;
#X connect 9 0 1 0;
#X connect 9 1 8 0;
#X connect 10 0 11 0;
#X connect 10 1 16 0;
#X connect 11 0 2 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 9 1 15 0;
#X connect 10 0 2 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 1;
#X connect 16 0 11 1;
#X connect 17 0 18 0;
#X coords 0 -1 1 1 165 46 1 99 42;
#X connect 14 0 15 1;
#X connect 15 0 10 1;
#X connect 16 0 17 0;
#X connect 18 0 1 0;
#X connect 18 1 8 0;
#X connect 18 2 19 0;
#X coords 0 -1 1 1 179 46 1 99 42;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment