-
-
Notifications
You must be signed in to change notification settings - Fork 103
/
path_simplify_test.go
65 lines (57 loc) · 29.5 KB
/
path_simplify_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package canvas
import (
"testing"
"github.com/tdewolff/test"
)
func TestPathSimplifyVisvalingamWhyatt(t *testing.T) {
tests := []struct {
p string
tolerance float64
r string
}{
// closed path
{"M0 0L10 0L10 4L11 5L10 6L10 10L0 10z", 1.0, "M0 0L10 0L10 4L11 5L10 6L10 10L0 10z"},
{"M0 0L10 0L10 4L11 5L10 6L10 10L0 10z", 2.0, "M0 0L10 0L10 10L0 10z"},
{"M0 0L10 0L10 4L11 5L10 6L10 10L0 10z", 50.0, "M0 0L10 0L10 10L0 10z"},
{"M0 0L10 0L10 4L11 5L10 6L10 10L0 10z", 51.0, ""},
// open path
{"M0 0L10 0L11 1L12 0L13 -5L14 0", 1.0, "M0 0L10 0L11 1L12 0L13 -5L14 0"},
{"M0 0L10 0L11 1L12 0L13 -5L14 0", 2.0, "M0 0L12 0L13 -5L14 0"},
{"M0 0L10 0L11 1L12 0L13 -5L14 0", 6.0, "M0 0L14 0"},
// bugs
{"M0 0L1 1L2 0zM2 0L4 2L4 0zM4 0L5 1L6 0z", 2.0, "M2 0L4 2L4 0z"},
{"M2 0L4 2L4 0zM0 0L1 1L2 0zM4 0L5 1L6 0z", 2.0, "M2 0L4 2L4 0z"},
{"M0 0L1 1L2 0zM4 0L5 1L6 0zM2 0L4 2L4 0z", 2.0, "M2 0L4 2L4 0z"},
{"M0 0L40 0L40.1 0.1L40.2 0L40.3 0.5L40 40z", 2.0, "M0 0L40.2 0L40.3 0.5L40 40z"},
{"M0 0L40 0L40.1 0.1L40.2 0L40.3 0.5L40 40z", 3.0, "M0 0L40.2 0L40 40z"},
}
for _, tt := range tests {
t.Run(tt.p, func(t *testing.T) {
p := MustParseSVGPath(tt.p)
r := MustParseSVGPath(tt.r)
test.T(t, p.SimplifyVisvalingamWhyatt(tt.tolerance), r)
})
}
}
func TestPathClip(t *testing.T) {
tests := []struct {
p string
rect Rect
r string
}{
{"M-5 5L5 5L5 15L-5 15z", Rect{0, 0, 10, 10}, "M-5 5L5 5L5 15L-5 15z"},
{"M1 5L9 5L9 15L1 15z", Rect{0, 0, 10, 10}, "M1 5L9 5L9 15L1 15z"},
{"M1 5L9 5L9 15L5 20L1 15z", Rect{0, 0, 10, 10}, "M1 5L9 5L9 15L1 15z"},
{"M-5 5L9 5L9 15L5 20L-5 15z", Rect{0, 0, 10, 10}, "M-5 5L9 5L9 15L-5 15z"},
{"M-5 15L-5 5L9 5L9 15L5 20z", Rect{0, 0, 10, 10}, "M-5 5L9 5L9 15L-5 15z"},
{"M20 20L40 20L40 40L20 40z", Rect{0, 0, 10, 10}, ""},
{"M15362.326525577115 16062.201423060626L15362.69789624383 16062.48812163555L15364.134226910697 16062.365896168718L15364.103261150693 16063.526538417314L15364.89881357747 16063.413768684284L15364.99345848415 16062.812264134063L15365.353942893089 16062.793515060217L15365.343002021975 16062.553815516207L15365.698006893133 16062.422286398225L15365.687066022023 16062.182578989006L15366.038430004293 16061.924115986312L15366.311478466556 16062.755969828959L15366.55175892881 16062.746571754076L15366.56269979992 16062.986173235578L15366.801178022182 16062.976728362479L15367.307261577804 16063.55473067494L15367.405565577817 16063.070706848204L15368.241149577934 16062.915641928146L15368.439578022404 16061.947659860623L15369.26970068919 16061.670346566276L15369.249675800296 16061.190988797502L15369.489974467 16061.18168341633L15369.499094893665 16061.421318040731L15369.744854893699 16061.529408090995L15369.724830004809 16061.050044350515L15369.48449492922 16061.059443834773L15369.464470040326 16060.580060180811L15369.82129535593 16060.504907901508L15370.189043338207 16060.66931167641L15370.289167782663 16058.7421876341L15370.165359355982 16058.629370202147L15370.199947800429 16058.02300423953L15371.13931533834 16057.505882230573L15371.244864707238 16057.139181391205L15371.599869578404 16057.002887882674L15371.740043800644 16057.477721907984L15372.224282022933 16057.581148458266L15372.215198005157 16057.341338452305L15372.564705134093 16057.082764822444L15372.573807356312 16057.32718757561L15372.81410602302 16057.313177720116L15372.799560671905 16056.955873528488L15373.034379800825 16056.824185282348L15373.17455402307 16057.299026808203L15373.418493578658 16057.411857507468L15373.638767356464 16056.918214889869L15373.879047818718 16056.90876494964L15373.871802449827 16056.669034721264L15374.589039356593 16056.640872315485L15374.569014467703 16056.161301388645L15375.177042912233 16056.316411896092L15375.648538023408 16056.11428353682L15376.100026450138 16055.376030622992L15375.728637578974 16055.150327485168L15376.434970023522 16054.760085540394L15376.535094467981 16054.275685290024L15377.583670468124 16053.452754526574L15378.421074912683 16053.358602050921L15378.80518869052 16053.941798660646L15379.289426912805 16054.049960197164L15379.18018204168 16054.289839984318L15379.544270930619 16054.393295683843L15379.693565579528 16055.108007645496L15380.379873135178 16055.282035217559L15380.478177135192 16055.197349343573L15381.388399357544 16055.404243198598L15381.603230006462 16054.792954973833L15382.793782468849 16054.50135885426L15382.699101153281 16055.108007645496L15382.937615784424 16055.098603215178L15383.45094470894 16055.921414263754L15383.816854042325 16056.024855043339L15383.66213446897 16055.18789796573L15384.383012264625 16055.159731872485L15384.277462895723 16055.526496879847L15383.980712246794 16055.658106193066L15383.937003375675 16056.020153210244L15384.05533226458 16056.015545411905L15384.160918042373 16055.648796259822L15384.281067375723 16055.644094270421L15384.444925580192 16056.720751811383L15384.084477580142 16056.734856431296L15383.884228691226 16057.708032739069L15384.366646469069 16057.80675609321L15384.126347802372 16059.259253136024L15384.454027802414 16059.969051570326L15385.069319820279 16060.302713362133L15385.078440246944 16060.55190750927L15385.198589580297 16060.537760647872L15385.304175358084 16060.175858178976L15386.844289562745 16059.63058559824L15386.982625136097 16060.110056486283L15387.712623358424 16060.321560565124L15387.783602487321 16060.11945675153L15387.337593598371 16059.973751762507L15387.32304824726 16059.611878254342L15387.674412229528 16059.358056963487L15387.861881598445 16060.03020091802L15388.018476229576 16060.0254537476L15387.927435802896 16059.710537993229L15388.091275802919 16059.780995279187L15388.872228265249 16059.310958386483L15388.943243803038 16059.550726645542L15388.772103820793 16059.799843351342L15390.206650452103 16059.621278933533L15390.608968674384 16060.683458373314L15390.973057563322 16060.791555473272L15390.983962025548 16061.031292356103L15391.946995341234 16061.111140858578L15392.972306061376 16059.999884795408L15392.220043803496 16058.87860120962L15391.97792469235 16058.826893983114L15391.83775047011 16058.352069574761L15391.229722025579 16058.135827718455L15391.224242487802 16058.013555222107L15391.464541154499 16058.004153206894L15391.455457136723 16057.764446189787L15390.958457598874 16057.364891865614L15390.59802780327 16057.317879015842L15390.308595341008 16056.128294877104L15390.06826026542 16056.137745469307L15390.05917624764 16055.897951882602L15389.57677667424 16055.855681858688L15389.068854469722 16055.155029679801L15388.82673535858 16055.103305431316L15388.881348691917 16054.981000153912L15388.89773269192 16054.901108372542L15388.459005580746 16054.938726703625L15386.877039358304 16054.459036586733L15386.420126007131 16053.513798020624L15385.624573580353 16053.184685976801L15385.61002822924 16052.827157298594L15385.373334042539 16052.95418897424L15385.36608867365 16052.714374926432L15384.401216709073 16052.634373070821L15384.392132691293 16052.39450520942L15383.166955375567 16051.839450289222L15383.157871357791 16051.599612607675L15382.183933579876 16051.279758404551L15382.172992708765 16051.039908855866L15381.932694042065 16051.049222582984L15381.923610024285 16050.809368146056L15378.284559783777 16049.990889507812L15378.15164913487 16049.699122530565L15377.54362069034 16049.543874215535L15377.53996159701 16049.421649952073L15377.780296672598 16049.412193747317L15377.401626023657 16049.007639554478L15377.03935757916 16048.96049786418L15377.03027356138 16048.720599132885L15376.120051339032 16048.518287952495L15376.039951783463 16048.038372540559L15376.280250450163 16048.0289622309L15376.449515374632 16047.77958617228L15376.356690912395 16046.942018790436L15375.99626111679 16046.956135608467L15376.07636067236 16045.991445841446L15376.449515374632 16046.278555527231L15377.283297134745 16046.062035687482L15377.341551356978 16046.499635842476L15378.224485117098 16046.584386856724L15378.59765802382 16045.887913270348L15379.069153134995 16045.629077696496L15379.078237152775 16045.86913612525L15379.921121135118 16045.897325361424L15380.274269152946 16045.69966980406L15380.671162450777 16045.083197583692L15380.85502733969 16045.196056068737L15380.742141579674 16043.873592649568L15380.616512708544 16043.760579760114L15380.658382930775 16043.275755301449L15380.902322486363 16043.384018875971L15380.89325667303 16043.144001840414L15381.488505597557 16043.00269113496L15381.692413579804 16043.595835915912L15381.652363802023 16044.080693722859L15382.018273135407 16044.18424283748L15382.027393562079 16044.424237799729L15383.361761135595 16044.673640779172L15384.4394824513 16044.570096144907L15384.448566469076 16044.810177050105L15391.282496710028 16044.236017039293L15397.239009137527 16042.795617395106L15400.087986489034 16041.722294250507L15400.189931377936 16041.298586021469L15400.424805120194 16041.16200735272L15400.319201137954 16041.53393436311L15400.679649138005 16041.519904933299L15400.956338489152 16040.907771725793L15400.887179804697 16040.667702134979L15401.24762780475 16040.653577466113L15401.33866823143 16039.928487435278L15401.57896689813 16039.91907037585L15401.569846471462 16039.678932710984L15402.059546027085 16039.900283318853L15401.926635378182 16039.542334481856L15402.41999402714 16039.886110606083L15402.407269120467 16039.52354679905L15402.647549582722 16039.514129402436L15402.860523378313 16038.784257310781L15402.98067271166 16038.779548305654L15402.993434027216 16039.142135963873L15403.233732693916 16039.132718249657L15403.200982898357 16038.289753974284L15403.681562027312 16038.271011302742L15403.696125582872 16037.065387272582L15403.497697138399 16036.594405475691L15403.617846471745 16036.589648459489L15403.626930489529 16036.829851727729L15404.11298915626 16036.928710375218L15403.839940694 16036.095096253925L15404.08388024959 16036.208138664759L15404.284129138508 16035.115348025574L15403.439461120615 16035.087131903314L15403.324736711707 16035.21426876627L15402.776782933852 16035.054110942961L15402.818653156082 16034.568865997357L15403.05898823167 16034.559538689311L15403.275602916146 16033.951786749501L15403.515901582847 16033.942317601868L15403.506781156178 16033.702100105413L15403.747116231763 16033.687966734284L15403.737995805099 16033.452455060633L15404.087539342927 16033.193334729913L15404.20950912072 16033.193334729913L15404.136654934046 16033.353518907788L15404.12575047182 16034.159069586764L15404.369690027408 16034.21088970244L15404.473473565202 16033.782141763939L15404.708292694126 16033.65498879964L15404.74652202746 16034.615973496198L15405.10152689862 16034.484119112913L15405.1106109164 16034.724319998848L15405.23076024975 16034.714992819016L15405.221676231973 16034.479408316925L15405.456495360893 16034.286263992268L15405.818763805386 16034.333372668301L15406.035378489862 16033.725608573593L15405.795079823165 16033.735030791617L15405.764150472049 16032.891711187025L15406.590632249943 16032.49598887418L15406.608836694388 16032.976564234072L15406.971105138884 16032.962429956158L15406.980207361106 16033.2073744927L15407.340655361157 16033.193334729913L15407.29330560115 16033.5561015305L15407.48812956562 16033.909387519274L15408.077953565702 16033.584321472983L15408.440222010198 16033.631385961657L15408.249057139059 16033.39587310965L15408.347361139073 16032.792770128253L15408.04334691681 16032.684405118263L15408.02878336125 16032.321610353276L15407.788484694553 16032.331080858075L15407.877668267898 16031.482897381018L15408.478433139091 16031.459384250189L15408.482092232425 16031.581849900806L15408.361942899079 16031.586561903961L15408.367386027967 16031.70440846423L15408.969934934714 16031.74205690658L15409.206610916972 16031.553624960809L15409.27759004587 16031.911732498731L15409.58344291702 16032.020104913128L15409.454209565894 16031.784558501884L15409.812818917053 16031.765663688217L15409.730898917041 16032.740943513905L15410.340747806018 16032.95771852626L15410.442710899366 16032.472383617067L15410.80314069497 16032.458342941758L15410.886881139424 16033.05661102799L15410.475460694925 16033.372316843426L15410.262486899337 16034.045959582196L15410.502767361595 16034.03663184286L15410.39172025047 16034.281553113873L15410.632000712725 16034.27213135119L15410.641121139393 16034.517047522L15410.400822472693 16034.52175830229L15410.23698247267 16035.011715845361L15410.196932694886 16035.492184312177L15409.956652232628 16035.50165216217L15410.085867379312 16035.737121165068L15409.789153139274 16035.869055144613L15409.738198899267 16036.113936734197L15409.497863823675 16036.123404063685L15409.645338028142 16036.839271359782L15409.348605583658 16036.97119248232L15409.29761493476 16037.216050208583L15409.053675379171 16037.103017871963L15409.002721139164 16037.34787274414L15408.706006899123 16037.479787934153L15408.711450028011 16037.597573099476L15409.315819379208 16037.696472130923L15409.324939805872 16037.936604798902L15409.56523847258 16037.927186080771L15409.505163805901 16039.495247498617L15409.0245664725 16039.514129402436L15408.922621583599 16040.003870713434L15409.406859805891 16040.10274870503L15409.415943823664 16040.338121931676L15410.855915379423 16040.225073709826L15411.922732232906 16039.763687763148L15411.933636695128 16040.126243872117L15412.536185601879 16040.10274870503L15412.543485584101 16040.338121931676L15413.146052695298 16040.319335570759L15413.044107806396 16040.804192609714L15413.399112677555 16040.672410354022L15413.40819669533 16040.91252692608L15413.774106028715 16041.02081312404L15413.765022010939 16040.780698850951L15414.36028913991 16040.63479162917L15414.369409566578 16040.874861918546L15414.966497139994 16040.733664105093L15415.072082917788 16040.371127467639L15415.430710473393 16040.295746637305L15416.124299806823 16039.547043169398L15418.024843807088 16038.87372803573L15418.507261584928 16038.916061568907L15418.317953567126 16038.680658744983L15418.365266918245 16038.318056291282L15418.72209223385 16038.186150878617L15418.73117625163 16038.426414424302L15418.971456713884 16038.416949022514L15419.022447362779 16038.172117295395L15418.716612696073 16038.063803818928L15418.76756693608 16037.823579663665L15418.103122918212 16037.724681743748L15418.094038900428 16037.484544575953L15417.733554491493 16037.498579012376L15417.901053584847 16037.131228965107L15417.831894900391 16036.891079195826L15418.31247402935 16036.876902711552L15418.445348269368 16037.230226267748L15420.01642823403 16037.413854079354L15420.007307807362 16037.173710311483L15420.369576251858 16037.15953418149L15420.365917158528 16037.041791551263L15419.393799825055 16036.83456154474L15419.381074918387 16036.476609862024L15419.020626918336 16036.486029788306L15419.011506491668 16036.245772116661L15418.771226029414 16036.255239335787L15418.762142011634 16036.015023862608L15418.401657602695 16036.029201427318L15418.392573584915 16035.788934050328L15418.152274918215 16035.79835454941L15418.203247362668 16035.553466126228L15418.008459807086 16035.195379682147L15418.37436914047 16035.308431086556L15418.47267314048 16034.700813606658L15418.947790936105 16034.56415523668L15418.94052736277 16034.323950948794L15420.380517122969 16034.21088970244L15420.495186918542 16034.083741558785L15421.702123380932 16034.159069586764L15422.799869585531 16034.540648511582L15430.345593604357 16030.16816029892L15430.935435808882 16029.786528058914L15431.028296680008 16029.060740916237L15431.392385568946 16029.046554612469L15431.496114493406 16028.678929903312L15432.455506920207 16028.523392774583L15432.464627346872 16028.768480613031L15432.819595809146 16028.631844798318L15433.043510475844 16028.141610751733L15433.524089604802 16028.127423294827L15433.63151403148 16027.759768702494L15433.871812698177 16027.750435776492L15433.97921892042 16027.387388404735L15434.461636698266 16027.368580517534L15434.470720716043 16027.608979727735L15435.664932271764 16027.32620373473L15435.67223225399 16027.566556709076L15436.877384680822 16027.642022435353L15436.888289143048 16027.88708224188L15438.095225605437 16027.962545829065L15438.606788698842 16028.787333303655L15438.847087365539 16028.77790696227L15439.103788236687 16029.253927381142L15439.34590734783 16029.244501428697L15439.533376716747 16029.480195011347L15439.49516558785 16030.083380428776L15439.254866921154 16030.09280568199L15439.533376716747 16031.167185934362L15440.261554494627 16031.322686703643L15440.376278903532 16031.1955060822L15441.220946921425 16031.228491189944L15441.353821161447 16031.586561903961L15441.113522494747 16031.591321025153L15441.126302014749 16031.954092100863L15441.370241570337 16032.067223030237L15441.362941588111 16031.826918580402L15441.719730494828 16031.690225476606L15441.577735828145 16031.09659730376L15442.402433570482 16030.582860899602L15442.50980338383 16030.219998705703L15445.105775366414 16028.678929903312L15446.361882033252 16026.708587703906L15446.960790051118 16026.56721290306L15446.654955384405 16026.458788216962L15446.816974939982 16025.968554235144L15447.62346823787 16026.02041189773L15447.652577144545 16025.699833446994L15447.887432682357 16025.511159351332L15449.341967793669 16025.761121206448L15449.332847367 16025.520635561661L15448.397120717982 16024.58711998364L15448.428086477987 16023.74311784629L15448.670205589133 16023.733687298914L15448.752125589144 16022.644406155781L15448.511845126883 16022.65383761171L15448.706614478026 16021.31920838881L15449.300079366996 16021.064526256392L15449.309163384776 16021.300390405315L15449.429312718126 16021.295674113808L15449.414767367012 16020.932513760297L15448.446290922431 16020.72498832105L15448.424445589095 16020.125925907036L15448.187787811286 16020.253325429174L15448.235101162401 16019.89003725614L15447.55791403342 16019.432537919824L15447.548793606755 16019.18724763337L15446.583976255508 16019.163614576639L15446.230791828788 16019.418339531036L15445.264154033099 16019.32876190963L15444.894585606384 16019.102385389488L15444.62517803301 16018.323925014021L15444.384897570755 16018.333407249913L15444.393981588535 16018.574045808458L15443.674924237323 16018.720237954225L15443.662144717324 16018.357042042073L15444.018988237374 16018.224903577986L15443.74224427289 16017.210626937074L15443.021366477235 16017.234169716754L15442.54985316161 16017.554988281296L15442.540769143834 16017.31442239089L15442.30048868158 16017.319140343418L15442.287727366023 16016.960475977783L15442.528007828278 16016.951134133506L15442.460687792714 16015.021170058277L15442.220389126007 16015.03065506461L15441.960029161528 16014.497358846733L15441.721569143716 16014.563473654169L15441.708826032605 16014.204816239722L15441.484911365907 16014.695654918669L15440.754913143584 16014.478576696729L15440.762213125807 16014.71920293606L15440.272495365738 16014.497358846733L15440.401728716868 16014.733360037131L15440.156005125726 16014.620102732144L15440.001249143479 16013.662089306006L15440.24335005018 16013.6526031514L15440.265213587962 16012.562397466587L15440.072264681265 16012.208396647333L15439.70817579233 16012.161195700555L15439.45511581007 16011.807229520335L15439.09102692113 16011.759932493122L15439.080104254463 16011.396465700698L15437.134049143078 16010.985828573237L15437.124928716414 16010.745075649116L15432.076854475708 16009.593167178911L15429.795819382056 16008.228664711314L15429.537334475353 16007.695094731815L15428.809156697476 16007.600702164113L15428.556133124108 16007.307839366436L15428.798234030812 16007.298395099631L15428.789131808586 16007.057610852371L15428.430504252981 16007.128491391937L15428.297630012963 16006.840385911004L15427.937145604024 16006.845108236721L15427.928061586244 16006.604314333887L15427.316392252826 16006.387033456303L15427.17439758614 16005.787257999986L15426.8103086972 16005.740030234534L15426.174955381553 16004.856834673374L15425.934674919296 16004.866280980288L15425.670692270374 16004.271148227115L15425.428591363674 16004.219190705946L15425.140942936967 16002.962690654615L15424.89882382582 16002.972138544588L15424.88973980804 16002.731167643193L15424.529310012436 16002.74061572667L15424.514710047992 16002.381630244225L15424.274411381288 16002.391078619876L15424.385476696862 16002.145465528884L15423.032904678894 16001.469777591134L15423.023784252226 16001.228869152299L15422.783485585529 16001.233593822937L15422.774365158857 16000.987955578756L15422.53406649216 16001.00203539152L15421.629323807589 15999.404998761653L15421.385384252 15999.353018867354L15421.372659345328 15998.989200169799L15421.130540234186 15998.99865138167L15420.196634029613 15991.657357460077L15420.071023362929 15991.543821415402L15420.147482029603 15990.328474517104L15419.739684269549 15989.136692873348L15419.235439362812 15988.550143921046L15418.707492269405 15987.358174712455L15418.074014011538 15984.95961730917L15417.833715344834 15984.968985631498L15417.94474425152 15984.722993622738L15417.702625140373 15984.732456772697L15416.3536940113 15979.337128399486L15415.77477447344 15978.39032218523L15416.015054935699 15978.380948407095L15415.612754917864 15977.306178980598L15415.305081602266 15977.197280730947L15415.204957157803 15976.10824050479L15414.96283804666 15976.117758224045L15414.944633602216 15975.634712011855L15414.70799402885 15975.762519307438L15414.698873602178 15975.521062220461L15414.211030899889 15975.421617715223L15414.584203806608 15974.07187980408L15413.892434917623 15973.366235286721L15414.136374473212 15973.361498950715L15413.488296250896 15972.29577286417L15413.246177139754 15972.305246427772L15413.136968677518 15970.978870225135L15413.337217566434 15969.87975482392L15413.564736713131 15969.51020062606L15413.246177139754 15967.458481193284L15413.362667379773 15967.33522401147L15413.473732695344 15967.088847782408L15413.612086473142 15964.292510952033L15413.206127361973 15963.216495194214L15412.203080677387 15962.282512530986L15412.485231361872 15960.091965502499L15411.922732232906 15959.627296816809L15412.024677121808 15959.138802676203L15412.266796232954 15959.129318064843L15412.01555669514 15958.83533858665L15411.653288250644 15958.911169805353L15411.64234737953 15958.674094778486L15412.006436268475 15958.655077342311L15411.871741584011 15958.294641076529L15412.113860695154 15958.285155756323L15411.97368647291 15957.806136727977L15411.36929891727 15957.829898447733L15411.123538917236 15956.136525484955L15410.932410454985 15955.90408844113L15411.40752825061 15955.643184020784L15411.806187379556 15953.323241511778L15412.048306490698 15953.313704568347L15411.871741584011 15951.861765203124L15411.627802028419 15951.809566122956L15411.230945139472 15949.336998984956L15410.360772694909 15947.186570690166L15410.602891806051 15947.17717098336L15410.593789583829 15946.935007152559L15411.185434028357 15946.54575862235L15411.316524232818 15945.20681024832L15410.888719788316 15943.521088715297L15410.628396232725 15943.046192152226L15410.198753139332 15942.879973637017L15409.111929601404 15943.041443085738L15408.979055361378 15942.742295362965L15408.502117121316 15942.946461336684L15408.214468694612 15943.378669332506L15408.05428778792 15943.934232480948L15407.688360250097 15943.886745460575L15407.666514916757 15943.402366446739L15407.360680250047 15943.29314085732L15407.291485156704 15943.050941216712L15407.049366045558 15943.060486830283L15407.091236267788 15942.56652635165L15406.177373156548 15942.485741027565L15405.968040249852 15941.763871670144L15405.343646009766 15941.303150608826L15405.325441565321 15940.818660763493L15404.82114204525 15940.35315093971L15404.73743800968 15939.745061702397L15404.495318898538 15939.754610110798L15404.458873600754 15938.785524247884L15404.7009927119 15938.776022528644L15404.653679360777 15937.564487825242L15404.413398898523 15937.630911801582L15404.187645582937 15938.06807444718L15404.067514454033 15938.077576762134L15404.276829156286 15937.212785839678L15403.901835805118 15936.98480563963L15404.262283805168 15936.84696043879L15404.360587805182 15936.238729876743L15405.558440249795 15935.82535198524L15405.549319823127 15935.57814487028L15405.791475343161 15935.573392662034L15405.802379805384 15935.815800253757L15405.922529138737 15935.811048145526L15406.026294472082 15935.321570286047L15406.146443805432 15935.316817969815L15406.286618027676 15935.796791808825L15406.408587805472 15935.787240053178L15406.483207823254 15934.57543214357L15407.4444206945 15934.295071062505L15407.659233138977 15933.558276141848L15407.901334045677 15933.548865084249L15407.761178027878 15933.068748147565L15408.008758472362 15933.178120210574L15407.671994454533 15932.3415229491L15407.832193565668 15931.728248276377L15408.074312676814 15931.718693078401L15408.154394027937 15930.620552059558L15408.39651313908 15930.611043467103L15408.36012245463 15929.64117251771L15408.602241565775 15929.626860841665L15408.593121139107 15929.38907515759L15409.073700268062 15929.246477421297L15409.08830023251 15929.612596694671L15409.335844268098 15929.783765269236L15410.306141157125 15929.688719483933L15410.315261583793 15929.931158351352L15410.673870934952 15929.79332210483L15410.664805121618 15929.550737635345L15411.7534126951 15929.38907515759L15411.860837121785 15929.01819366797L15413.04228736195 15928.124224107334L15413.2479975842 15927.1446279931L15413.490116695342 15927.135116472884L15413.6594180287 15926.764160934046L15413.584761602026 15926.402705351837L15414.069036233202 15926.38368105327L15413.934305139854 15926.022213289561L15414.303855362126 15926.131606070838L15414.285650917678 15925.646464793947L15414.64973980662 15925.632148053319L15414.864552251089 15924.894882717159L15415.106671362239 15924.885464435607L15415.56178247341 15924.014905405118L15415.803901584553 15924.005391247825L15415.776594917883 15923.277534446312L15416.137024713491 15923.139616944543L15416.586692695775 15922.154735199227L15416.342753140187 15922.159493058749L15416.339094046849 15922.040498390135L15416.703182935791 15922.026319813413L15416.71230336246 15922.268923274256L15416.83245269581 15922.26416546086L15416.68863758468 15921.659954441388L15417.407731344781 15921.383935481612L15417.628005122588 15920.77482373871L15418.114063789322 15920.755885123192L15418.339798900466 15920.260947878884L15418.581918011609 15920.25143055743L15418.789412269416 15919.271151060482L15419.86349269623 15918.742881267473L15420.049178029589 15918.290691243386L15419.963598936243 15918.128819850885L15420.209377140724 15918.243096249793L15420.4259918252 15917.505348187642L15420.673590474122 15917.614823527147L15420.780996696361 15917.248314957174L15421.379904714224 15916.98175579566L15421.418134047559 15916.372406472292L15420.9885455675 15916.26767942656L15420.979425140831 15916.02494696082L15420.737306029689 15916.029707404523L15420.635361140783 15914.939560993706L15421.361718474218 15913.206364231257L15421.727627807602 15913.192174554475L15421.953362918746 15911.1158611682L15421.631144252031 15908.934418308396L15420.720922029686 15907.38138371009L15419.646859807315 15903.035695822462L15419.890799362904 15903.026259284798L15419.088001567234 15901.105378336033L15418.780328251636 15900.995742752766L15418.636513140507 15900.390344484756L15418.327037584906 15900.280654284128L15418.183222473777 15899.67526532786L15417.939264713743 15899.68484768807L15416.79422336247 15895.092916193047L15416.550283806882 15895.102454752185L15416.421014046864 15893.275625896182L15415.978664251248 15892.86544186798L15415.738365584548 15892.93699498743L15415.667386455647 15892.693664827173L15414.615169566612 15892.245295826524L15414.103606473207 15891.596491181223L15413.73587669538 15891.54878348496L15413.726756268712 15891.305518805333L15413.481032677566 15891.253038975115L15413.107823361956 15891.081237387254L15413.098702935291 15890.83786720629L15412.856583824141 15890.847457073589L15412.72188913968 15890.546875267595L15412.476129139646 15890.49916313347L15412.585355806332 15890.127001563462L15412.27588025073 15890.017259269971L15412.326870899626 15889.769190039555L15412.019197584028 15889.659444266075L15411.944541157354 15889.296703032545L15411.578668232854 15889.311065936628L15411.629622472861 15889.062933461977L15411.068925583895 15888.71930869211L15411.061643806115 15888.475983004962L15410.815883806084 15888.48552715902L15409.861952712617 15885.836762377869L15409.618013157029 15885.846213300763L15409.485138917007 15885.54554596973L15408.878930916926 15885.626739826555L15408.593121139107 15884.54310453957L15407.777543823435 15883.960692901495L15407.824893583445 15883.593089752605L15407.267855787813 15883.368702723266L15406.270234027674 15881.210540035205L15406.022653583193 15881.15801323102L15405.633060267588 15880.499019817558L15405.196171805303 15880.274523488955L15404.988641138603 15879.668060212047L15404.74652202746 15879.682435378309L15404.3387242674 15878.598228993385L15404.029285120694 15878.493150813101L15403.96009002735 15878.24482807874L15403.716150471762 15878.254380891285L15403.705246009536 15878.010733879553L15403.341157120598 15878.025063392663L15402.694899342732 15877.131870051082L15402.449139342694 15877.079324254079L15402.44001891603 15876.835651863705L15402.196079360438 15876.845205869537L15401.924851342621 15876.128680751954L15400.930888675815 15875.674779939236L15400.732423822457 15875.316462010236L15400.779773582468 15874.93902148382L15400.149881600155 15874.41822837936L15399.78036778677 15874.375273819787L15398.84647978664 15872.33003659335L15398.282142008782 15871.985997386284L15398.26855674661 15871.918233346572L15872.081766653428 15871.918233346572L15872.081766653428 16384.081766653428L15359.918233346572 16384.081766653428L15359.918233346572 16062.460266060087L15359.932622927889 16062.422286398225L15360.517022003525 16062.036900568153L15360.622571372427 16061.670346566276L15360.742720705777 16061.665647078888L15360.751841132449 16061.90536544058L15361.470898483662 16061.87712207871L15361.461814465882 16061.637497108579L15362.30102115044 16061.599948040828z", Rect{15347.2, 16115.2, 15628.8, 16396.8}, "M15872.081766653428 16384.081766653428L15359.918233346572 16384.081766653428L15359.918233346572 16062.460266060089L15872.081766653428 15871.918233346572z"},
}
for _, tt := range tests {
t.Run(tt.p, func(t *testing.T) {
p := MustParseSVGPath(tt.p)
r := MustParseSVGPath(tt.r)
test.T(t, p.Clip(tt.rect.X0, tt.rect.Y0, tt.rect.X1, tt.rect.Y1), r)
})
}
}