From 1681da57394bfc85f730520fa08f56bd01c94676 Mon Sep 17 00:00:00 2001 From: Daniel Cumberbatch Date: Mon, 15 Jun 2020 11:53:00 +0100 Subject: [PATCH] Issue #96: Added StraightSkeleton unit test to print out result in fractional form. --- test/unit/SFCGAL/algorithm/StraightSkeletonTest.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/unit/SFCGAL/algorithm/StraightSkeletonTest.cpp b/test/unit/SFCGAL/algorithm/StraightSkeletonTest.cpp index bac69a44..8118bb62 100644 --- a/test/unit/SFCGAL/algorithm/StraightSkeletonTest.cpp +++ b/test/unit/SFCGAL/algorithm/StraightSkeletonTest.cpp @@ -615,5 +615,14 @@ BOOST_AUTO_TEST_CASE( testIssue96 ) std::cout << g->asText() << std::endl; } +BOOST_AUTO_TEST_CASE(testIssue96_fracform) +{ + std::unique_ptr g = io::readWkt("POLYGON((1684000/1 67533403924977/12500000,1683946034501/1000000 1080530887281/200000,336778248173/200000 67532831901/12500,1683828852807/1000000 5402603566759/1000000,1683763966259/1000000 5402588179891/1000000,841855002727/500000 1080518673767/200000,1683643321311/1000000 54026176139/10000,1683558455081/1000000 135066690593/25000,1683479657793/1000000 1350680923077/250000,210424159291/125000 5402782790279/1000000,841672390259/500000 5402828261023/1000000,1683302347403/1000000 675359972567/125000,33665501403/20000 5402920702207/1000000,33665501403/20000 135074040347/25000,841642837153/500000 5403005564933/1000000,1683312951559/1000000 1350765030957/250000,420831270299/250000 1080621420853/200000,3366638041/2000 5403163172853/1000000,841645867501/500000 5403213182673/1000000,1683214454949/1000000 2701658115849/500000,1683131097709/1000000 2701702066903/500000,1683071999743/1000000 675429873339/125000,841492808139/500000 5403446565169/1000000,336588092407/200000 5403442675961/1000000,1682880415797/1000000 675428586101/125000,1682817343333/1000000 5403380938527/1000000,42069352347/25000 675415183829/125000,168272994563/100000 5403243986403/1000000,33653842109/20000 1350789820911/250000,1682682878351/1000000 2701540394811/500000,168268067671/100000 5403039198087/1000000,67306170281/40000 1350741390769/250000,420657219079/250000 5402937928701/1000000,841304489547/500000 5402917832791/1000000,1682537124807/1000000 1350720667487/250000,841188610697/500000 216112147441/40000,841163716493/500000 2701389195587/500000,1682247745147/1000000 1350680078249/250000,841112674717/500000 5402712624561/1000000,84109175501/50000 5402714684141/1000000,52567059913/31250 84417616899/15625,1682113964569/1000000 675342581107/125000,841044992827/500000 2701382112029/500000,1682069700877/1000000 5402801616447/1000000,336410341689/200000 5402871502221/1000000,841002312337/500000 5402975481057/1000000,336394070989/200000 2701532986319/500000,1681952560413/1000000 5403113362991/1000000,210241004659/125000 1350792975269/250000,420480207601/250000 5403207043923/1000000,1681928936069/1000000 337703030343/62500,1681963684057/1000000 5403315911763/1000000,1681985700461/1000000 5403387247243/1000000,1681982097027/1000000 5403427788991/1000000,336394539353/200000 270172679187/50000,336391999633/200000 5403485977147/1000000,840958559887/500000 2701771582753/500000,1681871734647/1000000 5403590355901/1000000,840900678183/500000 5403642355317/1000000,1681698275067/1000000 5403702603053/1000000,210203338673/125000 5403743754677/1000000,168156582207/100000 1350940745191/250000,1681486530031/1000000 5403783696547/1000000,1681395528893/1000000 2701897707081/500000,168130813119/100000 1080758902869/200000,336256226859/200000 675475985203/125000,1681309029987/1000000 675476791289/125000,1681347777209/1000000 1350955384711/250000,840721640289/500000 2701906265339/500000,840767594379/500000 2701899956623/500000,210203499467/125000 2701884639741/500000,1681693294577/1000000 5403734146633/1000000,336348695757/200000 5403709551639/1000000,1681819010719/1000000 2701829231019/500000,1681882981979/1000000 2701803546247/500000,1681939746371/1000000 1350888933237/250000,210246072761/125000 6754393989/1250,420498002133/250000 5403477348903/1000000,1682001920037/1000000 5403427788991/1000000,1682003725877/1000000 337710689409/62500,840990590869/500000 5403316111723/1000000,1681950564919/1000000 540324218677/100000,336389392297/200000 5403179109609/1000000,1682053819381/1000000 5402931490011/1000000,336414941221/200000 5402867003137/1000000,841043500329/500000 540282921083/100000,420527470719/250000 1080555864197/200000,168213247649/100000 2701379762507/500000,1682162573821/1000000 1350686179507/250000,1682197659889/1000000 84417850289/15625,1682230057811/1000000 13506881791/2500,1682274948187/1000000 2701387750881/500000,1682361422357/1000000 1080565002337/200000,1682456810283/1000000 1080572852739/200000,210320498721/125000 1350729383213/250000,420650946053/250000 1080589045443/200000,336527276007/200000 5402982409647/1000000,1682648855997/1000000 2701518374293/500000,1682663269733/1000000 67539434807/12500,336538879559/200000 2701614224783/500000,1682727240993/1000000 2701643613801/500000,168275607671/100000 1350835324149/250000,33655842221/20000 270169407353/50000,52588464321/31250 216136859211/40000,84145018537/50000 270172993623/50000,13463542101/8000 2701732585691/500000,841487506061/500000 2701735405117/500000,33660985319/20000 5403469290543/1000000,841557216429/500000 2701721767893/500000,1683203842547/1000000 5403370790593/1000000,1683279613611/1000000 1080654760067/200000,1683328107421/1000000 540321015329/100000,1683356901909/1000000 5403151045321/1000000,420838468921/250000 2701552037441/500000,420832785473/250000 5403043457221/1000000,841654962667/500000 1350742678007/250000,168331144257/100000 5402916263111/1000000,1683346297753/1000000 2701435346193/500000,168340843019/100000 5402805525651/1000000,420871808931/250000 33767165173/6250,841787564089/500000 1080538069819/200000,67345672163/40000 5402647917731/1000000,1683706970983/1000000 5402616094209/1000000,1683741826167/1000000 2701305017721/500000,42094531651/25000 1350653941069/250000,1683816261403/1000000 5402623462709/1000000,1683915838219/1000000 675334592733/125000,1684000/1 540271141802501/100000000,842010309081/500000 5402719913077/1000000,168406800703/100000 675341588809/125000,1684222971181/1000000 5402746287709/1000000,1684311424353/1000000 108055304877/20000,105278160811/62500 1080560551243/200000,421144709271/250000 675356848203/125000,1684651433497/1000000 5402882619959/1000000,336941661017/200000 675361839687/125000,842381982267/500000 337680239357/62500,1684819632229/1000000 5402849946609/1000000,421209445333/250000 5402820902521/1000000,842417678527/500000 1350694335347/250000,1684817207951/1000000 2701368099881/500000,210593681481/125000 2701337246161/500000,842352338457/500000 2701311836333/500000,1684682899639/1000000 1350636254669/250000,1684682899639/1000000 2701238026357/500000,84234629013/50000 5402430072073/1000000,1684739771227/1000000 84412137858/15625,421209445333/250000 2701152718721/500000,842460635253/500000 1350569400777/250000,336996354053/200000 13505687959/2500,1685015652439/1000000 1350573939853/250000,168503138551/100000 270115876749/50000,421258147351/250000 5402344159561/1000000,1685010812129/1000000 5402370774143/1000000,842495725443/500000 5402409496261/1000000,105311814163/62500 5402463955177/1000000,421243022411/250000 1080520137469/200000,1684985398437/1000000 5402732580499/1000000,105311663161/62500 2701486685743/500000,336991996949/200000 5403060493753/1000000,1684920058367/1000000 270156594461/50000,842440667941/500000 5403191177153/1000000,842431593389/500000 1350811104079/250000,842432199459/500000 1350823808993/250000,421224570273/250000 1350836513907/250000,168494910023/100000 5403360582671/1000000,421247497843/250000 5403370170719/1000000,421268131007/250000 5403369050947/1000000,1685162065651/1000000 5403366631439/1000000,842627011653/500000 5403340006859/1000000,210668248651/125000 5403307333509/1000000,1685395596207/1000000 108065445013/20000,421361302863/250000 2701608290991/500000,842735308449/500000 5403177869861/1000000,1685479085381/1000000 1080622020731/200000,1685482045639/1000000 2701534341043/500000,421365840139/250000 1350758467293/250000,421363720957/250000 2701483661359/500000,842735914519/500000 5402909244539/1000000,1685532328797/1000000 270141227089/50000,1685646071973/1000000 1350686169509/250000,1685708996011/1000000 5402691438873/1000000,1685723508697/1000000 5402658765523/1000000,210717103217/125000 540261520439/100000,1685746506357/1000000 5402540189659/1000000,33715196303/20000 5402501467541/1000000,1685788857013/1000000 5402491789511/1000000,168581910277/100000 135062445957/25000,105365660557/62500 5402523243109/1000000,842936779163/500000 5402570433503/1000000,84294827387/50000 5402610355377/1000000,842982151921/500000 337669878341/62500,1686003026327/1000000 1080562486849/200000,421510437203/250000 5402911654049/1000000,2697722949/1600 5402947956659/1000000,1686111929193/1000000 5402947956659/1000000,843073511753/500000 5402931010109/1000000,843091054787/500000 5402901976019/1000000,337240536591/200000 5402819692767/1000000,1686214779609/1000000 5402689009367/1000000,843104969649/500000 5402592209071/1000000,843096501167/500000 1080497872001/200000,843089240701/500000 540241554503/100000,1686177269263/1000000 1350589366713/250000,1686222044197/1000000 270115876749/50000,1686324894613/1000000 5402263086063/1000000,210802258051/125000 5402230412713/1000000,1686484616617/1000000 1080448744001/200000,1686519710931/1000000 5402271554339/1000000,843270744103/500000 1080462539193/200000,1686559637309/1000000 168825523587/31250,843299179897/500000 5402483311237/1000000,210832962483/125000 216102429819/40000,1686704838381/1000000 5402610355377/1000000,1686724199623/1000000 5402659965279/1000000,210843550147/125000 2701377178033/500000,10542359019/6250 5402892297989/1000000,67472646621/40000 5402980630009/1000000,337372912077/200000 5403039917941/1000000,337388401071/200000 5403090737597/1000000,843510327109/500000 2701552027443/500000,1687121088601/1000000 1080625891943/200000,1687190056843/1000000 1350788416197/250000,843616220241/500000 43225373289/8000,168725883543/100000 5403191157157/1000000,843648016217/500000 2701615669489/500000,210915416803/125000 675408953847/125000,843675165659/500000 1350834204377/250000,843677569323/500000 1350843577469/250000,337470988149/200000 5403406803263/1000000,1687349539717/1000000 675429087249/125000,1687329213711/1000000 337716388249/62500,843657952459/500000 2701757120697/500000,843652506079/500000 1080710108801/200000,1687302868239/1000000 2701788984211/500000,42182564697/25000 5403647344301/1000000,1687337682193/1000000 168866361837/31250,168737882071/100000 5403747773859/1000000,843742649649/500000 5403757461887/1000000,1687540966993/1000000 5403757461887/1000000,843804967617/500000 1080749312821/200000,421916627493/250000 2701885444577/500000,337541960131/200000 2701895937441/500000,1687749595099/1000000 5403819559247/1000000,1687766993831/1000000 1080767451129/200000,1687789191643/1000000 5403882346467/1000000,1687788993743/1000000 5403907341379/1000000,168778130037/100000 2701968667637/500000,1687766103279/1000000 2701982364849/500000,1687735915243/1000000 2701997261817/500000,337539646347/200000 1080803865717/200000,1687665635913/1000000 5404034025593/1000000,1687635645777/1000000 1351010331027/250000,843798779111/500000 5404039734431/1000000,337512613171/200000 1351009583679/250000,52734474259/31250 5404027946831/1000000,843669603837/500000 67549800947/12500,168730342071/100000 67549800947/12500,1687268425347/1000000 5403991384273/1000000,1687241733549/1000000 2702001191017/500000,1687194897153/1000000 5404036974993/1000000,210894673351/125000 5404074487357/1000000,337427605113/200000 5404115628983/1000000,421785716469/250000 5404156770609/1000000,1687175535911/1000000 2702129809837/500000,168722514291/100000 84442785526/15625,1687369140089/1000000 54044314447/10000,1687438108331/1000000 1351117844143/250000,26366863232/15625 2702244761439/500000,843765944159/500000 675561341579/125000,843773901399/500000 5404451100699/1000000,337512660997/200000 1351103989463/250000,421883877061/250000 5404415757893/1000000,1687520517299/1000000 84444072764/15625,843744010213/500000 5404417967443/1000000,1687440631559/1000000 2702200035543/500000,421848310673/250000 675546848279/125000,168730615833/100000 2702158354027/500000,843636929679/500000 5404283914729/1000000,1687256559577/1000000 5404251321363/1000000,210902732633/125000 2702106769527/500000,26362691479/15625 2702074226151/500000,843609978137/500000 84439508693/15625,168725014431/100000 5404101261907/1000000,1687282731887/1000000 540408395543/100000,8436589131/5000 216162966297/40000,421840079259/250000 337754497367/62500,168738531019/100000 84438705419/15625,1687462697439/1000000 675512841451/125000,1687512683747/1000000 5404103031547/1000000,337510033871/200000 1080819164603/200000,843814042169/500000 5404107160707/1000000,1687687743021/1000000 5404083215581/1000000,1687762219487/1000000 5404046013153/1000000,1687805402973/1000000 675501090093/125000,1687854358551/1000000 1350979899721/250000,1687851934273/1000000 5403865149967/1000000,1687851934273/1000000 2701920472447/500000,1687834997309/1000000 5403804652281/1000000,843909632119/500000 5403765930163/1000000,1687790271849/1000000 1350933719121/250000,1687732987969/1000000 1080739398839/200000,337539118613/200000 5403681697309/1000000,1687658099211/1000000 2701836954447/500000,210953201323/125000 1080734741787/200000,843790310629/500000 675459802247/125000,210939117421/125000 675462239251/125000,1687467950041/1000000 5403697624067/1000000,1687447953869/1000000 1080738505021/200000,337482111793/200000 2701836119617/500000,105462078699/62500 5403649643833/1000000,52730654887/31250 1080722410297/200000,421845105101/250000 5403608582191/1000000,33747358559/20000 5403548124497/1000000,421842588057/250000 5403520290163/1000000,52730929319/31250 5403461882051/1000000,1687404737399/1000000 5403458482743/1000000,1687417229853/1000000 2701717393783/500000,843708759229/500000 5403387297233/1000000,210928789501/125000 2701672402941/500000,1687430711809/1000000 2701646158283/500000,674968363/400 5403262222691/1000000,1687406106209/1000000 5403237127799/1000000,337473262353/200000 5403194346507/1000000,84366950901/50000 2701587075309/500000,168724433099/100000 5403120971443/1000000,843605970657/500000 216124331361/40000,1687167042691/1000000 5403080489683/1000000,843554430007/500000 2701529202089/500000,843533683463/500000 2701522403473/500000,1687056465919/1000000 1350760629353/250000,421749416201/250000 5403038708187/1000000,421734895269/250000 1350755745347/250000,843428652021/500000 2701467929561/500000,1686793176111/1000000 2701377178033/500000,843387509381/500000 337667760647/62500,210843248143/125000 2701314255841/500000,421680142863/250000 540258857981/100000,26353950111/15625 1350628993647/250000,843305834293/500000 2701223504313/500000,1686585051001/1000000 5402405867/1000,84328768519/50000 1350589366713/250000,42164081637/25000 2701149694337/500000,843268930017/500000 216090039541/40000,1686499137549/1000000 675277289397/125000,1686427745029/1000000 1350551251971/250000,84318059641/50000 5402213476161/1000000,6745183411/4000 2701124884387/500000,843110416029/500000 5402293329907/1000000,1686173641091/1000000 2701162396751/500000,1686154279849/1000000 5402369564389/1000000,1686154279849/1000000 5402424013307/1000000,843091054787/500000 1350632020531/250000,843094687081/500000 216106350221/40000,843094687081/500000 5402799126953/1000000,1686160332299/1000000 1350724284251/250000,337225047597/200000 2701461875793/500000,421520420859/250000 2701461875793/500000,1686046589123/1000000 5402881400207/1000000,1686009078777/1000000 1080554016573/200000,33719019901/20000 2701323933871/500000,52684796397/31250 2701293080151/500000,842929518697/500000 5402499048033/1000000,168581910277/100000 1350619315617/250000,842901082903/500000 5402472423453/1000000,105360517727/62500 5402472423453/1000000,842867200729/500000 5402491789511/1000000,337145429023/200000 2701262226431/500000,1685717464493/1000000 135065138159/25000,84284663147/50000 2701339065791/500000,842792786107/500000 270137778291/50000,1685504499073/1000000 5402820912519/1000000,1685460936277/1000000 5402880200451/1000000,1685433106553/1000000 2701467929561/500000,842715947207/500000 2701496973649/500000,1685460936277/1000000 2701542349413/500000,1685460936277/1000000 1350785694251/250000,337081781/200 5403229899271/1000000,10533359453/6250 135082048217/25000,1685229821753/1000000 1080663888209/200000,842554411117/500000 5403347265381/1000000,842502985909/500000 2701672422937/500000,336983286039/200000 5403326699567/1000000,421222451091/250000 2701647013109/500000,336979896997/200000 540322627001/100000,105309167247/62500 2701571993379/500000,336996354053/200000 216122710091/40000,84250177377/50000 1080597819657/200000,1685019280611/1000000 2701443729487/500000,1685015652439/1000000 5402772512371/1000000,52656474241/31250 5402592219069/1000000,1685019280611/1000000 1350616593671/250000,168503138551/100000 5402392559709/1000000,67401690801/40000 5402371983897/1000000,421263593731/250000 5402341740053/1000000,421263593731/250000 2701159372367/500000,842522953221/500000 5402289710643/1000000,1685007183957/1000000 2701129728401/500000,168494910023/100000 5402241300497/1000000,842437645839/500000 675282280881/125000,421198857669/250000 5402294549659/1000000,842355970751/500000 5402363515621/1000000,210583395821/125000 540241554503/100000,421162557401/250000 675310716343/125000,421165884599/250000 2701297314289/500000,1684697420571/1000000 1080532478957/200000,1684771229123/1000000 1350681630433/250000,1684808739469/1000000 135069373047/25000,42120309191/25000 2701408031753/500000,105298806859/62500 5402851156363/1000000,21059262189/12500 5402870512423/1000000,842345077991/500000 1080573618583/200000,1684630868361/1000000 67535548723/12500,168451761169/100000 5402795847621/1000000,168443532641/100000 2701382631923/500000,1684290578859/1000000 675341323863/125000,1684228067113/1000000 1350680323199/250000,1684133289379/1000000 1080539641499/200000,842015405013/500000 337667657543/62500,1684000/1 67533403924977/12500000))"); + + std::unique_ptr ss = algorithm::straightSkeleton(*g); + + std::cout << ss->asText() << std::endl; +} + BOOST_AUTO_TEST_SUITE_END()