Fix broken tests.

(grafted from 115ada20dc71e5c75046da96b26245fd431bf8d3)

--HG--
branch : develop
This commit is contained in:
Roman Telezhynskyi 2017-10-10 13:37:54 +03:00
parent 136b9f66ed
commit 9cbd725957
2 changed files with 675 additions and 226 deletions

View File

@ -106,41 +106,107 @@ void TST_VPiece::ClearLoop()
const QVector<QPointF> pointsEkv = detail.SeamAllowancePoints(data.data());
QVector<QPointF> origPoints;
origPoints.append(QPointF(42.46405659601932, 415.2845470563871));
origPoints.append(QPointF(669.4711112822802, 560.1912138528764));
origPoints.append(QPointF(669.3860586912449, 594.8702688224456));
origPoints.append(QPointF(669.8537241707239, 619.8499975627876));
origPoints.append(QPointF(670.904422406071, 642.3178846003559));
origPoints.append(QPointF(672.4760946214147, 662.4793325519112));
origPoints.append(QPointF(674.5043075280212, 680.4882882996908));
origPoints.append(QPointF(676.9236185537709, 696.5023899408525));
origPoints.append(QPointF(679.6685049649096, 710.6850434378523));
origPoints.append(QPointF(682.6751345782424, 723.2078546770477));
origPoints.append(QPointF(685.8841825335202, 734.2530219317046));
origPoints.append(QPointF(689.2446146317781, 744.0149891243127));
origPoints.append(QPointF(692.7177992446996, 752.7004886151328));
origPoints.append(QPointF(696.2448548679188, 760.4478278509594));
origPoints.append(QPointF(701.8005387196029, 771.2301295961994));
origPoints.append(QPointF(709.4908502689113, 784.4621360005407));
origPoints.append(QPointF(713.2090350731621, 790.7616409320319));
origPoints.append(QPointF(715.0121915355467, 793.763727920337));
origPoints.append(QPointF(718.7808834775552, 799.1742815201673));
origPoints.append(QPointF(722.5723522600899, 803.7317522627161));
origPoints.append(QPointF(726.4900810611796, 807.6675956080389));
origPoints.append(QPointF(730.558043384579, 811.0692054929614));
origPoints.append(QPointF(734.8172463181712, 814.0137888810656));
origPoints.append(QPointF(739.318992665584, 816.5616228424284));
origPoints.append(QPointF(744.1159693320302, 818.7532201983325));
origPoints.append(QPointF(749.2539447976853, 820.6109034502547));
origPoints.append(QPointF(754.7662623591739, 822.1435546205067));
origPoints.append(QPointF(760.6718473722125, 823.3525044481979));
origPoints.append(QPointF(766.9761113390083, 824.236813134474));
origPoints.append(QPointF(773.6735265709667, 824.7970381873482));
origPoints.append(QPointF(780.6615727577812, 825.0343457026618));
origPoints.append(QPointF(792.109995909239, 824.8480813766124));
origPoints.append(QPointF(825.8211754072381, 821.4551806381257));
origPoints.append(QPointF(828.6858753986579, 1697.305833468011));
origPoints.append(QPointF(42.46405659601932, 415.2845470563871));
origPoints.append(QPointF(42.46405659601942, 415.2845470563873));
origPoints.append(QPointF(669.53545906065, 560.2060851721218));
origPoints.append(QPointF(669.4001315082384, 584.8051149911265));
origPoints.append(QPointF(669.3971506600346, 591.5358644500567));
origPoints.append(QPointF(669.4350122627271, 598.0891335031142));
origPoints.append(QPointF(669.512757618795, 604.4805090719773));
origPoints.append(QPointF(669.6294287899757, 610.7123442956477));
origPoints.append(QPointF(669.7840625660031, 616.7869939551731));
origPoints.append(QPointF(669.9756903141416, 622.7068151490457));
origPoints.append(QPointF(670.2033378543063, 628.4741680595723));
origPoints.append(QPointF(670.4660253660076, 634.0914168000103));
origPoints.append(QPointF(670.7627673353721, 639.5609303670992));
origPoints.append(QPointF(671.0925725508636, 644.88508369749));
origPoints.append(QPointF(671.4544441569424, 650.0662588248562));
origPoints.append(QPointF(671.8473797781523, 655.1068461674331));
origPoints.append(QPointF(672.2703717242233, 660.0092459230049));
origPoints.append(QPointF(672.7224072914591, 664.7758696009033));
origPoints.append(QPointF(673.2024691737167, 669.4091416739334));
origPoints.append(QPointF(673.7095360004373, 673.9115013689292));
origPoints.append(QPointF(674.2425830172843, 678.2854045794492));
origPoints.append(QPointF(674.8005829289502, 682.5333259132697));
origPoints.append(QPointF(675.3825069209878, 686.6577608536486));
origPoints.append(QPointF(675.9873258816623, 690.6612280423046));
origPoints.append(QPointF(676.6140118402975, 694.5462716540186));
origPoints.append(QPointF(677.2615396418696, 698.3154638589637));
origPoints.append(QPointF(677.9288888734632, 701.971407344139));
origPoints.append(QPointF(678.615046057566, 705.5167378711579));
origPoints.append(QPointF(679.3190071217258, 708.9541268298552));
origPoints.append(QPointF(680.0397801538563, 712.2862837635739));
origPoints.append(QPointF(680.7763884409013, 715.5159588051306));
origPoints.append(QPointF(681.527873788316, 718.6459449906465));
origPoints.append(QPointF(682.2933001036281, 721.6790803846292));
origPoints.append(QPointF(683.0717572225838, 724.6182499679669));
origPoints.append(QPointF(683.8623649413778, 727.4663872197892));
origPoints.append(QPointF(684.6642772103369, 730.2264753386498));
origPoints.append(QPointF(685.4688320979097, 732.8756855713231));
origPoints.append(QPointF(686.7042297790314, 736.7448337001608));
origPoints.append(QPointF(688.3922766601711, 741.6485656582661));
origPoints.append(QPointF(690.1014239938168, 746.2438997099595));
origPoints.append(QPointF(691.8365445991736, 750.5829691271946));
origPoints.append(QPointF(693.5947375993189, 754.6929542771874));
origPoints.append(QPointF(695.374143963642, 758.6015018634648));
origPoints.append(QPointF(697.173895570668, 762.3365598413925));
origPoints.append(QPointF(698.9939856776302, 765.9262007023783));
origPoints.append(QPointF(700.8350559377793, 769.3984479446959));
origPoints.append(QPointF(702.6981018570923, 772.781118895178));
origPoints.append(QPointF(704.5751154394404, 776.0858639250417));
origPoints.append(QPointF(707.471075434013, 781.0529292076153));
origPoints.append(QPointF(711.3732953060202, 787.6314568397516));
origPoints.append(QPointF(713.2933193388338, 790.9045911620659));
origPoints.append(QPointF(713.7531687634975, 791.6875604681287));
origPoints.append(QPointF(714.6678160659043, 793.1880160336813));
origPoints.append(QPointF(715.5686285678618, 794.6014031881614));
origPoints.append(QPointF(716.4776602288559, 795.9656869340208));
origPoints.append(QPointF(717.3946261026655, 797.2821365366428));
origPoints.append(QPointF(718.3193027545042, 798.5520602886423));
origPoints.append(QPointF(719.2515331337012, 799.7768007322334));
origPoints.append(QPointF(720.1912309193016, 800.9577290368121));
origPoints.append(QPointF(721.1383841967548, 802.0962385692094));
origPoints.append(QPointF(722.0930583323086, 803.1937377265572));
origPoints.append(QPointF(723.0553979184381, 804.2516421248051));
origPoints.append(QPointF(724.0256276824568, 805.2713662661918));
origPoints.append(QPointF(725.0040522692885, 806.2543148301429));
origPoints.append(QPointF(725.9910548373568, 807.2018737544394));
origPoints.append(QPointF(726.9870944370721, 808.1154012887525));
origPoints.append(QPointF(727.992702176212, 808.9962192129983));
origPoints.append(QPointF(729.0084762114801, 809.8456044148575));
origPoints.append(QPointF(730.0350756421151, 810.6647810168413));
origPoints.append(QPointF(731.0732134148514, 811.4549132304943));
origPoints.append(QPointF(732.1236483836559, 812.217099098663));
origPoints.append(QPointF(733.1871766854633, 812.9523652550562));
origPoints.append(QPointF(734.2646226265674, 813.6616628101706));
origPoints.append(QPointF(735.3568292693044, 814.345864425637));
origPoints.append(QPointF(736.4646489305214, 815.0057626152854));
origPoints.append(QPointF(737.5889337869056, 815.6420692657007));
origPoints.append(QPointF(738.7305267800202, 816.2554163399695));
origPoints.append(QPointF(739.890252994274, 816.8463576948574));
origPoints.append(QPointF(741.0689116577936, 817.4153719140883));
origPoints.append(QPointF(742.2672688927632, 817.9628660401196));
origPoints.append(QPointF(743.4860513115749, 818.4891800699529));
origPoints.append(QPointF(744.7259405221598, 818.994592069369));
origPoints.append(QPointF(745.9470287398851, 819.4637478954073));
origPoints.append(QPointF(747.8833122349788, 820.1566508068018));
origPoints.append(QPointF(750.5850392329681, 821.0169732509104));
origPoints.append(QPointF(753.3408618817797, 821.7832053775238));
origPoints.append(QPointF(756.1945063236712, 822.4686248864464));
origPoints.append(QPointF(759.1474180444699, 823.0731242050008));
origPoints.append(QPointF(762.2002204282861, 823.5965365148435));
origPoints.append(QPointF(765.3528023393483, 824.0387539700189));
origPoints.append(QPointF(768.6044162317405, 824.399818281789));
origPoints.append(QPointF(771.9537790264915, 824.679985612587));
origPoints.append(QPointF(775.3991699554742, 824.8797689928807));
origPoints.append(QPointF(778.9385214242475, 824.999962059787));
origPoints.append(QPointF(782.5695005442702, 825.041647992741));
origPoints.append(QPointF(786.289580235633, 825.0061972612904));
origPoints.append(QPointF(790.0960997334876, 824.8952573520692));
origPoints.append(QPointF(793.9863149544959, 824.7107371151485));
origPoints.append(QPointF(797.9907834493861, 824.4526387407261));
origPoints.append(QPointF(826.0032661558732, 877.1274330708662));
origPoints.append(QPointF(828.6858753986579, 1697.3058334680109));
origPoints.append(QPointF(42.46405659601942, 415.2845470563873));
// Begin comparison
Comparison(pointsEkv, origPoints);
@ -211,43 +277,118 @@ void TST_VPiece::Issue620()
const QVector<QPointF> pointsEkv = detail.MainPathPoints(data.data());
QVector<QPointF> origPoints;
origPoints.append(QPointF(30.0, 39.999874015748034));
origPoints.append(QPointF(333.8010271540832, 37.24215812551862));
origPoints.append(QPointF(345.4352438583124, 572.5727590471124));
origPoints.append(QPointF(-43.77068412991705, 567.8446507439609));
origPoints.append(QPointF(-35.87661251446703, 554.334665281764));
origPoints.append(QPointF(-21.170117796937717, 530.280231438072));
origPoints.append(QPointF(-7.679257977133303, 509.352260960953));
origPoints.append(QPointF(4.687459520857305, 491.0705525945524));
origPoints.append(QPointF(21.441835284502346, 467.3785713839818));
origPoints.append(QPointF(40.52832726053379, 440.9303122452387));
origPoints.append(QPointF(52.86115234049136, 422.54889846842264));
origPoints.append(QPointF(60.404360001732, 410.06053639339046));
origPoints.append(QPointF(67.46387337253645, 396.85702763809604));
origPoints.append(QPointF(74.13118502881582, 382.4581709466849));
origPoints.append(QPointF(80.49778754648119, 366.3837650633026));
origPoints.append(QPointF(86.65517350144364, 348.15360873209477));
origPoints.append(QPointF(92.69483546961428, 327.287500697207));
origPoints.append(QPointF(98.70826602690417, 303.30523970278495));
origPoints.append(QPointF(-41.776027573529674, 564.4070486713748));
origPoints.append(QPointF(-37.85646185008852, 557.7284453106807));
origPoints.append(QPointF(-34.019306379498914, 551.2790100611998));
origPoints.append(QPointF(-30.263131590262248, 545.0512397783091));
origPoints.append(QPointF(-26.586507910879927, 539.0376313173863));
origPoints.append(QPointF(-22.98800576985332, 533.2306815338081));
origPoints.append(QPointF(-19.466195595683825, 527.6228872829522));
origPoints.append(QPointF(-16.019647816872833, 522.2067454201957));
origPoints.append(QPointF(-10.978854893973825, 514.4038559090675));
origPoints.append(QPointF(-4.520178850519514, 504.6314487766784));
origPoints.append(QPointF(1.6631798984757897, 495.490594593478));
origPoints.append(QPointF(7.58265792500097, 486.92126820248467));
origPoints.append(QPointF(13.249691801044914, 478.8634444467164));
origPoints.append(QPointF(18.67571809859651, 471.25709816919147));
origPoints.append(QPointF(26.41443785504145, 460.525117170489));
origPoints.append(QPointF(33.62211724018606, 450.5466726362586));
origPoints.append(QPointF(38.19847894365711, 444.14598470188895));
origPoints.append(QPointF(42.591015928580234, 437.89664846085356));
origPoints.append(QPointF(46.811164766944344, 431.73863875617076));
origPoints.append(QPointF(50.87036203073829, 425.6119304308587));
origPoints.append(QPointF(53.81161102143449, 420.9990273759227));
origPoints.append(QPointF(55.73121775864344, 417.9028756631243));
origPoints.append(QPointF(57.61701967395359, 414.7807851443662));
origPoints.append(QPointF(59.47044633886358, 411.6252526750258));
origPoints.append(QPointF(61.292927324872, 408.42877511048044));
origPoints.append(QPointF(63.085892203477464, 405.18384930610733));
origPoints.append(QPointF(64.85077054617858, 401.88297211728377));
origPoints.append(QPointF(66.58899192447396, 398.5186403993869));
origPoints.append(QPointF(68.30198590986222, 395.0833510077942));
origPoints.append(QPointF(69.99118207384197, 391.5696007978828));
origPoints.append(QPointF(71.65800998791181, 387.96988662503003));
origPoints.append(QPointF(73.30389922357037, 384.2767053446131));
origPoints.append(QPointF(74.93027935231623, 380.48255381200937));
origPoints.append(QPointF(76.53857994564802, 376.57992888259605));
origPoints.append(QPointF(78.13023057506439, 372.56132741175054));
origPoints.append(QPointF(79.70666081206386, 368.4192462548499));
origPoints.append(QPointF(81.26930022814513, 364.14618226727157));
origPoints.append(QPointF(82.81957839480675, 359.7346323043928));
origPoints.append(QPointF(84.35892488354736, 355.1770932215909));
origPoints.append(QPointF(85.88876926586558, 350.466061874243));
origPoints.append(QPointF(87.41054111325998, 345.59403511772655));
origPoints.append(QPointF(88.92566999722922, 340.55350980741866));
origPoints.append(QPointF(90.43558548927187, 335.33698279869674));
origPoints.append(QPointF(91.94171716088657, 329.93695094693794));
origPoints.append(QPointF(93.44549458357191, 324.34591110751967));
origPoints.append(QPointF(94.94834732882651, 318.55636013581915));
origPoints.append(QPointF(96.45170496814899, 312.56079488721366));
origPoints.append(QPointF(97.95699707303794, 306.35171221708043));
origPoints.append(QPointF(99.46565321499199, 299.92160898079675));
origPoints.append(QPointF(100.97910296550974, 293.26298203373995));
origPoints.append(QPointF(101.73836126698214, 289.83563666815587));
origPoints.append(QPointF(100.33414592841483, 265.38578532087524));
origPoints.append(QPointF(96.68026149584162, 212.73003048920282));
origPoints.append(QPointF(93.50326130663731, 183.65468712210458));
origPoints.append(QPointF(90.71558574640727, 163.99193793167092));
origPoints.append(QPointF(87.25149211813451, 144.48122290748523));
origPoints.append(QPointF(83.01539723892088, 125.48779016127345));
origPoints.append(QPointF(77.91171792586823, 107.37688780476151));
origPoints.append(QPointF(73.4247676790375, 94.64014475361638));
origPoints.append(QPointF(70.13263046316489, 86.58901147237839));
origPoints.append(QPointF(66.56983159845231, 78.96396285141125));
origPoints.append(QPointF(62.72442318703749, 71.81065490468066));
origPoints.append(QPointF(58.58445733105817, 65.17474364615236));
origPoints.append(QPointF(54.13798613265208, 59.10188508979212));
origPoints.append(QPointF(49.373061693956934, 53.63773524956568));
origPoints.append(QPointF(44.277736117110486, 48.827950139438784));
origPoints.append(QPointF(38.84006150425045, 44.71818577337716));
origPoints.append(QPointF(33.04808995751456, 41.35409816534657));
origPoints.append(QPointF(101.37719348141695, 284.37000549925995));
origPoints.append(QPointF(100.64077948858204, 271.46526165758365));
origPoints.append(QPointF(99.80144652509331, 256.5210633117996));
origPoints.append(QPointF(99.03846354637537, 244.15048365420762));
origPoints.append(QPointF(98.45199860267363, 235.49121370797783));
origPoints.append(QPointF(97.78603837592823, 226.52753219856694));
origPoints.append(QPointF(97.02863496827689, 217.3050951399407));
origPoints.append(QPointF(96.16784048185737, 207.86955854606484));
origPoints.append(QPointF(95.19170701880736, 198.26657843090516));
origPoints.append(QPointF(94.08828668126463, 188.54181080842733));
origPoints.append(QPointF(92.8456315713669, 178.7409116925971));
origPoints.append(QPointF(91.8100755249774, 171.36785871320973));
origPoints.append(QPointF(91.07312073651642, 166.45311304837324));
origPoints.append(QPointF(90.29463656241913, 161.54501601805435));
origPoints.append(QPointF(89.4731295154528, 156.6492746239989));
origPoints.append(QPointF(88.60710610838458, 151.77159586795244));
origPoints.append(QPointF(87.69507285398177, 146.91768675166082));
origPoints.append(QPointF(86.73553626501155, 142.0932542768697));
origPoints.append(QPointF(85.7270028542411, 137.3040054453248));
origPoints.append(QPointF(84.6679791344377, 132.55564725877187));
origPoints.append(QPointF(83.55697161836854, 127.85388671895657));
origPoints.append(QPointF(82.39248681880082, 123.20443082762469));
origPoints.append(QPointF(81.17303124850177, 118.61298658652187));
origPoints.append(QPointF(79.8971114202386, 114.08526099739389));
origPoints.append(QPointF(78.56323384677853, 109.62696106198644));
origPoints.append(QPointF(77.1699050408888, 105.24379378204526));
origPoints.append(QPointF(75.71563151533661, 100.94146615931604));
origPoints.append(QPointF(74.19891978288913, 96.72568519554451));
origPoints.append(QPointF(72.61827635631366, 92.60215789247638));
origPoints.append(QPointF(70.97220774837734, 88.5765912518574));
origPoints.append(QPointF(69.25922047184744, 84.65469227543325));
origPoints.append(QPointF(67.47782103949115, 80.84216796494968));
origPoints.append(QPointF(65.62651596407568, 77.14472532215238));
origPoints.append(QPointF(63.703811758368275, 73.56807134878709));
origPoints.append(QPointF(61.70821493513614, 70.11791304659951));
origPoints.append(QPointF(59.63823200714647, 66.79995741733536));
origPoints.append(QPointF(57.49236948716651, 63.61991146274037));
origPoints.append(QPointF(55.8298252766917, 61.333435118024795));
origPoints.append(QPointF(54.698584178428256, 59.852194710865774));
origPoints.append(QPointF(53.5475330955988, 58.408641910856005));
origPoints.append(QPointF(52.37648534229922, 57.00349009321371));
origPoints.append(QPointF(51.18525423262544, 55.63745263315711));
origPoints.append(QPointF(49.973653080673344, 54.31124290590439));
origPoints.append(QPointF(48.741495200538836, 53.025574286673795));
origPoints.append(QPointF(47.48859390631783, 51.78116015068352));
origPoints.append(QPointF(46.21476251210622, 50.5787138731518));
origPoints.append(QPointF(44.919814331999916, 49.41894882929684));
origPoints.append(QPointF(43.60356268009479, 48.30257839433685));
origPoints.append(QPointF(42.26582087048678, 47.23031594349004));
origPoints.append(QPointF(40.906402217271776, 46.20287485197463));
origPoints.append(QPointF(39.525120034545665, 45.22096849500884));
origPoints.append(QPointF(38.12178763640438, 44.285310247810884));
origPoints.append(QPointF(36.69621833694379, 43.39661348559898));
origPoints.append(QPointF(35.24822545025982, 42.55559158359132));
origPoints.append(QPointF(33.77762229044836, 41.76295791700616));
origPoints.append(QPointF(32.28422217160532, 41.01942586106168));
origPoints.append(QPointF(30.7678384078266, 40.32570879097611));
// Begin comparison
Comparison(pointsEkv, origPoints);

View File

@ -54,37 +54,111 @@ void TST_VSpline::GetSegmentPoints()
points << spl.GetSegmentPoints(begin, end, false);
QVector<QPointF> origPoints;
origPoints.append(QPointF(957.698852334, 943.844820378));
origPoints.append(QPointF(957.84724553, 975.602655091));
origPoints.append(QPointF(957.728801633, 1035.13055094));
origPoints.append(QPointF(956.808773853, 1094.37046246));
origPoints.append(QPointF(955.328435862, 1138.53744981));
origPoints.append(QPointF(953.925479436, 1167.84862152));
origPoints.append(QPointF(952.117074266, 1197.03211968));
origPoints.append(QPointF(949.857653068, 1226.07557151));
origPoints.append(QPointF(947.101648559, 1254.96660424));
origPoints.append(QPointF(943.803493456, 1283.6928451));
origPoints.append(QPointF(939.917620476, 1312.24192132));
origPoints.append(QPointF(935.398462336, 1340.60146013));
origPoints.append(QPointF(930.200451752, 1368.75908875));
origPoints.append(QPointF(924.278021443, 1396.70243441));
origPoints.append(QPointF(917.585604124, 1424.41912434));
origPoints.append(QPointF(910.077632512, 1451.89678578));
origPoints.append(QPointF(901.708539325, 1479.12304594));
origPoints.append(QPointF(892.432757279, 1506.08553207));
origPoints.append(QPointF(882.204719092, 1532.77187137));
origPoints.append(QPointF(870.978857479, 1559.1696911));
origPoints.append(QPointF(858.709605159, 1585.26661847));
origPoints.append(QPointF(845.351394848, 1611.05028071));
origPoints.append(QPointF(830.858659262, 1636.50830504));
origPoints.append(QPointF(815.18583112, 1661.62831871));
origPoints.append(QPointF(798.287343137, 1686.39794894));
origPoints.append(QPointF(780.117628031, 1710.80482295));
origPoints.append(QPointF(760.631118518, 1734.83656798));
origPoints.append(QPointF(739.782247316, 1758.48081125));
origPoints.append(QPointF(717.525447141, 1781.72518));
origPoints.append(QPointF(693.81515071, 1804.55730144));
origPoints.append(QPointF(681.337291324, 1815.79695267));
origPoints.append(QPointF(957.6988523336406, 943.8448203783314));
origPoints.append(QPointF(957.7835033607208, 960.6821452672991));
origPoints.append(QPointF(957.8563218900781, 990.4995347990275));
origPoints.append(QPointF(957.8215788398634, 1012.8262256910826));
origPoints.append(QPointF(957.7504105087676, 1027.6925228407606));
origPoints.append(QPointF(957.6319911650569, 1042.5415942520012));
origPoints.append(QPointF(957.4606249017198, 1057.371893324951));
origPoints.append(QPointF(957.2306158117447, 1072.181873459756));
origPoints.append(QPointF(956.9362679881198, 1086.9699880565609));
origPoints.append(QPointF(956.5718855238333, 1101.7346905155123));
origPoints.append(QPointF(956.1317725118738, 1116.4744342367562));
origPoints.append(QPointF(955.6102330452296, 1131.1876726204378));
origPoints.append(QPointF(955.0015712168888, 1145.8728590667038));
origPoints.append(QPointF(954.3000911198401, 1160.5284469756996));
origPoints.append(QPointF(953.5000968470716, 1175.152889747571));
origPoints.append(QPointF(952.5958924915716, 1189.7446407824636));
origPoints.append(QPointF(951.5817821463287, 1204.3021534805239));
origPoints.append(QPointF(950.452069904331, 1218.8238812418977));
origPoints.append(QPointF(949.2010598585669, 1233.3082774667305));
origPoints.append(QPointF(947.8230561020247, 1247.7537955551684));
origPoints.append(QPointF(946.3123627276927, 1262.1588889073569));
origPoints.append(QPointF(944.6632838285595, 1276.5220109234424));
origPoints.append(QPointF(943.3275966669323, 1287.2644821857812));
origPoints.append(QPointF(942.3939281609411, 1294.4131147543828));
origPoints.append(QPointF(941.4224593260558, 1301.5503845265412));
origPoints.append(QPointF(940.4124781738992, 1308.6760981772736));
origPoints.append(QPointF(939.3632727160957, 1315.790062381599));
origPoints.append(QPointF(938.2741309642681, 1322.8920838145352));
origPoints.append(QPointF(937.1443409300405, 1329.9819691511007));
origPoints.append(QPointF(935.9731906250361, 1337.0595250663137));
origPoints.append(QPointF(934.7599680608785, 1344.1245582351921));
origPoints.append(QPointF(933.5039612491914, 1351.1768753327542));
origPoints.append(QPointF(932.2044582015981, 1358.2162830340185));
origPoints.append(QPointF(930.8607469297224, 1365.242588014003));
origPoints.append(QPointF(929.4721154451878, 1372.2555969477262));
origPoints.append(QPointF(928.0378517596175, 1379.2551165102063));
origPoints.append(QPointF(926.5572438846355, 1386.2409533764612));
origPoints.append(QPointF(925.029579831865, 1393.2129142215094));
origPoints.append(QPointF(923.4541476129298, 1400.1708057203691));
origPoints.append(QPointF(921.8302352394535, 1407.1144345480584));
origPoints.append(QPointF(920.1571307230593, 1414.0436073795959));
origPoints.append(QPointF(918.4341220753709, 1420.9581308899994));
origPoints.append(QPointF(916.6604973080118, 1427.8578117542872));
origPoints.append(QPointF(914.8355444326057, 1434.7424566474779));
origPoints.append(QPointF(912.9585514607759, 1441.6118722445894));
origPoints.append(QPointF(911.0288064041463, 1448.46586522064));
origPoints.append(QPointF(909.0455972743401, 1455.3042422506478));
origPoints.append(QPointF(907.0082120829811, 1462.1268100096313));
origPoints.append(QPointF(904.9159388416924, 1468.9333751726085));
origPoints.append(QPointF(902.7680655620982, 1475.7237444145978));
origPoints.append(QPointF(900.5638802558215, 1482.4977244106174));
origPoints.append(QPointF(898.3026709344861, 1489.2551218356857));
origPoints.append(QPointF(895.9837256097155, 1495.99574336482));
origPoints.append(QPointF(893.6063322931332, 1502.7193956730398));
origPoints.append(QPointF(891.1697789963628, 1509.425885435363));
origPoints.append(QPointF(888.6733537310278, 1516.1150193268072));
origPoints.append(QPointF(886.1163445087515, 1522.7866040223912));
origPoints.append(QPointF(883.4980393411579, 1529.440446197133));
origPoints.append(QPointF(880.8177262398704, 1536.0763525260513));
origPoints.append(QPointF(878.0746932165123, 1542.6941296841637));
origPoints.append(QPointF(875.2682282827075, 1549.2935843464886));
origPoints.append(QPointF(872.3976194500792, 1555.8745231880448));
origPoints.append(QPointF(869.4621547302513, 1562.4367528838495));
origPoints.append(QPointF(866.4611221348471, 1568.9800801089218));
origPoints.append(QPointF(863.39380967549, 1575.5043115382791));
origPoints.append(QPointF(860.259505363804, 1582.0092538469407));
origPoints.append(QPointF(857.057497211412, 1588.4947137099243));
origPoints.append(QPointF(853.7870732299382, 1594.960497802248));
origPoints.append(QPointF(850.447521431006, 1601.40641279893));
origPoints.append(QPointF(847.0381298262384, 1607.8322653749888));
origPoints.append(QPointF(843.5581864272597, 1614.2378622054425));
origPoints.append(QPointF(840.0069792456928, 1620.623009965309));
origPoints.append(QPointF(836.3837962931617, 1626.9875153296075));
origPoints.append(QPointF(832.6879255812897, 1633.3311849733554));
origPoints.append(QPointF(828.9186551217003, 1639.653825571571));
origPoints.append(QPointF(825.0752729260173, 1645.9552437992727));
origPoints.append(QPointF(821.1570670058641, 1652.2352463314787));
origPoints.append(QPointF(817.1633253728643, 1658.4936398432073));
origPoints.append(QPointF(813.0933360386413, 1664.7302310094765));
origPoints.append(QPointF(808.9463870148186, 1670.944826505305));
origPoints.append(QPointF(804.72176631302, 1677.1372330057104));
origPoints.append(QPointF(800.4187619448687, 1683.3072571857115));
origPoints.append(QPointF(796.0366619219888, 1689.4547057203263));
origPoints.append(QPointF(791.5747542560034, 1695.5793852845732));
origPoints.append(QPointF(787.032326958536, 1701.6811025534698));
origPoints.append(QPointF(782.4086680412104, 1707.7596642020349));
origPoints.append(QPointF(777.70306551565, 1713.8148769052868));
origPoints.append(QPointF(772.9148073934782, 1719.8465473382437));
origPoints.append(QPointF(768.0431816863188, 1725.8544821759235));
origPoints.append(QPointF(763.0874764057953, 1731.8384880933447));
origPoints.append(QPointF(758.0469795635311, 1737.7983717655252));
origPoints.append(QPointF(752.9209791711501, 1743.733939867484));
origPoints.append(QPointF(747.7087632402752, 1749.6449990742383));
origPoints.append(QPointF(742.4096197825304, 1755.531356060807));
origPoints.append(QPointF(737.0228368095393, 1761.3928175022083));
origPoints.append(QPointF(731.5477023329252, 1767.2291900734604));
origPoints.append(QPointF(725.9835043643118, 1773.0402804495811));
origPoints.append(QPointF(720.3295309153225, 1778.8258953055893));
origPoints.append(QPointF(714.5850699975811, 1784.5858413165029));
origPoints.append(QPointF(708.7494096227108, 1790.31992515734));
origPoints.append(QPointF(702.8218378023353, 1796.027953503119));
origPoints.append(QPointF(696.8016425480782, 1801.7097330288584));
origPoints.append(QPointF(690.688111871563, 1807.365070409576));
origPoints.append(QPointF(684.4805337844132, 1812.9937723202902));
origPoints.append(QPointF(681.3372913240995, 1815.7969526662778));
// Begin comparison
Comparison(points, origPoints);
@ -107,24 +181,72 @@ void TST_VSpline::GetSegmentPoints_issue412()
points << spl.GetSegmentPoints(begin, end, false);
QVector<QPointF> origPoints;
origPoints.append(QPointF(869.117480315, -61.1172283465));
origPoints.append(QPointF(869.034855699, -51.3519540199));
origPoints.append(QPointF(868.055234051, -32.0262592346));
origPoints.append(QPointF(866.119738229, -12.967761819));
origPoints.append(QPointF(863.252115711, 5.79979075097));
origPoints.append(QPointF(859.476113972, 24.2526509993));
origPoints.append(QPointF(854.815480488, 42.36707145));
origPoints.append(QPointF(849.293962735, 60.1193046272));
origPoints.append(QPointF(842.93530819, 77.4856030548));
origPoints.append(QPointF(835.763264327, 94.4422192569));
origPoints.append(QPointF(827.801578624, 110.965405758));
origPoints.append(QPointF(819.073998555, 127.031415081));
origPoints.append(QPointF(809.604271597, 142.616499751));
origPoints.append(QPointF(799.416145227, 157.696912291));
origPoints.append(QPointF(788.533366919, 172.248905226));
origPoints.append(QPointF(776.97968415, 186.24873108));
origPoints.append(QPointF(764.778844396, 199.672642377));
origPoints.append(QPointF(758.417681078, 206.135728322));
origPoints.append(QPointF(869.1174803149606, -61.11722834645669));
origPoints.append(QPointF(869.1123162764883, -58.67229138738739));
origPoints.append(QPointF(869.050533341976, -53.79466425451659));
origPoints.append(QPointF(868.9273385272631, -48.93206721284792));
origPoints.append(QPointF(868.743102886662, -44.08487131669338));
origPoints.append(QPointF(868.4981974744846, -39.25344762036495));
origPoints.append(QPointF(868.1929933450426, -34.43816717817464));
origPoints.append(QPointF(867.8278615526483, -29.639401044434408));
origPoints.append(QPointF(867.4031731516135, -24.85752027345624));
origPoints.append(QPointF(866.9192991962501, -20.092895919552134));
origPoints.append(QPointF(866.3766107408703, -15.345899037034071));
origPoints.append(QPointF(865.775478839786, -10.616900680214039));
origPoints.append(QPointF(865.1162745473094, -5.90627190340402));
origPoints.append(QPointF(864.3993689177523, -1.214383760916003));
origPoints.append(QPointF(863.6251330054265, 3.4583926929380264));
origPoints.append(QPointF(862.7939378646442, 8.111686403846083));
origPoints.append(QPointF(861.9061545497175, 12.74512631749618));
origPoints.append(QPointF(860.9621541149579, 17.358341379576338));
origPoints.append(QPointF(859.9623076146779, 21.95096053577456));
origPoints.append(QPointF(858.9069861031894, 26.522612731778867));
origPoints.append(QPointF(857.796560634804, 31.07292691327727));
origPoints.append(QPointF(856.6314022638342, 35.60153202595778));
origPoints.append(QPointF(855.4118820445917, 40.10805701550843));
origPoints.append(QPointF(854.1383710313885, 44.59213082761722));
origPoints.append(QPointF(852.8112402785367, 49.05338240797216));
origPoints.append(QPointF(851.4308608403481, 53.49144070226127));
origPoints.append(QPointF(849.997603771135, 57.90593465617256));
origPoints.append(QPointF(848.5118401252091, 62.29649321539405));
origPoints.append(QPointF(846.9739409568825, 66.66274532561374));
origPoints.append(QPointF(845.384277320467, 71.00431993251965));
origPoints.append(QPointF(843.743220270275, 75.32084598179983));
origPoints.append(QPointF(842.0511408606181, 79.61195241914226));
origPoints.append(QPointF(840.3084101458085, 83.87726819023496));
origPoints.append(QPointF(838.5153991801578, 88.1164222407659));
origPoints.append(QPointF(836.6724790179786, 92.32904351642317));
origPoints.append(QPointF(834.7800207135825, 96.51476096289475));
origPoints.append(QPointF(832.8383953212815, 100.67320352586866));
origPoints.append(QPointF(830.8479738953877, 104.80400015103291));
origPoints.append(QPointF(828.8091274902131, 108.9067797840755));
origPoints.append(QPointF(826.7222271600695, 112.98117137068445));
origPoints.append(QPointF(824.5876439592689, 117.0268038565478));
origPoints.append(QPointF(822.4057489421236, 121.04330618735354));
origPoints.append(QPointF(820.1769131629453, 125.03030730878969));
origPoints.append(QPointF(817.9015076760461, 128.98743616654426));
origPoints.append(QPointF(815.5799035357379, 132.91432170630523));
origPoints.append(QPointF(813.2124717963329, 136.8105928737607));
origPoints.append(QPointF(810.7995835121426, 140.67587861459862));
origPoints.append(QPointF(808.3416097374795, 144.50980787450703));
origPoints.append(QPointF(805.8389215266553, 148.3120095991739));
origPoints.append(QPointF(803.2918899339824, 152.08211273428736));
origPoints.append(QPointF(800.7008860137721, 155.8197462255353));
origPoints.append(QPointF(798.0662808203368, 159.52453901860576));
origPoints.append(QPointF(795.3884454079885, 163.19612005918677));
origPoints.append(QPointF(792.667750831039, 166.83411829296637));
origPoints.append(QPointF(789.9045681438006, 170.43816266563252));
origPoints.append(QPointF(787.0992684005848, 174.00788212287327));
origPoints.append(QPointF(784.2522226557041, 177.54290561037666));
origPoints.append(QPointF(781.3638019634705, 181.0428620738306));
origPoints.append(QPointF(778.4343773781953, 184.50738045892322));
origPoints.append(QPointF(775.4643199541911, 187.9360897113425));
origPoints.append(QPointF(772.4540007457698, 191.32861877677647));
origPoints.append(QPointF(769.4037908072432, 194.6845966009131));
origPoints.append(QPointF(766.3140611929234, 198.0036521294404));
origPoints.append(QPointF(763.1851829571224, 201.28541430804643));
origPoints.append(QPointF(760.0175271541522, 204.52951208241916));
origPoints.append(QPointF(758.4176810783842, 206.13572832247544));
// Begin comparison
Comparison(points, origPoints);
@ -148,33 +270,100 @@ void TST_VSpline::GetSegmentPoints_TestPuzzle()
points << spl.GetSegmentPoints(begin, end, false);
QVector<QPointF> origPoints;
origPoints.append(QPointF(1168.85828031, 39.9998740157));
origPoints.append(QPointF(1158.40802126, 52.3497961203));
origPoints.append(QPointF(1138.64676795, 77.3443304348));
origPoints.append(QPointF(1120.21162184, 102.681357357));
origPoints.append(QPointF(1103.0570157, 128.348504087));
origPoints.append(QPointF(1087.13738226, 154.333397827));
origPoints.append(QPointF(1072.40715426, 180.623665779));
origPoints.append(QPointF(1058.82076446, 207.206935142));
origPoints.append(QPointF(1046.33264559, 234.070833119));
origPoints.append(QPointF(1034.8972304, 261.20298691));
origPoints.append(QPointF(1024.46895163, 288.591023717));
origPoints.append(QPointF(1015.00224202, 316.22257074));
origPoints.append(QPointF(1006.45153433, 344.085255182));
origPoints.append(QPointF(998.771261285, 372.166704242));
origPoints.append(QPointF(991.915855642, 400.454545123));
origPoints.append(QPointF(985.83975014, 428.936405026));
origPoints.append(QPointF(980.497377524, 457.599911151));
origPoints.append(QPointF(975.843170537, 486.432690699));
origPoints.append(QPointF(971.831561923, 515.422370873));
origPoints.append(QPointF(968.416984426, 544.556578873));
origPoints.append(QPointF(965.55387079, 573.8229419));
origPoints.append(QPointF(963.19665376, 603.209087156));
origPoints.append(QPointF(961.299766078, 632.702641841));
origPoints.append(QPointF(959.17457231, 677.107741373));
origPoints.append(QPointF(957.595965967, 736.590833735));
origPoints.append(QPointF(957.038466409, 796.280853437));
origPoints.append(QPointF(957.305645106, 885.992413851));
origPoints.append(QPointF(1168.8582803149607, 39.999874015748034));
origPoints.append(QPointF(1166.223927144099, 43.081713107423184));
origPoints.append(QPointF(1161.0274928341657, 49.26409940982961));
origPoints.append(QPointF(1155.9171441728415, 55.46876146261986));
origPoints.append(QPointF(1150.8921691717505, 61.695505940812126));
origPoints.append(QPointF(1145.9518558425152, 67.94413951942465));
origPoints.append(QPointF(1141.0954921967605, 74.21446887347568));
origPoints.append(QPointF(1136.3223662461087, 80.50630067798342));
origPoints.append(QPointF(1131.6317660021837, 86.8194416079661));
origPoints.append(QPointF(1127.0229794766096, 93.15369833844201));
origPoints.append(QPointF(1122.4952946810095, 99.50887754442931));
origPoints.append(QPointF(1118.0479996270067, 105.88478590094627));
origPoints.append(QPointF(1113.680382326225, 112.28123008301112));
origPoints.append(QPointF(1109.3917307902882, 118.6980167656421));
origPoints.append(QPointF(1105.1813330308196, 125.13495262385743));
origPoints.append(QPointF(1101.048477059443, 131.5918443326753));
origPoints.append(QPointF(1096.9924508877814, 138.06849856711403));
origPoints.append(QPointF(1093.0125425274584, 144.56472200219181));
origPoints.append(QPointF(1089.108039990098, 151.08032131292686));
origPoints.append(QPointF(1085.2782312873235, 157.61510317433738));
origPoints.append(QPointF(1081.5224044307583, 164.16887426144172));
origPoints.append(QPointF(1077.8398474320263, 170.741441249258));
origPoints.append(QPointF(1074.2298483027507, 177.3326108128045));
origPoints.append(QPointF(1070.691695054555, 183.94218962709942));
origPoints.append(QPointF(1067.2246756990635, 190.56998436716106));
origPoints.append(QPointF(1063.8280782478992, 197.21580170800758));
origPoints.append(QPointF(1060.5011907126852, 203.8794483246572));
origPoints.append(QPointF(1057.2433011050455, 210.56073089212825));
origPoints.append(QPointF(1054.0536974366037, 217.2594560854389));
origPoints.append(QPointF(1050.9316677189831, 223.9754305796074));
origPoints.append(QPointF(1047.8764999638074, 230.70846104965193));
origPoints.append(QPointF(1044.8874821827003, 237.45835417059072));
origPoints.append(QPointF(1041.9639023872846, 244.2249166174421));
origPoints.append(QPointF(1039.1050485891847, 251.00795506522425));
origPoints.append(QPointF(1036.3102088000242, 257.80727618895537));
origPoints.append(QPointF(1033.5786710314258, 264.6226866636538));
origPoints.append(QPointF(1030.909723295014, 271.4539931643376));
origPoints.append(QPointF(1028.3026536024117, 278.30100236602505));
origPoints.append(QPointF(1025.7567499652423, 285.1635209437345));
origPoints.append(QPointF(1023.2713003951301, 292.0413555724841));
origPoints.append(QPointF(1020.8455929036979, 298.9343129272922));
origPoints.append(QPointF(1018.4789155025696, 305.84219968317683));
origPoints.append(QPointF(1016.1705562033686, 312.7648225151563));
origPoints.append(QPointF(1013.9198030177188, 319.7019880982489));
origPoints.append(QPointF(1011.7259439572433, 326.6535031074728));
origPoints.append(QPointF(1009.5882670335659, 333.61917421784625));
origPoints.append(QPointF(1007.5060602583101, 340.59880810438744));
origPoints.append(QPointF(1005.4786116430994, 347.5922114421147));
origPoints.append(QPointF(1003.5052091995572, 354.59919090604626));
origPoints.append(QPointF(1001.5851409393073, 361.6195531712002));
origPoints.append(QPointF(999.7176948739731, 368.6531049125949));
origPoints.append(QPointF(997.902159015178, 375.69965280524866));
origPoints.append(QPointF(996.1378213745459, 382.75900352417943));
origPoints.append(QPointF(994.4239699637, 389.8309637444057));
origPoints.append(QPointF(992.759892794264, 396.91534014094555));
origPoints.append(QPointF(991.1448778778615, 404.0119393888174));
origPoints.append(QPointF(989.5782132261161, 411.12056816303925));
origPoints.append(QPointF(988.0591868506513, 418.2410331386294));
origPoints.append(QPointF(986.5870867630903, 425.3731409906063));
origPoints.append(QPointF(985.161200975057, 432.5166983939879));
origPoints.append(QPointF(983.7808174981748, 439.6715120237925));
origPoints.append(QPointF(982.4452243440672, 446.8373885550384));
origPoints.append(QPointF(981.1537095243581, 454.0141346627438));
origPoints.append(QPointF(979.9055610506706, 461.201557021927));
origPoints.append(QPointF(978.7000669346284, 468.3994623076061));
origPoints.append(QPointF(977.536515187855, 475.6076571947994));
origPoints.append(QPointF(976.4141938219741, 482.82594835852524));
origPoints.append(QPointF(975.3323908486091, 490.0541424738017));
origPoints.append(QPointF(974.2903942793837, 497.292046215647));
origPoints.append(QPointF(973.2874921259213, 504.5394662590794));
origPoints.append(QPointF(972.3229723998454, 511.7962092791172));
origPoints.append(QPointF(970.9420270804521, 522.6972765338926));
origPoints.append(QPointF(969.2347383321023, 537.2643805338191));
origPoints.append(QPointF(967.6681635025225, 551.8652965904953));
origPoints.append(QPointF(966.2366066847012, 566.4984781040671));
origPoints.append(QPointF(964.9343719716264, 581.1623784746802));
origPoints.append(QPointF(963.7557634562868, 595.8554511024805));
origPoints.append(QPointF(962.6950852316704, 610.5761493876139));
origPoints.append(QPointF(961.746641390766, 625.3229267302262));
origPoints.append(QPointF(960.9047360265615, 640.0942365304633));
origPoints.append(QPointF(960.1636732320455, 654.8885321884709));
origPoints.append(QPointF(959.5177571002063, 669.7042671043953));
origPoints.append(QPointF(958.9612917240322, 684.5398946783818));
origPoints.append(QPointF(958.4885811965113, 699.3938683105766));
origPoints.append(QPointF(958.0939296106322, 714.2646414011255));
origPoints.append(QPointF(957.7716410593832, 729.1506673501743));
origPoints.append(QPointF(957.5160196357529, 744.0503995578688));
origPoints.append(QPointF(957.3213694327292, 758.9622914243553));
origPoints.append(QPointF(957.1819945433006, 773.884796349779));
origPoints.append(QPointF(957.0921990604554, 788.8163677342864));
origPoints.append(QPointF(957.0335899720619, 811.2266912397164));
origPoints.append(QPointF(957.0831245617323, 841.1256735649813));
origPoints.append(QPointF(957.2284504515269, 871.0330829292052));
origPoints.append(QPointF(957.5286354562604, 915.885745295907));
origPoints.append(QPointF(957.69883966, 943.844812978));
// Begin comparison
@ -201,70 +390,134 @@ void TST_VSpline::GetSegmentPoints_NullSegment()
QVector<QPointF> origPoints;
origPoints.append(QPointF(182.31062201967654, 383.8061713596471));
origPoints.append(QPointF(173.5193148389493, 383.09473139115664));
origPoints.append(QPointF(156.35256886351988, 381.27664737553243));
origPoints.append(QPointF(139.68640422167817, 378.9987265205365));
origPoints.append(QPointF(123.52253121382145, 376.2769777761686));
origPoints.append(QPointF(107.862660140347, 373.127410092429));
origPoints.append(QPointF(92.70850130165212, 369.5660324193175));
origPoints.append(QPointF(78.06176499813408, 365.6088537068342));
origPoints.append(QPointF(63.924161530190176, 361.2718829049793));
origPoints.append(QPointF(50.29740119821767, 356.5711289637526));
origPoints.append(QPointF(37.18319430261387, 351.5226008331541));
origPoints.append(QPointF(24.583251143776067, 346.142307463184));
origPoints.append(QPointF(12.499282022101543, 340.4462578038422));
origPoints.append(QPointF(0.9329972379875793, 334.4504608051287));
origPoints.append(QPointF(-10.113892908168534, 328.17092541704363));
origPoints.append(QPointF(-20.63967811596951, 321.6236605895869));
origPoints.append(QPointF(-30.64264808501806, 314.8246752727586));
origPoints.append(QPointF(-40.121092514916896, 307.78997841655865));
origPoints.append(QPointF(-49.07330110526874, 300.5355789709872));
origPoints.append(QPointF(-57.49756355567631, 293.0774858860442));
origPoints.append(QPointF(-65.39216956574231, 285.4317081117297));
origPoints.append(QPointF(-72.75540883506945, 277.61425459804366));
origPoints.append(QPointF(-79.58557106326043, 269.64113429498616));
origPoints.append(QPointF(-85.88094594991799, 261.5283561525572));
origPoints.append(QPointF(-91.63982319464486, 253.29192912075672));
origPoints.append(QPointF(-96.86049249704371, 244.94786214958486));
origPoints.append(QPointF(-101.54124355671726, 236.51216418904164));
origPoints.append(QPointF(-105.68036607326823, 228.000844189127));
origPoints.append(QPointF(-109.27614974629935, 219.42991109984098));
origPoints.append(QPointF(-112.32688427541332, 210.81537387118362));
origPoints.append(QPointF(-114.83085936021286, 202.1732414531549));
origPoints.append(QPointF(-116.78636470030067, 193.51952279575488));
origPoints.append(QPointF(-118.19168999527946, 184.8702268489836));
origPoints.append(QPointF(-119.04512494475199, 176.24136256284103));
origPoints.append(QPointF(-119.34495924832092, 167.64893888732718));
origPoints.append(QPointF(-119.08948260558898, 159.10896477244216));
origPoints.append(QPointF(-118.27698471615886, 150.63744916818587));
origPoints.append(QPointF(-116.90575527963333, 142.2504010245584));
origPoints.append(QPointF(-114.97408399561508, 133.96382929155976));
origPoints.append(QPointF(-112.48026056370679, 125.79374291918995));
origPoints.append(QPointF(-109.42257468351121, 117.756150857449));
origPoints.append(QPointF(-105.79931605463103, 109.86706205633692));
origPoints.append(QPointF(-101.608774376669, 102.14248546585374));
origPoints.append(QPointF(-96.8492393492278, 94.59843003599951));
origPoints.append(QPointF(-91.51900067191015, 87.25090471677419));
origPoints.append(QPointF(-85.61634804431877, 80.11591845817783));
origPoints.append(QPointF(-79.13957116605636, 73.20948021021047));
origPoints.append(QPointF(-72.08695973672565, 66.54759892287208));
origPoints.append(QPointF(-64.45680345592936, 60.14628354616272));
origPoints.append(QPointF(-56.247392023270166, 54.0215430300824));
origPoints.append(QPointF(-47.45701513835082, 48.189386324631116));
origPoints.append(QPointF(-38.083962500774014, 42.66582237980891));
origPoints.append(QPointF(-28.126523810142473, 37.4668601456158));
origPoints.append(QPointF(-17.582988766058897, 32.608508572051804));
origPoints.append(QPointF(-6.451647068126014, 28.106776609116928));
origPoints.append(QPointF(5.269211584053471, 23.97767320681121));
origPoints.append(QPointF(17.581297490876842, 20.23720731513466));
origPoints.append(QPointF(30.486320952741384, 16.9013878840873));
origPoints.append(QPointF(43.98599227004439, 13.986223863669146));
origPoints.append(QPointF(58.082021743183134, 11.507724203880219));
origPoints.append(QPointF(72.77611967255493, 9.481897854720536));
origPoints.append(QPointF(88.069996358557, 7.92475376619012));
origPoints.append(QPointF(103.96536210158672, 6.852300888288988));
origPoints.append(QPointF(120.4639272020413, 6.280548171017158));
origPoints.append(QPointF(137.5674019603181, 6.225504564374653));
origPoints.append(QPointF(177.90459309841725, 383.4605315892429));
origPoints.append(QPointF(169.19639545863012, 382.66945046939884));
origPoints.append(QPointF(160.6130224709154, 381.76040846158674));
origPoints.append(QPointF(152.1546879228228, 380.73540668455666));
origPoints.append(QPointF(143.82160560190192, 379.5964462570587));
origPoints.append(QPointF(135.61398929570254, 378.34552829784275));
origPoints.append(QPointF(127.53205279177418, 376.98465392565885));
origPoints.append(QPointF(119.57600987766655, 375.51582425925693));
origPoints.append(QPointF(111.74607434092933, 373.9410404173871));
origPoints.append(QPointF(104.04245996911216, 372.2623035187994));
origPoints.append(QPointF(96.46538054976472, 370.4816146822436));
origPoints.append(QPointF(89.01504987043666, 368.6009750264699));
origPoints.append(QPointF(81.69168171867761, 366.62238567022825));
origPoints.append(QPointF(74.4954898820373, 364.54784773226874));
origPoints.append(QPointF(67.42668814806535, 362.3793623313413));
origPoints.append(QPointF(60.485490304311426, 360.1189305861958));
origPoints.append(QPointF(53.67211013832518, 357.7685536155825));
origPoints.append(QPointF(46.98676143765628, 355.33023253825127));
origPoints.append(QPointF(40.42965798985438, 352.805968472952));
origPoints.append(QPointF(34.00101358246915, 350.19776253843486));
origPoints.append(QPointF(27.70104200305024, 347.5076158534498));
origPoints.append(QPointF(21.529957039147334, 344.7375295367468));
origPoints.append(QPointF(15.48797247831007, 341.88950470707584));
origPoints.append(QPointF(9.575302108088117, 338.96554248318705));
origPoints.append(QPointF(3.7921597160311356, 335.96764398383027));
origPoints.append(QPointF(-1.8612409103112126, 332.8978103277557));
origPoints.append(QPointF(-7.38468598338927, 329.75804263371316));
origPoints.append(QPointF(-12.777961715653369, 326.55034202045266));
origPoints.append(QPointF(-18.04085431955386, 323.2767096067243));
origPoints.append(QPointF(-23.173150007541068, 319.93914651127807));
origPoints.append(QPointF(-28.174634992065343, 316.5396538528639));
origPoints.append(QPointF(-33.04509548557702, 313.08023275023186));
origPoints.append(QPointF(-37.784317700526444, 309.5628843221318));
origPoints.append(QPointF(-42.392087849363946, 305.98960968731404));
origPoints.append(QPointF(-46.86819214453986, 302.3624099645283));
origPoints.append(QPointF(-51.21241679850455, 298.6832862725247));
origPoints.append(QPointF(-55.424548023708326, 294.9542397300532));
origPoints.append(QPointF(-59.50437203260155, 291.1772714558638));
origPoints.append(QPointF(-63.45167503763454, 287.35438256870657));
origPoints.append(QPointF(-67.26624325125766, 283.48757418733135));
origPoints.append(QPointF(-70.94786288592123, 279.5788474304884));
origPoints.append(QPointF(-74.49632015407558, 275.6302034169275));
origPoints.append(QPointF(-77.91140126817108, 271.64364326539874));
origPoints.append(QPointF(-81.19289244065806, 267.62116809465215));
origPoints.append(QPointF(-84.34057988398683, 263.56477902343767));
origPoints.append(QPointF(-87.35424981060777, 259.4764771705053));
origPoints.append(QPointF(-90.2336884329712, 255.3582636546051));
origPoints.append(QPointF(-92.97868196352746, 251.212139594487));
origPoints.append(QPointF(-95.58901661472689, 247.0401061089011));
origPoints.append(QPointF(-98.06447859901981, 242.84416431659736));
origPoints.append(QPointF(-100.40485412885658, 238.62631533632572));
origPoints.append(QPointF(-102.60992941668755, 234.38856028683622));
origPoints.append(QPointF(-104.67949067496303, 230.1329002868789));
origPoints.append(QPointF(-106.61332411613338, 225.86133645520374));
origPoints.append(QPointF(-108.41121595264894, 221.57586991056075));
origPoints.append(QPointF(-110.07295239696006, 217.2785017716999));
origPoints.append(QPointF(-111.59831966151705, 212.97123315737122));
origPoints.append(QPointF(-112.98710395877025, 208.65606518632472));
origPoints.append(QPointF(-114.23909150117002, 204.33499897731036));
origPoints.append(QPointF(-115.3540685011667, 200.0100356490782));
origPoints.append(QPointF(-116.3318211712106, 195.68317632037815));
origPoints.append(QPointF(-117.17213572375209, 191.35642210996033));
origPoints.append(QPointF(-117.8747983712415, 187.03177413657468));
origPoints.append(QPointF(-118.43959532612914, 182.71123351897123));
origPoints.append(QPointF(-118.86631280086539, 178.39680137589994));
origPoints.append(QPointF(-119.15473700790058, 174.09047882611083));
origPoints.append(QPointF(-119.30465415968504, 169.7942669883539));
origPoints.append(QPointF(-119.31585046866913, 165.5101669813792));
origPoints.append(QPointF(-119.18811214730314, 161.2401799239367));
origPoints.append(QPointF(-118.92122540803749, 156.98630693477634));
origPoints.append(QPointF(-118.51497646332243, 152.7505491326482));
origPoints.append(QPointF(-117.96915152560837, 148.53490763630228));
origPoints.append(QPointF(-117.2835368073456, 144.34138356448852));
origPoints.append(QPointF(-116.45791852098446, 140.171978035957));
origPoints.append(QPointF(-115.49208287897534, 136.02869216945766));
origPoints.append(QPointF(-114.38581609376854, 131.91352708374055));
origPoints.append(QPointF(-113.13890437781438, 127.82848389755566));
origPoints.append(QPointF(-111.75113394356325, 123.77556372965296));
origPoints.append(QPointF(-110.22229100346546, 119.75676769878248));
origPoints.append(QPointF(-108.55216176997135, 115.77409692369423));
origPoints.append(QPointF(-106.74053245553128, 111.8295525231382));
origPoints.append(QPointF(-104.78718927259555, 107.9251356158644));
origPoints.append(QPointF(-102.69191843361452, 104.06284732062281));
origPoints.append(QPointF(-100.45450615103854, 100.24468875616346));
origPoints.append(QPointF(-98.07473863731795, 96.47266104123635));
origPoints.append(QPointF(-95.55240210490308, 92.74876529459146));
origPoints.append(QPointF(-92.88728276624425, 89.0750026349788));
origPoints.append(QPointF(-90.07916683379182, 85.45337418114838));
origPoints.append(QPointF(-87.12784051999613, 81.88588105185019));
origPoints.append(QPointF(-84.03309003730749, 78.37452436583426));
origPoints.append(QPointF(-80.79470159817629, 74.92130524185059));
origPoints.append(QPointF(-77.41246141505286, 71.52822479864915));
origPoints.append(QPointF(-73.88615570038749, 68.19728415497994));
origPoints.append(QPointF(-70.21557066663057, 64.93048442959301));
origPoints.append(QPointF(-66.40049252623243, 61.72982674123833));
origPoints.append(QPointF(-62.440707491643394, 58.5973122086659));
origPoints.append(QPointF(-58.336001775313804, 55.53494195062573));
origPoints.append(QPointF(-54.086161589694, 52.54471708586783));
origPoints.append(QPointF(-49.69097314723432, 49.628638733142196));
origPoints.append(QPointF(-45.15022266038511, 46.78870801119882));
origPoints.append(QPointF(-40.463696341596716, 44.026926038787714));
origPoints.append(QPointF(-35.63118040331946, 41.34529393465888));
origPoints.append(QPointF(-30.652461058003688, 38.745812817562324));
origPoints.append(QPointF(-25.52732451809974, 36.23048380624805));
origPoints.append(QPointF(-20.255556996057955, 33.80130801946605));
origPoints.append(QPointF(-14.836944704328669, 31.46028657596633));
origPoints.append(QPointF(-9.271273855362228, 29.209420594498894));
origPoints.append(QPointF(-3.558330661608968, 27.050711193813743));
origPoints.append(QPointF(2.3020986644807735, 24.98615949266088));
origPoints.append(QPointF(8.310227910456657, 23.01776660979031));
origPoints.append(QPointF(14.466270863868342, 21.147533663952032));
origPoints.append(QPointF(20.77044131226549, 19.37746177389605));
origPoints.append(QPointF(27.22295304319776, 17.709552058372367));
origPoints.append(QPointF(33.82401984421482, 16.145805636130987));
origPoints.append(QPointF(40.573855502866316, 14.688223625921907));
origPoints.append(QPointF(47.472673806701934, 13.338807146495132));
origPoints.append(QPointF(54.5206885432713, 12.099557316600663));
origPoints.append(QPointF(61.718113500124105, 10.972475254988508));
origPoints.append(QPointF(69.06516246480999, 9.959562080408663));
origPoints.append(QPointF(76.56204922487862, 9.062818911611132));
origPoints.append(QPointF(84.20898756787969, 8.28424686734592));
origPoints.append(QPointF(92.00619128136279, 7.625847066363029));
origPoints.append(QPointF(99.95387415287765, 7.08962062741246));
origPoints.append(QPointF(108.0522499699739, 6.6775686692442155));
origPoints.append(QPointF(116.30153252020119, 6.391692310608296));
origPoints.append(QPointF(124.70193559110919, 6.233992670254708));
origPoints.append(QPointF(133.2536729702476, 6.206470866933452));
origPoints.append(QPointF(141.95695844516604, 6.311128019394529));
origPoints.append(QPointF(146.3718263928647, 6.419281580065625));
// Begin comparison
@ -292,25 +545,80 @@ void TST_VSpline::GetSegmentPoints_RotateTool()
QVector<QPointF> origPoints;
origPoints.append(QPointF(237.32422843061005, 485.80074940371367));
origPoints.append(QPointF(224.47894722830574, 476.8115274500917));
origPoints.append(QPointF(200.4405599713662, 458.9162132315404));
origPoints.append(QPointF(178.3387458840754, 441.12004274890694));
origPoints.append(QPointF(158.12235273581754, 423.422336123843));
origPoints.append(QPointF(139.74022829597683, 405.8224134780004));
origPoints.append(QPointF(123.1412203339375, 388.3195949330309));
origPoints.append(QPointF(108.27417661908376, 370.91320061058616));
origPoints.append(QPointF(95.08794492079983, 353.60255063231807));
origPoints.append(QPointF(83.5313730084699, 336.38696511987837));
origPoints.append(QPointF(73.55330865147822, 319.2657641949186));
origPoints.append(QPointF(65.10259961920897, 302.2382679790908));
origPoints.append(QPointF(58.12809368104641, 285.3037965940465));
origPoints.append(QPointF(52.57863860637471, 268.4616701614375));
origPoints.append(QPointF(48.40308216457812, 251.71120880291573));
origPoints.append(QPointF(45.55027212504085, 235.05173264013274));
origPoints.append(QPointF(43.9690562571471, 218.48256179474038));
origPoints.append(QPointF(43.6082823302811, 202.00301638839034));
origPoints.append(QPointF(44.416798113827056, 185.61241654273442));
origPoints.append(QPointF(46.34345137716919, 169.31008237942433));
origPoints.append(QPointF(234.08145029385315, 483.5518788597857));
origPoints.append(QPointF(227.70035384747374, 479.05934931212175));
origPoints.append(QPointF(221.44388986541253, 474.573064051899));
origPoints.append(QPointF(215.31125909406614, 470.0930124560183));
origPoints.append(QPointF(209.3016622798313, 465.61918390138055));
origPoints.append(QPointF(203.41430016910454, 461.1515677648864));
origPoints.append(QPointF(197.64837350828248, 456.69015342343664));
origPoints.append(QPointF(192.00308304376176, 452.23493025393225));
origPoints.append(QPointF(186.4776295219391, 447.7858876332739));
origPoints.append(QPointF(181.071213689211, 443.34301493836244));
origPoints.append(QPointF(175.78303629197416, 438.90630154609863));
origPoints.append(QPointF(170.6122980766252, 434.4757368333833));
origPoints.append(QPointF(165.55819978956072, 430.05131017711733));
origPoints.append(QPointF(160.61994217717742, 425.6330109542015));
origPoints.append(QPointF(155.79672598587183, 421.22082854153655));
origPoints.append(QPointF(151.0877519620406, 416.8147523160234));
origPoints.append(QPointF(146.4922208520805, 412.4147716545626));
origPoints.append(QPointF(142.00933340238794, 408.0208759340553));
origPoints.append(QPointF(137.63829035935967, 403.6330545314022));
origPoints.append(QPointF(133.37829246939233, 399.25129682350405));
origPoints.append(QPointF(129.2285404788825, 394.87559218726165));
origPoints.append(QPointF(125.18823513422683, 390.50592999957587));
origPoints.append(QPointF(121.25657718182194, 386.1422996373475));
origPoints.append(QPointF(117.43276736806445, 381.78469047747734));
origPoints.append(QPointF(113.71600643935099, 377.43309189686613));
origPoints.append(QPointF(110.10549514207823, 373.0874932724148));
origPoints.append(QPointF(106.60043422264278, 368.7478839810241));
origPoints.append(QPointF(103.2000244274412, 364.4142533995948));
origPoints.append(QPointF(99.90346650287023, 360.08659090502783));
origPoints.append(QPointF(96.70996119532643, 355.76488587422386));
origPoints.append(QPointF(93.61870925120647, 351.4491276840837));
origPoints.append(QPointF(90.6289114169069, 347.1393057115083));
origPoints.append(QPointF(87.7397684388244, 342.8354093333984));
origPoints.append(QPointF(84.95048106335562, 338.5374279266548));
origPoints.append(QPointF(82.26025003689719, 334.2453508681782));
origPoints.append(QPointF(79.66827610584568, 329.95916753486955));
origPoints.append(QPointF(77.17376001659775, 325.67886730362966));
origPoints.append(QPointF(74.77590251555006, 321.4044395513592));
origPoints.append(QPointF(72.47390434909917, 317.13587365495914));
origPoints.append(QPointF(70.26696626364176, 312.87315899133023));
origPoints.append(QPointF(68.15428900557446, 308.6162849373733));
origPoints.append(QPointF(66.13507332129386, 304.36524086998907));
origPoints.append(QPointF(64.20851995719663, 300.12001616607847));
origPoints.append(QPointF(62.37382965967939, 295.88060020254215));
origPoints.append(QPointF(60.630203175138746, 291.64698235628106));
origPoints.append(QPointF(58.97684124997134, 287.419152004196));
origPoints.append(QPointF(57.412944630573804, 283.1970985231878));
origPoints.append(QPointF(55.93771406334275, 278.98081129015713));
origPoints.append(QPointF(54.55035029467483, 274.7702796820048));
origPoints.append(QPointF(53.250054070966655, 270.5654930756318));
origPoints.append(QPointF(52.036026138614865, 266.36644084793886));
origPoints.append(QPointF(50.907467244016075, 262.1731123758268));
origPoints.append(QPointF(49.86357813356693, 257.9854970361963));
origPoints.append(QPointF(48.90355955366405, 253.80358420594834));
origPoints.append(QPointF(48.02661225070406, 249.62736326198362));
origPoints.append(QPointF(47.2319369710836, 245.45682358120297));
origPoints.append(QPointF(46.51873446119927, 241.29195454050725));
origPoints.append(QPointF(45.88620546744774, 237.1327455167972));
origPoints.append(QPointF(45.333550736225604, 232.97918588697368));
origPoints.append(QPointF(44.859971013929496, 228.83126502793746));
origPoints.append(QPointF(44.46466704695606, 224.68897231658934));
origPoints.append(QPointF(44.14683958170191, 220.5522971298302));
origPoints.append(QPointF(43.905689364563685, 216.42122884456074));
origPoints.append(QPointF(43.740417141938, 212.2957568376819));
origPoints.append(QPointF(43.650223660221506, 208.17587048609442));
origPoints.append(QPointF(43.634309665810804, 204.06155916669906));
origPoints.append(QPointF(43.69187590510255, 199.95281225639673));
origPoints.append(QPointF(43.822123124493345, 195.8496191320881));
origPoints.append(QPointF(44.02425207037983, 191.75196917067416));
origPoints.append(QPointF(44.297463489158645, 187.65985174905558));
origPoints.append(QPointF(44.64095812722639, 183.5732562441332));
origPoints.append(QPointF(45.05393673097973, 179.49217203280784));
origPoints.append(QPointF(45.53560004681526, 175.41658849198035));
origPoints.append(QPointF(46.085148821129636, 171.34649499855146));
origPoints.append(QPointF(46.623829088412336, 167.78988631718659));
// Begin comparison