debugobsconvert: fix 6f08a8f6bb1d and add proper test
The changeset adding deduplication (6f08a8f6bb1d) was super buggy and dropped
all obsmarkers in the repo. We update the test to check this case and fix the
deduplication.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="773.15637"
height="740.48505"
id="svg3404"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="edit-is-rewrite-step1.svg">
<defs
id="defs3406">
<marker
inkscape:stockid="DotM"
orient="auto"
refY="0"
refX="0"
id="DotM"
style="overflow:visible">
<path
id="path6393"
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
transform="matrix(0.4,0,0,0.4,2.96,0.4)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="DotL"
orient="auto"
refY="0"
refX="0"
id="DotL"
style="overflow:visible">
<path
id="path6390"
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
transform="matrix(0.8,0,0,0.8,5.92,0.8)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart"
style="overflow:visible">
<path
id="path6334"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mstart"
style="overflow:visible">
<path
id="path6352"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6,0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible">
<path
id="path6331"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3411" />
<inkscape:perspective
id="perspective5699"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5753"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5784"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.57"
inkscape:cx="215.04832"
inkscape:cy="422.53048"
inkscape:document-units="px"
showgrid="false"
inkscape:snap-global="true"
inkscape:window-width="1280"
inkscape:window-height="776"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="g6029"
fit-margin-top="5"
fit-margin-right="5"
fit-margin-bottom="5"
fit-margin-left="5">
<inkscape:grid
type="xygrid"
id="grid6315"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
originx="5.0135572px"
originy="4.9994442px" />
</sodipodi:namedview>
<metadata
id="metadata3409">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="babar"
transform="translate(12.275017,-145.05915)">
<flowRoot
xml:space="preserve"
id="flowRoot5626"
style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"><flowRegion
id="flowRegion5628"><rect
id="rect5630"
width="120.20815"
height="52.527931"
x="153.54318"
y="706.89001"
style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" /></flowRegion><flowPara
id="flowPara5636" /></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot5653"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
id="flowRegion5655"><rect
id="rect5657"
width="145"
height="49.285713"
x="565.71429"
y="683.07648" /></flowRegion><flowPara
id="flowPara5659" /></flowRoot> <g
id="g10759"
transform="translate(582.45614,-14.035088)">
<g
transform="translate(-422.06809,-8.1395349)"
id="g6029">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:4.09652519;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414"
width="291.61774"
height="107.33205"
x="68.11969"
y="793.33905" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="75.714279"
y="835.2193"
id="text5643"><tspan
sodipodi:role="line"
id="tspan5645"
x="75.714279"
y="835.2193"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">";<tspan
style="fill:#008000;stroke:#008000"
id="tspan5889">Alice</tspan>;Babar"</tspan><tspan
sodipodi:role="line"
x="75.714279"
y="885.2193"
id="tspan5649"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">⟶ <tspan
id="tspan6297"
style="fill:#c8ab37;stroke:#c8ab37">19b08111</tspan></tspan></text>
</g>
<g
transform="translate(-602.95683,-59.767404)"
id="g6023">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:6.09169483;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414-7"
width="657.06445"
height="105.33688"
x="66.285065"
y="639.61066" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="72.882072"
y="680.49335"
id="text5643-6"><tspan
sodipodi:role="line"
id="tspan5645-5"
x="72.882072"
y="680.49335"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">"<tspan
id="tspan6203"
style="fill:#c8c4b7;stroke:#c8c4b7;stroke-opacity:1">19b08111</tspan>;<tspan
style="fill:#008000;stroke:#008000"
id="tspan5885">Alice</tspan>;Babar<tspan
id="tspan6287"
style="fill:#ff0000;stroke:#ff0000">,Celeste</tspan>"</tspan><tspan
sodipodi:role="line"
x="72.882072"
y="730.49335"
id="tspan5649-6"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">⟶ <tspan
id="tspan6035"
style="stroke:#009400;stroke-opacity:1"><tspan
id="tspan6039"
style="stroke:#00b500;stroke-opacity:1"><tspan
id="tspan6043"
style="stroke:#00ae00;stroke-opacity:1"><tspan
id="tspan6045"
style="stroke:#00ad00;stroke-opacity:1"><tspan
id="tspan6047"
style="stroke:#00ac00;stroke-opacity:1"><tspan
id="tspan6051"
style="stroke:#00aa00;stroke-opacity:1"><tspan
id="tspan6053"
style="stroke:#00a800;stroke-opacity:1"><tspan
id="tspan6055"
style="stroke:#00a600;stroke-opacity:1"><tspan
id="tspan6057"
style="stroke:#00a400;stroke-opacity:1"><tspan
id="tspan6059"
style="stroke:#00a100;stroke-opacity:1"><tspan
id="tspan6061"
style="stroke:#009f00;stroke-opacity:1"><tspan
id="tspan6063"
style="stroke:#009d00;stroke-opacity:1"><tspan
id="tspan6065"
style="stroke:#009900;stroke-opacity:1"><tspan
id="tspan6067"
style="stroke:#009800;stroke-opacity:1"><tspan
id="tspan6069"
style="stroke:#009700;stroke-opacity:1"><tspan
id="tspan6071"
style="stroke:#009800;stroke-opacity:1"><tspan
id="tspan6073"
style="stroke:#009900;stroke-opacity:1"><tspan
id="tspan6077"
style="stroke:#009c00;stroke-opacity:1"><tspan
id="tspan6079"
style="stroke:#009d00;stroke-opacity:1"><tspan
id="tspan6081"
style="stroke:#009e00;stroke-opacity:1"><tspan
id="tspan6083"
style="stroke:#009f00;stroke-opacity:1"><tspan
id="tspan6085"
style="stroke:#00a100;stroke-opacity:1"><tspan
id="tspan6087"
style="stroke:#00a200;stroke-opacity:1"><tspan
id="tspan6089"
style="stroke:#00a500;stroke-opacity:1"><tspan
id="tspan6091"
style="stroke:#00a600;stroke-opacity:1"><tspan
id="tspan6093"
style="stroke:#00a500;stroke-opacity:1"><tspan
id="tspan6095"
style="stroke:#00a200;stroke-opacity:1"><tspan
id="tspan6097"
style="stroke:#00a100;stroke-opacity:1"><tspan
id="tspan6099"
style="stroke:#009f00;stroke-opacity:1"><tspan
id="tspan6101"
style="stroke:#009c00;stroke-opacity:1"><tspan
id="tspan6103"
style="stroke:#009700;stroke-opacity:1"><tspan
id="tspan6105"
style="stroke:#009200;stroke-opacity:1"><tspan
id="tspan6107"
style="stroke:#008b00;stroke-opacity:1"><tspan
id="tspan6109"
style="stroke:#008500;stroke-opacity:1"><tspan
id="tspan6111"
style="stroke:#007c00;stroke-opacity:1"><tspan
id="tspan6113"
style="stroke:#007500;stroke-opacity:1"><tspan
id="tspan6115"
style="stroke:#006b00;stroke-opacity:1"><tspan
id="tspan6117"
style="stroke:#006100;stroke-opacity:1"><tspan
id="tspan6119"
style="stroke:#005800;stroke-opacity:1"><tspan
id="tspan6121"
style="stroke:#004d00;stroke-opacity:1"><tspan
id="tspan6123"
style="stroke:#004500;stroke-opacity:1"><tspan
id="tspan6125"
style="stroke:#003b00;stroke-opacity:1"><tspan
id="tspan6127"
style="stroke:#003300;stroke-opacity:1"><tspan
id="tspan6129"
style="stroke:#002900;stroke-opacity:1"><tspan
id="tspan6131"
style="stroke:#002200;stroke-opacity:1"><tspan
id="tspan6133"
style="stroke:#001900;stroke-opacity:1"><tspan
id="tspan6135"
style="stroke:#001300;stroke-opacity:1"><tspan
id="tspan6137"
style="stroke:#000b00;stroke-opacity:1"><tspan
id="tspan6139"
style="stroke:#000700;stroke-opacity:1"><tspan
id="tspan6141"
style="stroke:#000000;stroke-opacity:1"><tspan
id="tspan6145"
style="stroke:#d00000;stroke-opacity:1"><tspan
id="tspan6147"
style="stroke:#d10000;stroke-opacity:1"><tspan
id="tspan6149"
style="stroke:#d30000;stroke-opacity:1"><tspan
id="tspan6151"
style="stroke:#d80000;stroke-opacity:1"><tspan
id="tspan6153"
style="stroke:#db0000;stroke-opacity:1"><tspan
id="tspan6155"
style="stroke:#e10000;stroke-opacity:1"><tspan
id="tspan6157"
style="stroke:#e40000;stroke-opacity:1"><tspan
id="tspan6159"
style="stroke:#eb0000;stroke-opacity:1"><tspan
id="tspan6161"
style="stroke:#ef0000;stroke-opacity:1"><tspan
id="tspan6163"
style="stroke:#f50000;stroke-opacity:1"><tspan
id="tspan6165"
style="stroke:#f90000;stroke-opacity:1"><tspan
id="tspan6167"
style="stroke:#fd0000;stroke-opacity:1"><tspan
id="tspan6169"
style="stroke:#ff0000;stroke-opacity:1"><tspan
id="tspan6185"
style="fill:#010000;fill-opacity:1"><tspan
id="tspan6187"
style="fill:#4c0000;fill-opacity:1"><tspan
id="tspan6189"
style="fill:#810000;fill-opacity:1"><tspan
id="tspan6191"
style="fill:#c70000;fill-opacity:1"><tspan
id="tspan6193"
style="fill:#ee0000;fill-opacity:1"><tspan
id="tspan6195"
style="fill:#ff0000;fill-opacity:1"><tspan
id="tspan6279"
style="fill:#c8ab37"><tspan
id="tspan6281"
style="stroke:#c8ab37">925d8319 </tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></tspan></text>
</g>
<g
transform="translate(-582.55815,-32.55814)"
id="g6009">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:5.109797;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414-7-0"
width="458.04636"
height="106.31878"
x="145.39543"
y="199.2028" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="152.48338"
y="240.57646"
id="text5643-6-0"><tspan
sodipodi:role="line"
x="152.48338"
y="240.57646"
id="tspan5649-6-7"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">"<tspan
id="tspan6305"
style="fill:#c8c4b7;stroke:#c8c4b7">6fcdd7fe</tspan>;<tspan
style="fill:#008000;stroke:#008000"
id="tspan5877">Bob</tspan>;Babar"</tspan><tspan
sodipodi:role="line"
x="152.48338"
y="290.57648"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5823"><tspan
id="tspan6309"
style="fill:#c8ab37;stroke:#c8ab37">⟶ebc2b5a1 </tspan></tspan><tspan
sodipodi:role="line"
x="152.48338"
y="340.57648"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5825" /></text>
</g>
<g
transform="translate(-574.4186,-84.34382)"
id="g6016">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:6.52355862;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3414-7-0-7"
width="756.63257"
height="104.90502"
x="-12.03722"
y="458.04919" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="-5.6561542"
y="498.71597"
id="text5643-6-0-7"><tspan
sodipodi:role="line"
x="-5.6561542"
y="498.71597"
id="tspan5649-6-7-5"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">"<tspan
id="tspan6289"
style="fill:#c8c4b7;stroke:#c8c4b7">925d8319</tspan>;<tspan
style="fill:#008000;stroke:#008000"
id="tspan5881">Alice</tspan>;Babar,Celeste<tspan
id="tspan6303"
style="fill:#ff0000;stroke:#ff0000">,flore</tspan>"</tspan><tspan
sodipodi:role="line"
x="-5.6561542"
y="548.71594"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5809">⟶ <tspan
id="tspan6299"
style="fill:#c8ab37;stroke:#c8ab37">6fcdd7fe </tspan></tspan><tspan
sodipodi:role="line"
x="-5.6561542"
y="598.71594"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="tspan5811" /></text>
</g>
<path
inkscape:connection-start="#g6016"
inkscape:connection-end="#g6009"
inkscape:connector-type="polyline"
id="path6317"
d="m -208.13954,373.70537 0,-100.74193"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotM);marker-end:none"
inkscape:connection-start-point="d4"
inkscape:connection-end-point="d4"
inkscape:connector-curvature="0" />
<path
inkscape:connection-end="#g6023"
inkscape:connection-start="#g6029"
inkscape:connector-type="polyline"
id="path6321"
d="m -208.13953,785.19952 -1e-5,-100.01938"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2.79999995;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotM);marker-end:none"
inkscape:connection-start-point="d4"
inkscape:connection-end-point="d4"
inkscape:connector-curvature="0" />
<path
inkscape:connection-end="#g6023"
inkscape:connection-start="#g6016"
inkscape:connector-type="polyline"
id="path6323"
d="m -208.13954,478.6104 0,101.23285"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none;marker-end:url(#DotM)"
inkscape:connection-start-point="d4"
inkscape:connection-end-point="d4"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>