mirror of
https://github.com/UglyToad/PdfPig.git
synced 2025-09-19 02:37:56 +08:00
use MemberData in Line.Length tests
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
{
|
||||
using PdfPig.Core;
|
||||
using PdfPig.Geometry;
|
||||
using System.Collections.Generic;
|
||||
using Xunit;
|
||||
|
||||
public class PdfLineTests
|
||||
@@ -21,111 +22,117 @@
|
||||
Assert.Equal(0, origin.Point2.Y);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Length()
|
||||
public static IEnumerable<object[]> LengthData => new[]
|
||||
{
|
||||
Assert.Equal(578.0238169967487, new PdfLine(772.7935893651529, 299.87394515637465, 233.21554238153897, 92.58896203207878).Length, 6);
|
||||
Assert.Equal(732.2945881804645, new PdfLine(194.8448667191307, 319.9187761462183, 925.189355248612, 373.32562919904933).Length, 6);
|
||||
Assert.Equal(836.8198676151344, new PdfLine(854.5271180179672, 571.4252436090782, 20.526363588710296, 502.7941103906799).Length, 6);
|
||||
Assert.Equal(598.3011468750585, new PdfLine(670.0839162642875, 261.3083276757181, 972.8798288884752, 777.3305148441533).Length, 6);
|
||||
Assert.Equal(276.7760632587749, new PdfLine(957.852909406517, 949.260084067982, 682.9812789799355, 981.6726739006094).Length, 6);
|
||||
Assert.Equal(314.41965030454816, new PdfLine(147.86567208537681, 382.7888325277287, 272.5846931925505, 94.1629808240001).Length, 6);
|
||||
Assert.Equal(174.13822965911558, new PdfLine(147.82640833766558, 875.9676661144384, 290.3606045554035, 775.9270446780725).Length, 6);
|
||||
Assert.Equal(297.29917790336884, new PdfLine(638.6170220470308, 768.2362490341656, 783.2867033379487, 508.5104619101235).Length, 6);
|
||||
Assert.Equal(839.2831421489764, new PdfLine(465.6101221171739, 787.9959266813818, 900.0525086500069, 69.90400674416696).Length, 6);
|
||||
Assert.Equal(607.3221473016613, new PdfLine(673.1433266782943, 553.7033541157308, 107.5182083942644, 774.8558267884955).Length, 6);
|
||||
Assert.Equal(454.55607010141694, new PdfLine(386.2113257237346, 333.90288712225333, 591.6938420537859, 739.3633122548604).Length, 6);
|
||||
Assert.Equal(626.11440600493, new PdfLine(479.4067404011179, 781.3982869554078, 472.4226714313526, 155.32283448379735).Length, 6);
|
||||
Assert.Equal(615.792237887848, new PdfLine(868.1899797889077, 125.67193509355945, 280.9371277792105, 310.96674896971933).Length, 6);
|
||||
Assert.Equal(142.5850044391949, new PdfLine(470.1012782013631, 528.9274203113266, 472.256082185328, 671.4961416730472).Length, 6);
|
||||
Assert.Equal(487.4183136781511, new PdfLine(31.98887876729284, 555.9383587303098, 519.063658539301, 574.2351185227507).Length, 6);
|
||||
Assert.Equal(840.2681584074232, new PdfLine(840.272207349764, 81.7172212744205, 524.8912200782769, 860.5531545113664).Length, 6);
|
||||
Assert.Equal(818.356052074226, new PdfLine(119.5826241579242, 615.1292410442892, 901.9316823443093, 375.05304663636883).Length, 6);
|
||||
Assert.Equal(392.3489708735156, new PdfLine(489.55892955681145, 595.6045336298662, 490.9073801378142, 987.9511872750036).Length, 6);
|
||||
Assert.Equal(595.9236956932385, new PdfLine(174.13216497246796, 21.05642885679826, 663.999686747385, 360.40118305050714).Length, 6);
|
||||
Assert.Equal(648.6437173566884, new PdfLine(143.4958123304927, 27.0537943602297, 792.1223500942808, 31.774660262229972).Length, 6);
|
||||
Assert.Equal(193.5135366822075, new PdfLine(589.854666457571, 77.67384122398701, 412.2699278651426, 154.55784149917383).Length, 6);
|
||||
Assert.Equal(176.18452804214598, new PdfLine(402.3919544552986, 655.8678416433016, 568.7872692682821, 713.7780059473497).Length, 6);
|
||||
Assert.Equal(419.7063148472268, new PdfLine(607.6036840066815, 326.3708984367765, 273.4359245817611, 580.3104567642808).Length, 6);
|
||||
Assert.Equal(741.0841681950342, new PdfLine(73.7785282991219, 748.6670328340001, 266.73884757275266, 33.14480429379307).Length, 6);
|
||||
Assert.Equal(694.9308637190488, new PdfLine(904.9561547564438, 943.2478269070753, 728.9100150532171, 270.9854807616918).Length, 6);
|
||||
Assert.Equal(348.61640600324927, new PdfLine(550.1396395591563, 956.8674477659421, 744.1453993717004, 667.2208291180114).Length, 6);
|
||||
Assert.Equal(194.3852034492696, new PdfLine(663.0868792265696, 574.673661199057, 707.6220973512975, 385.4589110694838).Length, 6);
|
||||
Assert.Equal(273.11874669170936, new PdfLine(520.1418305187533, 516.9457554127794, 704.3396253844193, 315.2900533831166).Length, 6);
|
||||
Assert.Equal(829.728108753847, new PdfLine(165.24214199291708, 596.2797685006535, 937.1876756520194, 900.4981563735753).Length, 6);
|
||||
Assert.Equal(782.7060348711881, new PdfLine(17.175643631104464, 471.6532293854632, 655.4886161125887, 18.679404329721816).Length, 6);
|
||||
Assert.Equal(830.9426722957604, new PdfLine(90.6565559268615, 223.6378235497558, 840.088133504139, 582.5501180898741).Length, 6);
|
||||
Assert.Equal(395.00250441819514, new PdfLine(497.1902525443935, 118.45344200568675, 377.30799909828573, 494.82456710075763).Length, 6);
|
||||
Assert.Equal(578.8861067295652, new PdfLine(789.5022287448717, 549.3983044175613, 294.1068291117959, 848.8854036170072).Length, 6);
|
||||
Assert.Equal(1018.5247728778488, new PdfLine(9.632939021435805, 900.9420815844204, 995.5448229006015, 645.265586396247).Length, 6);
|
||||
Assert.Equal(261.5619031316215, new PdfLine(102.65598656650377, 814.8187504453743, 131.81357169794717, 554.8870971225473).Length, 6);
|
||||
Assert.Equal(108.49401361268126, new PdfLine(130.16122201931546, 122.34940926745108, 160.1257456780558, 226.6234631432521).Length, 6);
|
||||
Assert.Equal(332.92958441429414, new PdfLine(624.4803534254545, 835.4038007603154, 308.56356596547295, 730.3386229931815).Length, 6);
|
||||
Assert.Equal(313.6871247728144, new PdfLine(722.9405250548465, 877.4613798590146, 665.3511605499749, 569.105939913227).Length, 6);
|
||||
Assert.Equal(420.2790978069219, new PdfLine(465.3756579114451, 799.1386897491068, 67.53688693018323, 663.6439210031537).Length, 6);
|
||||
Assert.Equal(224.58265631699635, new PdfLine(396.2261088696275, 284.94189008652484, 397.2472372180608, 509.5222249675961).Length, 6);
|
||||
Assert.Equal(546.2969535991175, new PdfLine(102.78375092188985, 255.7553940937095, 133.5734017636524, 801.1839952072913).Length, 6);
|
||||
Assert.Equal(794.7078364823532, new PdfLine(111.94122935338835, 788.2291106884405, 508.0945016563786, 99.30013741899279).Length, 6);
|
||||
Assert.Equal(998.8189318369291, new PdfLine(628.3444948128207, 83.25407399875961, 38.35646117071645, 889.2028184949511).Length, 6);
|
||||
Assert.Equal(617.8507518957027, new PdfLine(77.25538035870305, 22.650767363475378, 288.5177679310035, 603.2605805903414).Length, 6);
|
||||
Assert.Equal(482.66131839887277, new PdfLine(955.9618825215007, 72.15467516243501, 944.4992863029239, 554.6798632785249).Length, 6);
|
||||
Assert.Equal(615.4888829566713, new PdfLine(175.146198074012, 42.09447096948937, 608.4188104182263, 479.2459417844361).Length, 6);
|
||||
Assert.Equal(286.98135517124325, new PdfLine(85.62005924289029, 985.3372525527625, 203.01524950706207, 723.4657811803311).Length, 6);
|
||||
Assert.Equal(173.53293381279474, new PdfLine(496.1865573157063, 116.78214835100276, 644.9528684575984, 206.12566399097275).Length, 6);
|
||||
Assert.Equal(434.9983015853231, new PdfLine(309.38158754418134, 540.7725293677845, 207.83557769372996, 963.7523518954882).Length, 6);
|
||||
Assert.Equal(802.4785492127834, new PdfLine(431.71527190726766, 927.74356440042, 22.81036259755065, 237.25924373190134).Length, 6);
|
||||
Assert.Equal(425.4191249809588, new PdfLine(796.4539729718109, 377.620962145811, 558.9437010302202, 730.5661457392357).Length, 6);
|
||||
Assert.Equal(206.44000756255193, new PdfLine(908.0660285601697, 421.9422452496654, 793.536713896605, 593.6993784497764).Length, 6);
|
||||
Assert.Equal(672.6343270485902, new PdfLine(93.86765378479423, 914.1712581378716, 764.6725799494799, 963.7463421751229).Length, 6);
|
||||
Assert.Equal(332.2471802658839, new PdfLine(652.4365302659129, 324.1216594893792, 399.37133961411575, 539.4033309688629).Length, 6);
|
||||
Assert.Equal(354.8834402095283, new PdfLine(782.1174340979168, 395.1549050103912, 429.77806425877804, 437.5721726770914).Length, 6);
|
||||
Assert.Equal(874.9270988885283, new PdfLine(847.7196315611067, 913.3652729563843, 801.924841591113, 39.63747462265788).Length, 6);
|
||||
Assert.Equal(200.00222948210663, new PdfLine(84.23216175716408, 201.15516601977046, 78.370199762001, 401.07147150629277).Length, 6);
|
||||
Assert.Equal(555.4855348140425, new PdfLine(156.21894875551823, 466.94074837313525, 672.5690131332882, 262.1315923162938).Length, 6);
|
||||
Assert.Equal(504.67386696619155, new PdfLine(281.3795209463261, 714.5244079956979, 483.22421175287656, 251.97232142401538).Length, 6);
|
||||
Assert.Equal(471.28478764279447, new PdfLine(541.9836245369752, 823.1949808736383, 124.57681900242889, 604.3779117109257).Length, 6);
|
||||
Assert.Equal(629.9344802246635, new PdfLine(725.1703955054331, 766.087125111111, 266.71083392776865, 334.07754214571816).Length, 6);
|
||||
Assert.Equal(292.87445361844755, new PdfLine(702.9749087231916, 291.8611419226987, 661.2923953901591, 581.7542492304541).Length, 6);
|
||||
Assert.Equal(176.71264203102157, new PdfLine(504.4594141560583, 194.80715729877573, 679.6758800916137, 171.8605253315718).Length, 6);
|
||||
Assert.Equal(509.0936334402613, new PdfLine(338.7644380016143, 665.2418501556981, 744.305576700243, 972.9961554585269).Length, 6);
|
||||
Assert.Equal(255.3072596182049, new PdfLine(798.2400393699398, 712.5969771963856, 914.1879018257719, 485.1373324114679).Length, 6);
|
||||
Assert.Equal(345.33696236486287, new PdfLine(842.5227485309422, 694.7947514432409, 524.017234159065, 828.2558127686201).Length, 6);
|
||||
Assert.Equal(844.3114397457932, new PdfLine(854.8032787312055, 84.72840198197706, 959.8906670383329, 922.4744542582032).Length, 6);
|
||||
Assert.Equal(261.7020895346001, new PdfLine(289.3758465823646, 429.9895329919011, 409.8233195515163, 197.6527302203185).Length, 6);
|
||||
Assert.Equal(420.95290185364973, new PdfLine(174.46153260893738, 969.1944624043416, 497.03706849473093, 698.7386079160323).Length, 6);
|
||||
Assert.Equal(816.7966080629856, new PdfLine(493.8853111490309, 821.3864245626643, 375.63069058390084, 13.195516634224692).Length, 6);
|
||||
Assert.Equal(499.7883400835412, new PdfLine(303.6925554060339, 989.7772689097685, 562.8246292140069, 562.4144801606302).Length, 6);
|
||||
Assert.Equal(271.67203756842264, new PdfLine(548.6759858516891, 680.7956555439721, 820.3140550883649, 676.4996879056648).Length, 6);
|
||||
Assert.Equal(574.9956519860169, new PdfLine(215.14603778829832, 795.6290747221913, 618.7275259767575, 386.0659145204792).Length, 6);
|
||||
Assert.Equal(468.1514755259495, new PdfLine(308.66815831290614, 505.71622208405574, 68.5429186260651, 103.83853757985139).Length, 6);
|
||||
Assert.Equal(194.8029179374746, new PdfLine(344.32825537199807, 757.6694627845026, 364.65886036244075, 563.9303512512939).Length, 6);
|
||||
Assert.Equal(369.70795467168074, new PdfLine(247.07072749014225, 525.3553467911364, 35.383794612098505, 222.25039104774348).Length, 6);
|
||||
Assert.Equal(257.51788770996, new PdfLine(422.4996085489343, 181.13157079175346, 180.74056893286726, 269.83348314158104).Length, 6);
|
||||
Assert.Equal(812.0298650772706, new PdfLine(152.4340119885752, 800.8632949326653, 937.3290234991165, 592.6991225031195).Length, 6);
|
||||
Assert.Equal(733.9524283377598, new PdfLine(808.0963889252962, 655.4329788754956, 203.15307065024845, 239.82529278527332).Length, 6);
|
||||
Assert.Equal(668.9932161696333, new PdfLine(310.0616983396838, 831.3719641509196, 262.14239943737203, 164.09716013558685).Length, 6);
|
||||
Assert.Equal(404.2455962075436, new PdfLine(388.2333868212858, 329.0023354190755, 26.016360491071033, 508.4830527390397).Length, 6);
|
||||
Assert.Equal(584.3119738083733, new PdfLine(401.97475918597394, 842.8388999158244, 135.67820681318398, 322.7363822039766).Length, 6);
|
||||
Assert.Equal(43.13166410765147, new PdfLine(284.27024011096034, 921.4275603760951, 242.9204840904382, 909.1581624390094).Length, 6);
|
||||
Assert.Equal(311.1072938750192, new PdfLine(607.4771013518919, 531.3669010398204, 324.66544812600694, 661.0022245511202).Length, 6);
|
||||
Assert.Equal(825.5401618185322, new PdfLine(776.1605680000215, 170.6836737542553, 595.8633696252181, 976.2949193520095).Length, 6);
|
||||
Assert.Equal(256.49335572522824, new PdfLine(525.5392532332307, 914.294163251886, 272.99634075153676, 959.1374334989579).Length, 6);
|
||||
Assert.Equal(523.4534310145216, new PdfLine(746.8609782139025, 620.4345380443198, 276.4878534067551, 850.113918703608).Length, 6);
|
||||
Assert.Equal(450.27948266944475, new PdfLine(635.6967014966066, 839.6786299421856, 434.18473904587006, 437.00687590135925).Length, 6);
|
||||
Assert.Equal(353.86322783943876, new PdfLine(580.4476281486512, 323.7261115921669, 888.9047468607108, 150.3093017587458).Length, 6);
|
||||
Assert.Equal(373.5680565932186, new PdfLine(687.6117906871925, 182.85418698039524, 731.575985861892, 553.8262107901094).Length, 6);
|
||||
Assert.Equal(602.3144965980068, new PdfLine(739.9965216015366, 164.05285107616163, 954.0596577820996, 727.0446152616177).Length, 6);
|
||||
Assert.Equal(577.6509862708537, new PdfLine(78.29728590071838, 772.6059529810002, 271.16062719547017, 228.10214810511687).Length, 6);
|
||||
Assert.Equal(870.8674265571132, new PdfLine(671.1912139589124, 378.5165174837426, 50.69352689765605, 989.575184871613).Length, 6);
|
||||
Assert.Equal(750.2395936893962, new PdfLine(983.0621291942329, 317.7681790880521, 329.28371189757166, 685.7807182987465).Length, 6);
|
||||
Assert.Equal(823.4380073065946, new PdfLine(786.6006014947625, 878.7158536740357, 170.13072221151072, 332.8083158862265).Length, 6);
|
||||
Assert.Equal(412.61059058569464, new PdfLine(600.3667413490577, 514.1089485852575, 731.5877076160489, 122.92030166994516).Length, 6);
|
||||
Assert.Equal(620.0359289489824, new PdfLine(505.86925166248074, 388.2624502842045, 670.7525439617368, 985.9731270402631).Length, 6);
|
||||
Assert.Equal(765.1634994203943, new PdfLine(622.1148121263606, 84.16274688333215, 68.03381061781889, 611.8647694420438).Length, 6);
|
||||
Assert.Equal(639.0761770184668, new PdfLine(973.3652080117488, 309.6533063561663, 762.0218813408244, 912.7721655408261).Length, 6);
|
||||
Assert.Equal(323.78727039408955, new PdfLine(864.5922509054712, 640.4447192700089, 975.4472466741516, 944.6639927922188).Length, 6);
|
||||
}
|
||||
new object[] { new double[] { 190.8371004778927, 195.5590603079521, 835.5537688584745, 90.50342829217284 }, new double[] { 653.2199233841478 } },
|
||||
new object[] { new double[] { 186.1201280032434, 466.0112253745279, 103.02506253603583, 732.7907411987937 }, new double[] { 279.42100845933044 } },
|
||||
new object[] { new double[] { 695.6713774488983, 473.35313064465043, 891.8249539312077, 471.3261715675039 }, new double[] { 196.1640490250485 } },
|
||||
new object[] { new double[] { 245.61796166092697, 417.5772082647122, 310.7968924983532, 390.2894655810555 }, new double[] { 70.66055424265687 } },
|
||||
new object[] { new double[] { 904.8925597320072, 170.0378813647443, 729.7456407212313, 563.0690257348186 }, new double[] { 430.290510799178 } },
|
||||
new object[] { new double[] { 103.69012119895538, 193.34571872543916, 111.74935749953441, 900.9441932245975 }, new double[] { 707.6443685943418 } },
|
||||
new object[] { new double[] { 825.8681573033824, 588.4135011435201, 418.2595797323617, 699.9881960129857 }, new double[] { 422.60343709521004 } },
|
||||
new object[] { new double[] { 157.37650392040703, 891.7310493860206, 484.7166518460643, 402.2060091124232 }, new double[] { 588.8856743875319 } },
|
||||
new object[] { new double[] { 299.14222909979225, 638.96873623182, 14.75546276665618, 838.5092651161324 }, new double[] { 347.40790942759037 } },
|
||||
new object[] { new double[] { 370.7722431151812, 265.1506662936315, 2.667747143338728, 168.02703094991122 }, new double[] { 380.7018787674473 } },
|
||||
new object[] { new double[] { 814.6714758631268, 270.2656407106455, 830.0276584983447, 712.2448634553435 }, new double[] { 442.2459108721454 } },
|
||||
new object[] { new double[] { 481.44218635329383, 10.01987995763043, 107.80183570357438, 187.20422133755756 }, new double[] { 413.5231583162953 } },
|
||||
new object[] { new double[] { 551.9344826964319, 381.09882406841, 101.64836559722168, 115.76575575650038 }, new double[] { 522.6463664774645 } },
|
||||
new object[] { new double[] { 121.82216264459255, 113.63262078808812, 453.36582182928163, 200.43826377511022 }, new double[] { 342.71915265996387 } },
|
||||
new object[] { new double[] { 565.5586097130778, 364.9452683882004, 684.0498690329932, 690.1818117835786 }, new double[] { 346.1487941550471 } },
|
||||
new object[] { new double[] { 697.9367978619123, 883.9046526611218, 774.41712851374, 278.1286157995213 }, new double[] { 610.5848407980336 } },
|
||||
new object[] { new double[] { 238.79356839355458, 822.0611612623475, 867.1510615215013, 170.66556045357305 }, new double[] { 905.0687089514596 } },
|
||||
new object[] { new double[] { 512.7921689861437, 194.80962312949833, 934.0235366700005, 304.0278809274004 }, new double[] { 435.16030719405177 } },
|
||||
new object[] { new double[] { 378.61916213668155, 157.3050943441656, 969.9309333193792, 234.8867585351374 }, new double[] { 596.3795145357188 } },
|
||||
new object[] { new double[] { 737.1758351156666, 46.35675591104116, 768.1674878711214, 498.87124837530706 }, new double[] { 453.5745235688473 } },
|
||||
new object[] { new double[] { 101.36428548561626, 59.44990596498012, 276.69473812807024, 137.64935970681046 }, new double[] { 191.97896288220866 } },
|
||||
new object[] { new double[] { 743.5258306065436, 921.564801193344, 192.97031512030216, 408.8678852251345 }, new double[] { 752.3094464883677 } },
|
||||
new object[] { new double[] { 471.0577672814765, 27.088862708520843, 784.6648111116209, 134.9885699569563 }, new double[] { 331.65000341350844 } },
|
||||
new object[] { new double[] { 929.1244848744249, 663.4442136188952, 331.9145289570389, 94.80387100429132 }, new double[] { 824.6281408584722 } },
|
||||
new object[] { new double[] { 505.80057478119835, 698.1765765874327, 233.38766948344724, 84.98722663992497 }, new double[] { 670.9768772929575 } },
|
||||
new object[] { new double[] { 806.369302725176, 230.566437922603, 602.430243108747, 792.1865701899809 }, new double[] { 597.5017263617407 } },
|
||||
new object[] { new double[] { 264.1606892577477, 995.8172494421481, 794.0334091199198, 198.62980429025077 }, new double[] { 957.2214592046843 } },
|
||||
new object[] { new double[] { 472.04192378853895, 162.67346194887645, 564.1517831158918, 14.043503321895855 }, new double[] { 174.85734410302214 } },
|
||||
new object[] { new double[] { 612.659731471288, 612.9370506293178, 797.6205762310365, 17.340954361677706 }, new double[] { 623.6547313886841 } },
|
||||
new object[] { new double[] { 641.6670982629627, 903.3231885534251, 214.28748308783275, 482.85643579571826 }, new double[] { 599.5378433775909 } },
|
||||
new object[] { new double[] { 709.5781899278792, 192.4269693358448, 602.5254664666547, 548.1811408212083 }, new double[] { 371.51220185843533 } },
|
||||
new object[] { new double[] { 222.50066070753272, 493.35475220654155, 821.0200479330013, 137.34330664318728 }, new double[] { 696.3975920814629 } },
|
||||
new object[] { new double[] { 485.99726695618784, 850.8173850458037, 791.9771001040855, 308.63594537965855 }, new double[] { 622.5627452808825 } },
|
||||
new object[] { new double[] { 299.4805833576227, 282.2495959995641, 977.9264025437416, 234.87623995357555 }, new double[] { 680.0977609389578 } },
|
||||
new object[] { new double[] { 618.9772189353536, 454.84016878739385, 590.423864770772, 803.1933349207312 }, new double[] { 349.5214190706609 } },
|
||||
new object[] { new double[] { 274.5180110294834, 192.66459338152663, 798.3177911789427, 28.490631069587934 }, new double[] { 548.9255865650861 } },
|
||||
new object[] { new double[] { 704.4996092428436, 767.1897571734477, 411.6465294270052, 581.1388872031387 }, new double[] { 346.9551160803521 } },
|
||||
new object[] { new double[] { 389.7431457194177, 709.1476391506876, 499.13513770357787, 963.7268373170796 }, new double[] { 277.08694673207833 } },
|
||||
new object[] { new double[] { 320.03803277377887, 160.2486130669861, 517.3040340006013, 200.74401200369783 }, new double[] { 201.37962303834055 } },
|
||||
new object[] { new double[] { 739.2695984980817, 622.3527391356477, 4.065170618754221, 797.1529250703437 }, new double[] { 755.6987864064448 } },
|
||||
new object[] { new double[] { 860.2958333508416, 333.5974936543332, 136.96530096286241, 95.00987753984968 }, new double[] { 761.6633834233266 } },
|
||||
new object[] { new double[] { 282.15081529831656, 866.7886695252895, 156.7057946463838, 906.0479845603302 }, new double[] { 131.44484403499595 } },
|
||||
new object[] { new double[] { 179.51017318735396, 196.10086192847643, 180.56669634209433, 523.0188790687166 }, new double[] { 326.9197243545927 } },
|
||||
new object[] { new double[] { 86.74308100085571, 683.0151475437317, 308.0705994959031, 486.3235615192121 }, new double[] { 296.09702878620135 } },
|
||||
new object[] { new double[] { 240.18220283297785, 492.5911405930761, 936.1933362976389, 762.1937366884123 }, new double[] { 746.4027449896652 } },
|
||||
new object[] { new double[] { 702.0804791819841, 819.9799731078089, 780.0695986494812, 483.9762626961529 }, new double[] { 344.9359305229241 } },
|
||||
new object[] { new double[] { 246.34282694670284, 54.58854476863384, 979.2801420594898, 73.00838507308593 }, new double[] { 733.1687380143688 } },
|
||||
new object[] { new double[] { 227.3856855531745, 505.5842483079985, 573.4095211687335, 284.8833891099237 }, new double[] { 410.41608650840163 } },
|
||||
new object[] { new double[] { 954.8592611427414, 287.6085707479722, 674.852769572892, 453.6053257067626 }, new double[] { 325.5127616209614 } },
|
||||
new object[] { new double[] { 640.469141584807, 710.4327102718037, 879.194433659361, 992.2177047203062 }, new double[] { 369.3136176374001 } },
|
||||
new object[] { new double[] { 880.5998080157741, 610.6931993086068, 395.1760263198596, 34.07353773225496 }, new double[] { 753.7416546485867 } },
|
||||
new object[] { new double[] { 961.9326903213472, 151.83245734410832, 696.0947897205162, 815.95317451048 }, new double[] { 715.3503451913847 } },
|
||||
new object[] { new double[] { 3.9155467688531953, 546.2132751275869, 830.7813781223891, 246.18213110470188 }, new double[] { 879.6168429740618 } },
|
||||
new object[] { new double[] { 444.27319450891775, 476.81031830207996, 991.4111726026024, 191.1808286420854 }, new double[] { 617.2067501541718 } },
|
||||
new object[] { new double[] { 969.0765570919632, 577.138809775923, 474.36598397698936, 241.1621349225992 }, new double[] { 598.0124389987569 } },
|
||||
new object[] { new double[] { 635.9692020912202, 290.25881884054616, 0.31074712311085495, 648.2140501777134 }, new double[] { 729.5160169688453 } },
|
||||
new object[] { new double[] { 222.53569185763, 629.2774387978521, 153.98871292117389, 943.8303536935576 }, new double[] { 321.9351248166312 } },
|
||||
new object[] { new double[] { 481.5920876489339, 682.7603288254961, 740.5384245491173, 409.66097176520435 }, new double[] { 376.3462026123925 } },
|
||||
new object[] { new double[] { 689.2587908005099, 624.3534297021754, 738.5826055579923, 63.19313204361565 }, new double[] { 563.3238130688901 } },
|
||||
new object[] { new double[] { 391.2948976479508, 426.4913714964327, 98.2965898932392, 102.97919909317011 }, new double[] { 436.47237488780775 } },
|
||||
new object[] { new double[] { 272.4261298230215, 632.3818950634542, 448.0360178188617, 446.7872791972879 }, new double[] { 255.5077184752378 } },
|
||||
new object[] { new double[] { 639.4775608981882, 510.8129821281046, 672.819698855375, 16.107654192704324 }, new double[] { 495.82765115635493 } },
|
||||
new object[] { new double[] { 555.2713222174989, 620.2366193858473, 69.59371657908686, 644.5422920786804 }, new double[] { 486.28541243153904 } },
|
||||
new object[] { new double[] { 368.3203329252472, 338.3532939109004, 367.6980529669451, 857.5734223911275 }, new double[] { 519.2205013781428 } },
|
||||
new object[] { new double[] { 83.55589164996024, 837.0224269335133, 42.15500568585606, 482.2949465077161 }, new double[] { 357.135294710348 } },
|
||||
new object[] { new double[] { 558.5402675219982, 182.94999465379425, 270.09194546817173, 606.6569704515929 }, new double[] { 512.571981125953 } },
|
||||
new object[] { new double[] { 166.83078932985129, 671.1399465888945, 50.8449008448667, 29.777972103999907 }, new double[] { 651.7652250947529 } },
|
||||
new object[] { new double[] { 261.387026674993, 358.4967960065069, 536.4045942380387, 278.1298688111906 }, new double[] { 286.5196423547811 } },
|
||||
new object[] { new double[] { 374.62458475227953, 967.5325872758127, 299.75874172702646, 16.553397039215657 }, new double[] { 953.9215453667748 } },
|
||||
new object[] { new double[] { 589.1367883498552, 975.1255761233041, 191.12961067443834, 315.36273606201826 }, new double[] { 770.5171760622113 } },
|
||||
new object[] { new double[] { 943.0156575766946, 403.70697682180844, 514.2409660515976, 32.89430939891413 }, new double[] { 566.8772092911516 } },
|
||||
new object[] { new double[] { 998.2752186080078, 2.5096192356099944, 554.3874096707293, 480.41835511738594 }, new double[] { 652.252364315573 } },
|
||||
new object[] { new double[] { 849.2755177371154, 825.4003090335679, 647.4340814514295, 821.7265401348636 }, new double[] { 201.87486713256226 } },
|
||||
new object[] { new double[] { 180.22219935431826, 437.2105889203756, 623.2243804707304, 166.6490965066021 }, new double[] { 519.0900246114029 } },
|
||||
new object[] { new double[] { 666.3729082168118, 219.7312638919139, 759.3260890650042, 700.5985723464253 }, new double[] { 489.76898857531086 } },
|
||||
new object[] { new double[] { 457.2382866577055, 826.9383730065374, 177.24350181710037, 565.8131907147441 }, new double[] { 382.8621688870017 } },
|
||||
new object[] { new double[] { 403.22893472891053, 185.68424293512587, 230.57271512401834, 238.38084925272773 }, new double[] { 180.51898095669904 } },
|
||||
new object[] { new double[] { 251.02320270998558, 367.52402970990903, 469.67191166145204, 622.6472801823553 }, new double[] { 335.99870663109647 } },
|
||||
new object[] { new double[] { 457.96968836727405, 241.26763693176633, 775.6178440268818, 510.4350522539501 }, new double[] { 416.35495465428943 } },
|
||||
new object[] { new double[] { 166.69177076833296, 984.2463387788379, 136.29637813839923, 67.71293599054162 }, new double[] { 917.0372720450468 } },
|
||||
new object[] { new double[] { 259.1265915823515, 95.6956800986336, 646.0319384933817, 575.6226645143806 }, new double[] { 616.4622112009279 } },
|
||||
new object[] { new double[] { 489.51563418877953, 530.3793652036015, 539.5577872453925, 453.4419047446674 }, new double[] { 91.78011715187303 } },
|
||||
new object[] { new double[] { 812.5685935300381, 117.59769673154341, 841.3763834263098, 445.7597505675051 }, new double[] { 329.42407674082403 } },
|
||||
new object[] { new double[] { 827.883352640388, 363.2137956224355, 220.27495864931802, 551.0817346592632 }, new double[] { 635.9892475241642 } },
|
||||
new object[] { new double[] { 339.842878036833, 388.8579683364443, 609.4560051342442, 950.6885278933158 }, new double[] { 623.1731829557752 } },
|
||||
new object[] { new double[] { 175.6850673470375, 219.84401353034977, 538.1206775115039, 549.2723246601904 }, new double[] { 489.7780963754383 } },
|
||||
new object[] { new double[] { 164.15354505065315, 411.7306226046701, 488.0109398829, 514.0520711501401 }, new double[] { 339.6369988973126 } },
|
||||
new object[] { new double[] { 331.1166009097187, 185.21418897661113, 655.273447162589, 354.30902412637045 }, new double[] { 365.6100713149616 } },
|
||||
new object[] { new double[] { 87.600376581919, 133.86233189432474, 190.92652286643397, 214.45645238771917 }, new double[] { 131.0408515086527 } },
|
||||
new object[] { new double[] { 286.07906477049437, 616.1414889737961, 251.96826043260012, 388.9637187640246 }, new double[] { 229.72437017012768 } },
|
||||
new object[] { new double[] { 205.5323041182433, 991.3184322293126, 983.3221438365764, 714.5627385247764 }, new double[] { 825.5608692076855 } },
|
||||
new object[] { new double[] { 636.0677843486854, 237.48631325628077, 27.985130501105182, 437.8993104743765 }, new double[] { 640.2576695083445 } },
|
||||
new object[] { new double[] { 557.7530637854924, 723.3535617757199, 458.7229060702702, 469.6406583982108 }, new double[] { 272.3549329043758 } },
|
||||
new object[] { new double[] { 41.53671623761524, 602.5627768446343, 403.9672142330918, 374.7713518027152 }, new double[] { 428.0710212101228 } },
|
||||
new object[] { new double[] { 915.7357033058988, 749.0338822692759, 540.0533940330042, 104.21370727875833 }, new double[] { 746.2775995401554 } },
|
||||
new object[] { new double[] { 372.30445887367244, 417.6507975175771, 214.47828053385098, 977.6487887122577 }, new double[] { 581.8134174384694 } },
|
||||
new object[] { new double[] { 747.130347501469, 370.2077845504025, 835.8876206450757, 847.1181654465094 }, new double[] { 485.0993351287533 } },
|
||||
new object[] { new double[] { 263.5335653669142, 10.074111838772826, 113.28436564981669, 384.21878617870664 }, new double[] { 403.1861348714305 } },
|
||||
new object[] { new double[] { 198.99073365358387, 797.6403198818113, 932.752537092194, 606.1630086633792 }, new double[] { 758.3336633019279 } },
|
||||
new object[] { new double[] { 671.8429943842269, 490.1956406172996, 967.6187397246001, 453.85424440639497 }, new double[] { 297.99998088961553 } }
|
||||
};
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(LengthData))]
|
||||
public void Length(double[] points, double[] expected)
|
||||
{
|
||||
Assert.Equal(expected[0], new PdfLine(points[0], points[1], points[2], points[3]).Length, 6);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IntersectsWith()
|
||||
{
|
||||
|
@@ -1,5 +1,6 @@
|
||||
namespace UglyToad.PdfPig.Tests.Geometry
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
using UglyToad.PdfPig.Core;
|
||||
using UglyToad.PdfPig.Geometry;
|
||||
using Xunit;
|
||||
@@ -27,109 +28,115 @@
|
||||
Assert.Equal(0, origin.To.Y);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Length()
|
||||
public static IEnumerable<object[]> LengthData => new[]
|
||||
{
|
||||
Assert.Equal(578.0238169967487, CreateLine(772.7935893651529, 299.87394515637465, 233.21554238153897, 92.58896203207878).Length, 6);
|
||||
Assert.Equal(732.2945881804645, CreateLine(194.8448667191307, 319.9187761462183, 925.189355248612, 373.32562919904933).Length, 6);
|
||||
Assert.Equal(836.8198676151344, CreateLine(854.5271180179672, 571.4252436090782, 20.526363588710296, 502.7941103906799).Length, 6);
|
||||
Assert.Equal(598.3011468750585, CreateLine(670.0839162642875, 261.3083276757181, 972.8798288884752, 777.3305148441533).Length, 6);
|
||||
Assert.Equal(276.7760632587749, CreateLine(957.852909406517, 949.260084067982, 682.9812789799355, 981.6726739006094).Length, 6);
|
||||
Assert.Equal(314.41965030454816, CreateLine(147.86567208537681, 382.7888325277287, 272.5846931925505, 94.1629808240001).Length, 6);
|
||||
Assert.Equal(174.13822965911558, CreateLine(147.82640833766558, 875.9676661144384, 290.3606045554035, 775.9270446780725).Length, 6);
|
||||
Assert.Equal(297.29917790336884, CreateLine(638.6170220470308, 768.2362490341656, 783.2867033379487, 508.5104619101235).Length, 6);
|
||||
Assert.Equal(839.2831421489764, CreateLine(465.6101221171739, 787.9959266813818, 900.0525086500069, 69.90400674416696).Length, 6);
|
||||
Assert.Equal(607.3221473016613, CreateLine(673.1433266782943, 553.7033541157308, 107.5182083942644, 774.8558267884955).Length, 6);
|
||||
Assert.Equal(454.55607010141694, CreateLine(386.2113257237346, 333.90288712225333, 591.6938420537859, 739.3633122548604).Length, 6);
|
||||
Assert.Equal(626.11440600493, CreateLine(479.4067404011179, 781.3982869554078, 472.4226714313526, 155.32283448379735).Length, 6);
|
||||
Assert.Equal(615.792237887848, CreateLine(868.1899797889077, 125.67193509355945, 280.9371277792105, 310.96674896971933).Length, 6);
|
||||
Assert.Equal(142.5850044391949, CreateLine(470.1012782013631, 528.9274203113266, 472.256082185328, 671.4961416730472).Length, 6);
|
||||
Assert.Equal(487.4183136781511, CreateLine(31.98887876729284, 555.9383587303098, 519.063658539301, 574.2351185227507).Length, 6);
|
||||
Assert.Equal(840.2681584074232, CreateLine(840.272207349764, 81.7172212744205, 524.8912200782769, 860.5531545113664).Length, 6);
|
||||
Assert.Equal(818.356052074226, CreateLine(119.5826241579242, 615.1292410442892, 901.9316823443093, 375.05304663636883).Length, 6);
|
||||
Assert.Equal(392.3489708735156, CreateLine(489.55892955681145, 595.6045336298662, 490.9073801378142, 987.9511872750036).Length, 6);
|
||||
Assert.Equal(595.9236956932385, CreateLine(174.13216497246796, 21.05642885679826, 663.999686747385, 360.40118305050714).Length, 6);
|
||||
Assert.Equal(648.6437173566884, CreateLine(143.4958123304927, 27.0537943602297, 792.1223500942808, 31.774660262229972).Length, 6);
|
||||
Assert.Equal(193.5135366822075, CreateLine(589.854666457571, 77.67384122398701, 412.2699278651426, 154.55784149917383).Length, 6);
|
||||
Assert.Equal(176.18452804214598, CreateLine(402.3919544552986, 655.8678416433016, 568.7872692682821, 713.7780059473497).Length, 6);
|
||||
Assert.Equal(419.7063148472268, CreateLine(607.6036840066815, 326.3708984367765, 273.4359245817611, 580.3104567642808).Length, 6);
|
||||
Assert.Equal(741.0841681950342, CreateLine(73.7785282991219, 748.6670328340001, 266.73884757275266, 33.14480429379307).Length, 6);
|
||||
Assert.Equal(694.9308637190488, CreateLine(904.9561547564438, 943.2478269070753, 728.9100150532171, 270.9854807616918).Length, 6);
|
||||
Assert.Equal(348.61640600324927, CreateLine(550.1396395591563, 956.8674477659421, 744.1453993717004, 667.2208291180114).Length, 6);
|
||||
Assert.Equal(194.3852034492696, CreateLine(663.0868792265696, 574.673661199057, 707.6220973512975, 385.4589110694838).Length, 6);
|
||||
Assert.Equal(273.11874669170936, CreateLine(520.1418305187533, 516.9457554127794, 704.3396253844193, 315.2900533831166).Length, 6);
|
||||
Assert.Equal(829.728108753847, CreateLine(165.24214199291708, 596.2797685006535, 937.1876756520194, 900.4981563735753).Length, 6);
|
||||
Assert.Equal(782.7060348711881, CreateLine(17.175643631104464, 471.6532293854632, 655.4886161125887, 18.679404329721816).Length, 6);
|
||||
Assert.Equal(830.9426722957604, CreateLine(90.6565559268615, 223.6378235497558, 840.088133504139, 582.5501180898741).Length, 6);
|
||||
Assert.Equal(395.00250441819514, CreateLine(497.1902525443935, 118.45344200568675, 377.30799909828573, 494.82456710075763).Length, 6);
|
||||
Assert.Equal(578.8861067295652, CreateLine(789.5022287448717, 549.3983044175613, 294.1068291117959, 848.8854036170072).Length, 6);
|
||||
Assert.Equal(1018.5247728778488, CreateLine(9.632939021435805, 900.9420815844204, 995.5448229006015, 645.265586396247).Length, 6);
|
||||
Assert.Equal(261.5619031316215, CreateLine(102.65598656650377, 814.8187504453743, 131.81357169794717, 554.8870971225473).Length, 6);
|
||||
Assert.Equal(108.49401361268126, CreateLine(130.16122201931546, 122.34940926745108, 160.1257456780558, 226.6234631432521).Length, 6);
|
||||
Assert.Equal(332.92958441429414, CreateLine(624.4803534254545, 835.4038007603154, 308.56356596547295, 730.3386229931815).Length, 6);
|
||||
Assert.Equal(313.6871247728144, CreateLine(722.9405250548465, 877.4613798590146, 665.3511605499749, 569.105939913227).Length, 6);
|
||||
Assert.Equal(420.2790978069219, CreateLine(465.3756579114451, 799.1386897491068, 67.53688693018323, 663.6439210031537).Length, 6);
|
||||
Assert.Equal(224.58265631699635, CreateLine(396.2261088696275, 284.94189008652484, 397.2472372180608, 509.5222249675961).Length, 6);
|
||||
Assert.Equal(546.2969535991175, CreateLine(102.78375092188985, 255.7553940937095, 133.5734017636524, 801.1839952072913).Length, 6);
|
||||
Assert.Equal(794.7078364823532, CreateLine(111.94122935338835, 788.2291106884405, 508.0945016563786, 99.30013741899279).Length, 6);
|
||||
Assert.Equal(998.8189318369291, CreateLine(628.3444948128207, 83.25407399875961, 38.35646117071645, 889.2028184949511).Length, 6);
|
||||
Assert.Equal(617.8507518957027, CreateLine(77.25538035870305, 22.650767363475378, 288.5177679310035, 603.2605805903414).Length, 6);
|
||||
Assert.Equal(482.66131839887277, CreateLine(955.9618825215007, 72.15467516243501, 944.4992863029239, 554.6798632785249).Length, 6);
|
||||
Assert.Equal(615.4888829566713, CreateLine(175.146198074012, 42.09447096948937, 608.4188104182263, 479.2459417844361).Length, 6);
|
||||
Assert.Equal(286.98135517124325, CreateLine(85.62005924289029, 985.3372525527625, 203.01524950706207, 723.4657811803311).Length, 6);
|
||||
Assert.Equal(173.53293381279474, CreateLine(496.1865573157063, 116.78214835100276, 644.9528684575984, 206.12566399097275).Length, 6);
|
||||
Assert.Equal(434.9983015853231, CreateLine(309.38158754418134, 540.7725293677845, 207.83557769372996, 963.7523518954882).Length, 6);
|
||||
Assert.Equal(802.4785492127834, CreateLine(431.71527190726766, 927.74356440042, 22.81036259755065, 237.25924373190134).Length, 6);
|
||||
Assert.Equal(425.4191249809588, CreateLine(796.4539729718109, 377.620962145811, 558.9437010302202, 730.5661457392357).Length, 6);
|
||||
Assert.Equal(206.44000756255193, CreateLine(908.0660285601697, 421.9422452496654, 793.536713896605, 593.6993784497764).Length, 6);
|
||||
Assert.Equal(672.6343270485902, CreateLine(93.86765378479423, 914.1712581378716, 764.6725799494799, 963.7463421751229).Length, 6);
|
||||
Assert.Equal(332.2471802658839, CreateLine(652.4365302659129, 324.1216594893792, 399.37133961411575, 539.4033309688629).Length, 6);
|
||||
Assert.Equal(354.8834402095283, CreateLine(782.1174340979168, 395.1549050103912, 429.77806425877804, 437.5721726770914).Length, 6);
|
||||
Assert.Equal(874.9270988885283, CreateLine(847.7196315611067, 913.3652729563843, 801.924841591113, 39.63747462265788).Length, 6);
|
||||
Assert.Equal(200.00222948210663, CreateLine(84.23216175716408, 201.15516601977046, 78.370199762001, 401.07147150629277).Length, 6);
|
||||
Assert.Equal(555.4855348140425, CreateLine(156.21894875551823, 466.94074837313525, 672.5690131332882, 262.1315923162938).Length, 6);
|
||||
Assert.Equal(504.67386696619155, CreateLine(281.3795209463261, 714.5244079956979, 483.22421175287656, 251.97232142401538).Length, 6);
|
||||
Assert.Equal(471.28478764279447, CreateLine(541.9836245369752, 823.1949808736383, 124.57681900242889, 604.3779117109257).Length, 6);
|
||||
Assert.Equal(629.9344802246635, CreateLine(725.1703955054331, 766.087125111111, 266.71083392776865, 334.07754214571816).Length, 6);
|
||||
Assert.Equal(292.87445361844755, CreateLine(702.9749087231916, 291.8611419226987, 661.2923953901591, 581.7542492304541).Length, 6);
|
||||
Assert.Equal(176.71264203102157, CreateLine(504.4594141560583, 194.80715729877573, 679.6758800916137, 171.8605253315718).Length, 6);
|
||||
Assert.Equal(509.0936334402613, CreateLine(338.7644380016143, 665.2418501556981, 744.305576700243, 972.9961554585269).Length, 6);
|
||||
Assert.Equal(255.3072596182049, CreateLine(798.2400393699398, 712.5969771963856, 914.1879018257719, 485.1373324114679).Length, 6);
|
||||
Assert.Equal(345.33696236486287, CreateLine(842.5227485309422, 694.7947514432409, 524.017234159065, 828.2558127686201).Length, 6);
|
||||
Assert.Equal(844.3114397457932, CreateLine(854.8032787312055, 84.72840198197706, 959.8906670383329, 922.4744542582032).Length, 6);
|
||||
Assert.Equal(261.7020895346001, CreateLine(289.3758465823646, 429.9895329919011, 409.8233195515163, 197.6527302203185).Length, 6);
|
||||
Assert.Equal(420.95290185364973, CreateLine(174.46153260893738, 969.1944624043416, 497.03706849473093, 698.7386079160323).Length, 6);
|
||||
Assert.Equal(816.7966080629856, CreateLine(493.8853111490309, 821.3864245626643, 375.63069058390084, 13.195516634224692).Length, 6);
|
||||
Assert.Equal(499.7883400835412, CreateLine(303.6925554060339, 989.7772689097685, 562.8246292140069, 562.4144801606302).Length, 6);
|
||||
Assert.Equal(271.67203756842264, CreateLine(548.6759858516891, 680.7956555439721, 820.3140550883649, 676.4996879056648).Length, 6);
|
||||
Assert.Equal(574.9956519860169, CreateLine(215.14603778829832, 795.6290747221913, 618.7275259767575, 386.0659145204792).Length, 6);
|
||||
Assert.Equal(468.1514755259495, CreateLine(308.66815831290614, 505.71622208405574, 68.5429186260651, 103.83853757985139).Length, 6);
|
||||
Assert.Equal(194.8029179374746, CreateLine(344.32825537199807, 757.6694627845026, 364.65886036244075, 563.9303512512939).Length, 6);
|
||||
Assert.Equal(369.70795467168074, CreateLine(247.07072749014225, 525.3553467911364, 35.383794612098505, 222.25039104774348).Length, 6);
|
||||
Assert.Equal(257.51788770996, CreateLine(422.4996085489343, 181.13157079175346, 180.74056893286726, 269.83348314158104).Length, 6);
|
||||
Assert.Equal(812.0298650772706, CreateLine(152.4340119885752, 800.8632949326653, 937.3290234991165, 592.6991225031195).Length, 6);
|
||||
Assert.Equal(733.9524283377598, CreateLine(808.0963889252962, 655.4329788754956, 203.15307065024845, 239.82529278527332).Length, 6);
|
||||
Assert.Equal(668.9932161696333, CreateLine(310.0616983396838, 831.3719641509196, 262.14239943737203, 164.09716013558685).Length, 6);
|
||||
Assert.Equal(404.2455962075436, CreateLine(388.2333868212858, 329.0023354190755, 26.016360491071033, 508.4830527390397).Length, 6);
|
||||
Assert.Equal(584.3119738083733, CreateLine(401.97475918597394, 842.8388999158244, 135.67820681318398, 322.7363822039766).Length, 6);
|
||||
Assert.Equal(43.13166410765147, CreateLine(284.27024011096034, 921.4275603760951, 242.9204840904382, 909.1581624390094).Length, 6);
|
||||
Assert.Equal(311.1072938750192, CreateLine(607.4771013518919, 531.3669010398204, 324.66544812600694, 661.0022245511202).Length, 6);
|
||||
Assert.Equal(825.5401618185322, CreateLine(776.1605680000215, 170.6836737542553, 595.8633696252181, 976.2949193520095).Length, 6);
|
||||
Assert.Equal(256.49335572522824, CreateLine(525.5392532332307, 914.294163251886, 272.99634075153676, 959.1374334989579).Length, 6);
|
||||
Assert.Equal(523.4534310145216, CreateLine(746.8609782139025, 620.4345380443198, 276.4878534067551, 850.113918703608).Length, 6);
|
||||
Assert.Equal(450.27948266944475, CreateLine(635.6967014966066, 839.6786299421856, 434.18473904587006, 437.00687590135925).Length, 6);
|
||||
Assert.Equal(353.86322783943876, CreateLine(580.4476281486512, 323.7261115921669, 888.9047468607108, 150.3093017587458).Length, 6);
|
||||
Assert.Equal(373.5680565932186, CreateLine(687.6117906871925, 182.85418698039524, 731.575985861892, 553.8262107901094).Length, 6);
|
||||
Assert.Equal(602.3144965980068, CreateLine(739.9965216015366, 164.05285107616163, 954.0596577820996, 727.0446152616177).Length, 6);
|
||||
Assert.Equal(577.6509862708537, CreateLine(78.29728590071838, 772.6059529810002, 271.16062719547017, 228.10214810511687).Length, 6);
|
||||
Assert.Equal(870.8674265571132, CreateLine(671.1912139589124, 378.5165174837426, 50.69352689765605, 989.575184871613).Length, 6);
|
||||
Assert.Equal(750.2395936893962, CreateLine(983.0621291942329, 317.7681790880521, 329.28371189757166, 685.7807182987465).Length, 6);
|
||||
Assert.Equal(823.4380073065946, CreateLine(786.6006014947625, 878.7158536740357, 170.13072221151072, 332.8083158862265).Length, 6);
|
||||
Assert.Equal(412.61059058569464, CreateLine(600.3667413490577, 514.1089485852575, 731.5877076160489, 122.92030166994516).Length, 6);
|
||||
Assert.Equal(620.0359289489824, CreateLine(505.86925166248074, 388.2624502842045, 670.7525439617368, 985.9731270402631).Length, 6);
|
||||
Assert.Equal(765.1634994203943, CreateLine(622.1148121263606, 84.16274688333215, 68.03381061781889, 611.8647694420438).Length, 6);
|
||||
Assert.Equal(639.0761770184668, CreateLine(973.3652080117488, 309.6533063561663, 762.0218813408244, 912.7721655408261).Length, 6);
|
||||
Assert.Equal(323.78727039408955, CreateLine(864.5922509054712, 640.4447192700089, 975.4472466741516, 944.6639927922188).Length, 6);
|
||||
new object[] { new double[] { 203.6393562261919, 653.7711056659496, 668.6732537652692, 510.7806556412724 }, new double[] { 486.52111429890147 } },
|
||||
new object[] { new double[] { 603.4080511773012, 100.91875443776243, 841.0241553459529, 263.5210088232177 }, new double[] { 287.92517446642245 } },
|
||||
new object[] { new double[] { 193.57849856660292, 78.77263865356721, 5.514073201039582, 895.0136641292303 }, new double[] { 837.6261933330652 } },
|
||||
new object[] { new double[] { 71.5576705442107, 844.2486542429386, 566.1874997552131, 377.52355492168044 }, new double[] { 680.0668983870218 } },
|
||||
new object[] { new double[] { 824.3632522411584, 256.8869640839516, 173.996520907298, 409.78519946161396 }, new double[] { 668.0978637950378 } },
|
||||
new object[] { new double[] { 513.4750642922347, 257.58627840515425, 559.5729589144768, 822.4354830219256 }, new double[] { 566.7271299706788 } },
|
||||
new object[] { new double[] { 806.6483836188821, 902.9149785105487, 415.4188983399237, 531.8732638772599 }, new double[] { 539.1961277213048 } },
|
||||
new object[] { new double[] { 628.6113267467194, 49.29172600767251, 364.2612541347349, 596.1705234769407 }, new double[] { 607.4186200730056 } },
|
||||
new object[] { new double[] { 610.6797096041602, 340.233431535001, 842.8839616962393, 145.26525722166807 }, new double[] { 303.20191899906575 } },
|
||||
new object[] { new double[] { 985.1500668259025, 936.6878417215714, 514.8490099035929, 752.5097862250847 }, new double[] { 505.07884559611927 } },
|
||||
new object[] { new double[] { 584.217901435419, 681.1288908887499, 892.8498098515248, 250.46452847922052 }, new double[] { 529.8353026575088 } },
|
||||
new object[] { new double[] { 965.5098993464029, 476.8649000884236, 207.59232627734704, 142.43046303613028 }, new double[] { 828.4234667447391 } },
|
||||
new object[] { new double[] { 628.0238433497099, 471.5356322600011, 699.7206498422923, 412.76364554792247 }, new double[] { 92.70694948772483 } },
|
||||
new object[] { new double[] { 573.5846200070941, 127.91003433047432, 181.53938421221895, 977.2835720832618 }, new double[] { 935.4864368573951 } },
|
||||
new object[] { new double[] { 136.02743182264342, 797.2921794611028, 922.6805030294474, 19.6793235302557 }, new double[] { 1106.1215159954288 } },
|
||||
new object[] { new double[] { 975.3750009890167, 101.20350442890013, 439.32720715798445, 671.4421682823613 }, new double[] { 782.6361677206705 } },
|
||||
new object[] { new double[] { 106.14773114074838, 285.5825785947973, 366.3014724372201, 693.6654671835446 }, new double[] { 483.9541435606141 } },
|
||||
new object[] { new double[] { 398.8247676552843, 612.0454025570381, 48.86968454536944, 49.184590813528885 }, new double[] { 662.7826593922246 } },
|
||||
new object[] { new double[] { 254.39825561927177, 618.9372799841276, 295.8610934545222, 765.0446090402525 }, new double[] { 151.87665562971492 } },
|
||||
new object[] { new double[] { 691.075455944406, 523.2084167886, 117.99900372861794, 147.59742228890627 }, new double[] { 685.2008751258885 } },
|
||||
new object[] { new double[] { 62.90844168416609, 717.828999050165, 663.850625220381, 593.6739708696773 }, new double[] { 613.6334239395467 } },
|
||||
new object[] { new double[] { 475.6774573353646, 260.39103906070636, 1.167329293767283, 910.005226218077 }, new double[] { 804.4615924767226 } },
|
||||
new object[] { new double[] { 970.9230200015627, 635.6587670781581, 928.9648112833321, 526.4933240530959 }, new double[] { 116.95120875690303 } },
|
||||
new object[] { new double[] { 75.41742779823701, 69.31501232813187, 716.6812681054872, 387.16590103006433 }, new double[] { 715.7153766227262 } },
|
||||
new object[] { new double[] { 895.1022288146066, 823.2204461297727, 1.2060858794223916, 103.34156568020735 }, new double[] { 1147.7264120302011 } },
|
||||
new object[] { new double[] { 959.0892022414018, 921.9868122845503, 926.90057447649, 725.6090256356241 }, new double[] { 198.9983488537511 } },
|
||||
new object[] { new double[] { 86.85046547648389, 573.0573610984234, 171.99415974902644, 164.37912217889584 }, new double[] { 417.45341253934265 } },
|
||||
new object[] { new double[] { 537.9350107951734, 756.0791641221463, 941.5587800119547, 432.83666726086443 }, new double[] { 517.105268638676 } },
|
||||
new object[] { new double[] { 400.9957877973476, 454.3683644831762, 581.9409134743072, 751.7027210220722 }, new double[] { 348.0644453038115 } },
|
||||
new object[] { new double[] { 262.5526967061944, 194.79449757290024, 351.78114981214026, 638.9616534168371 }, new double[] { 453.0410347575284 } },
|
||||
new object[] { new double[] { 163.90270965409837, 82.57844382603308, 858.7766030140083, 728.63148721353 }, new double[] { 948.8067572184583 } },
|
||||
new object[] { new double[] { 282.35443910183676, 135.92508955184846, 204.5993962679128, 476.0785090361194 }, new double[] { 348.92720655309716 } },
|
||||
new object[] { new double[] { 928.2674389489563, 561.3135982429999, 311.7799070641978, 991.1388829814965 }, new double[] { 751.5361949832428 } },
|
||||
new object[] { new double[] { 271.4744617345959, 882.4420089059386, 794.7305967174647, 394.83288251089897 }, new double[] { 715.2339777589876 } },
|
||||
new object[] { new double[] { 427.682233047728, 247.31796885592817, 937.3359700176242, 941.4763612194208 }, new double[] { 861.1636344482091 } },
|
||||
new object[] { new double[] { 970.4125903474886, 271.48171428601154, 996.3839093374331, 917.6658948940459 }, new double[] { 646.7058873074794 } },
|
||||
new object[] { new double[] { 17.877842886854346, 488.489724196333, 973.3995430334635, 737.2331732460705 }, new double[] { 987.3677242528368 } },
|
||||
new object[] { new double[] { 604.3340173536551, 432.97018658955864, 725.7032617991929, 144.65660436481042 }, new double[] { 312.81818232408955 } },
|
||||
new object[] { new double[] { 133.39878172734387, 493.7719607806673, 304.7961403066075, 61.93319025110433 }, new double[] { 464.6092748325556 } },
|
||||
new object[] { new double[] { 703.9914096465704, 910.2385544989897, 604.1123055438115, 717.9486657374232 }, new double[] { 216.68234066555905 } },
|
||||
new object[] { new double[] { 746.3622327400728, 436.97131098230454, 430.0361399391416, 111.10588187907422 }, new double[] { 454.1480759304566 } },
|
||||
new object[] { new double[] { 958.3928927203634, 213.7833284029088, 926.5089401690861, 509.84126051384703 }, new double[] { 297.76985340376046 } },
|
||||
new object[] { new double[] { 90.34634399362895, 123.34602438424014, 759.0509558050063, 709.0293817634885 }, new double[] { 888.9267984310255 } },
|
||||
new object[] { new double[] { 391.85817959632374, 782.742773334919, 751.7973154560902, 625.5736338083373 }, new double[] { 392.75732958533257 } },
|
||||
new object[] { new double[] { 733.8015914781228, 986.3885490153228, 649.1573706684677, 945.1283068044685 }, new double[] { 94.16502378150822 } },
|
||||
new object[] { new double[] { 168.98641955995308, 376.4036161060361, 310.1985482890408, 456.9776720218224 }, new double[] { 162.58242151881208 } },
|
||||
new object[] { new double[] { 798.6465761343123, 134.08793342691038, 763.1198116642857, 109.51130850655177 }, new double[] { 43.19909126572845 } },
|
||||
new object[] { new double[] { 906.5994352097326, 38.60538044929118, 693.0897070548071, 827.846607333167 }, new double[] { 817.6112268248007 } },
|
||||
new object[] { new double[] { 977.2164079206794, 27.26517002236928, 862.4641217897342, 577.0862486263294 }, new double[] { 561.6683235233231 } },
|
||||
new object[] { new double[] { 171.74089139517056, 291.16738257984565, 507.2707339346226, 658.3741896124226 }, new double[] { 497.414429189192 } },
|
||||
new object[] { new double[] { 943.2448450716314, 861.7444480434415, 848.4694325362001, 972.1455084152979 }, new double[] { 145.50179707650167 } },
|
||||
new object[] { new double[] { 248.53144830633468, 438.34508313172074, 796.8631839712402, 10.355320810936263 }, new double[] { 695.5881892245508 } },
|
||||
new object[] { new double[] { 302.1530183641946, 942.692173652902, 687.3967956302066, 808.4481394024577 }, new double[] { 407.9635138759582 } },
|
||||
new object[] { new double[] { 51.34574806939229, 559.3752667042155, 418.3663443095391, 653.352987189104 }, new double[] { 378.8613598824888 } },
|
||||
new object[] { new double[] { 528.0941220282368, 770.734710522943, 113.71356625536966, 932.1167052383686 }, new double[] { 444.6969678567192 } },
|
||||
new object[] { new double[] { 956.7041400918374, 642.5453204701912, 860.9158507465811, 779.1904626700094 }, new double[] { 166.87507681645897 } },
|
||||
new object[] { new double[] { 213.37831460681244, 868.3885326959949, 169.20898036917143, 103.62265635178657 }, new double[] { 766.0403225075827 } },
|
||||
new object[] { new double[] { 715.8881469039312, 485.3691476259638, 398.4362707095754, 1.4647587715365118 }, new double[] { 578.7392774401037 } },
|
||||
new object[] { new double[] { 311.0799034795112, 379.869429723655, 84.66930409764772, 837.2733590416237 }, new double[] { 510.37252479730137 } },
|
||||
new object[] { new double[] { 315.2298751711895, 310.3069273210918, 243.1599252393827, 379.5932667928296 }, new double[] { 99.97336905679448 } },
|
||||
new object[] { new double[] { 6.556161615975831, 740.6013675997763, 575.2917622931905, 293.3316665120933 }, new double[] { 723.5401640467081 } },
|
||||
new object[] { new double[] { 459.82009106910425, 570.584712691188, 465.8376490924, 531.2898976191844 }, new double[] { 39.75290550521668 } },
|
||||
new object[] { new double[] { 72.60398188783346, 582.7276243062277, 503.85120288341045, 227.39063736402554 }, new double[] { 558.7830884212323 } },
|
||||
new object[] { new double[] { 114.884375612891, 125.25555035663083, 923.8123345829763, 990.0895491336473 }, new double[] { 1184.1884513218968 } },
|
||||
new object[] { new double[] { 573.0405805853932, 295.9776764119988, 130.9314138174904, 749.9798552159747 }, new double[] { 633.7022121619638 } },
|
||||
new object[] { new double[] { 265.4563468795599, 991.9860405989386, 39.987840268431384, 72.3783187391206 }, new double[] { 946.8444484590153 } },
|
||||
new object[] { new double[] { 364.9213533110334, 695.8201441756818, 426.4792165201988, 285.6878213094658 }, new double[] { 414.7262865825077 } },
|
||||
new object[] { new double[] { 971.1843312242235, 881.2931537019231, 863.5329640816301, 133.3296787541679 }, new double[] { 755.6706800608256 } },
|
||||
new object[] { new double[] { 412.15047192078515, 27.904066635185632, 722.6689294747406, 613.1747287708191 }, new double[] { 662.5431762823994 } },
|
||||
new object[] { new double[] { 280.9608818253528, 563.7753243456169, 56.538498522971324, 25.1922949588671 }, new double[] { 583.4698669773184 } },
|
||||
new object[] { new double[] { 575.1803484469157, 668.9581325690161, 650.6107368403026, 98.61403634384136 }, new double[] { 575.3104653941979 } },
|
||||
new object[] { new double[] { 205.36827323762162, 349.53921834144273, 945.4240167992361, 27.751361948006313 }, new double[] { 806.9881833712418 } },
|
||||
new object[] { new double[] { 899.7983767792504, 568.2556748349472, 737.1256661178463, 160.87679359768381 }, new double[] { 438.65700002627705 } },
|
||||
new object[] { new double[] { 545.987669155604, 921.2270760121767, 661.1961184519588, 412.56533968427976 }, new double[] { 521.5455385614775 } },
|
||||
new object[] { new double[] { 859.7501861347986, 550.607415036509, 504.19348413152, 987.863633565226 }, new double[] { 563.5721506439804 } },
|
||||
new object[] { new double[] { 105.38194002008639, 195.4761524643246, 626.9605959849612, 746.4884744777166 }, new double[] { 758.7218682552357 } },
|
||||
new object[] { new double[] { 767.0814418705742, 653.3711994828556, 859.8807290223717, 34.91820363419418 }, new double[] { 625.3765391906433 } },
|
||||
new object[] { new double[] { 564.2287510306862, 561.0754236280711, 496.53723344980983, 173.76147316750524 }, new double[] { 393.1847374629028 } },
|
||||
new object[] { new double[] { 743.0507579408845, 461.0127716849919, 216.61039425628147, 587.9548348246492 }, new double[] { 541.5290794689884 } },
|
||||
new object[] { new double[] { 772.6599011768819, 792.4175477433819, 849.9996664267471, 462.9226309158545 }, new double[] { 338.4499069346651 } },
|
||||
new object[] { new double[] { 611.7278952164681, 76.25318222146826, 832.4599948782932, 998.4507051943632 }, new double[] { 948.2462397491809 } },
|
||||
new object[] { new double[] { 723.5423318520674, 111.73938830605357, 226.39458731765737, 435.35104374215786 }, new double[] { 593.1950635581409 } },
|
||||
new object[] { new double[] { 711.5197315056917, 671.1224546803052, 157.62629705205677, 211.13144707637198 }, new double[] { 719.9928220526402 } },
|
||||
new object[] { new double[] { 747.833281342343, 874.0538149112479, 843.9971743200878, 177.6266618598019 }, new double[] { 703.0350445176806 } },
|
||||
new object[] { new double[] { 896.6167879610257, 801.5829254511037, 24.779055794734273, 954.9524609495887 }, new double[] { 885.2249689473762 } },
|
||||
new object[] { new double[] { 274.13402384946596, 3.4413088002945846, 281.89022485538607, 551.1156675179184 }, new double[] { 547.7292778835222 } },
|
||||
new object[] { new double[] { 536.1023986747776, 60.7040132568859, 979.1682645680364, 944.5878138875964 }, new double[] { 988.7152949849278 } },
|
||||
new object[] { new double[] { 829.9847463180587, 439.1550609111461, 545.1985047658595, 881.3488540346133 }, new double[] { 525.9644037901683 } },
|
||||
new object[] { new double[] { 276.97697963080003, 189.09718815391784, 516.4008601281319, 804.8674588085569 }, new double[] { 660.6790603420757 } },
|
||||
new object[] { new double[] { 853.8603959923051, 961.8142637194284, 634.1360581243051, 140.00825942840643 }, new double[] { 850.6726123135188 } },
|
||||
new object[] { new double[] { 608.0662091541988, 268.76885286859795, 208.8700873051732, 374.76302883418435 }, new double[] { 413.02821821024014 } },
|
||||
new object[] { new double[] { 450.071540402517, 31.646964487920926, 568.0318631651296, 581.1800418798529 }, new double[] { 562.0509237552294 } },
|
||||
new object[] { new double[] { 10.173363666040824, 306.7938566122437, 627.2779897821499, 505.45955295310165 }, new double[] { 648.2948237310712 } },
|
||||
new object[] { new double[] { 332.5237172341329, 281.01833768454145, 554.6895575767154, 845.2031382917991 }, new double[] { 606.3515068434949 } },
|
||||
new object[] { new double[] { 384.1159420937238, 361.52668135979326, 500.9571816315105, 885.6841221285132 }, new double[] { 537.0222509076701 } },
|
||||
new object[] { new double[] { 367.7509718721161, 438.8561174107423, 111.16471502447112, 497.2669504455285 }, new double[] { 263.15077924814005 } },
|
||||
new object[] { new double[] { 393.397528622713, 596.6312402026481, 647.1757241573138, 493.5939821635904 }, new double[] { 273.897880738434 } },
|
||||
new object[] { new double[] { 801.118056132731, 745.6718137807256, 743.6786994333212, 10.899480357666413 }, new double[] { 737.0140172764758 } },
|
||||
new object[] { new double[] { 784.1119670217424, 913.5636800447771, 410.14752119495944, 411.57572111136 }, new double[] { 625.9722978348731 } },
|
||||
new object[] { new double[] { 358.41794014587316, 582.4142642499664, 289.26726454252525, 661.5923120289328 }, new double[] { 105.12363762012681 } }
|
||||
};
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(LengthData))]
|
||||
public void Length(double[] points, double[] expected)
|
||||
{
|
||||
Assert.Equal(expected[0], CreateLine(points[0], points[1], points[2], points[3]).Length, 6);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
@@ -753,8 +753,8 @@
|
||||
double gamma = 3.0 * (bezierCurve.SecondControlPoint.X * A + bezierCurve.SecondControlPoint.Y * B);
|
||||
double delta = bezierCurve.EndPoint.X * A + bezierCurve.EndPoint.Y * B;
|
||||
|
||||
double a = (-alpha + beta - gamma + delta);
|
||||
double b = (3 * alpha - 2 * beta + gamma);
|
||||
double a = -alpha + beta - gamma + delta;
|
||||
double b = 3 * alpha - 2 * beta + gamma;
|
||||
double c = -3 * alpha + beta;
|
||||
double d = alpha + C;
|
||||
|
||||
@@ -765,6 +765,7 @@
|
||||
#endregion
|
||||
|
||||
private static readonly double oneThird = 0.333333333333333333333;
|
||||
private static readonly double sqrtOfThree = 1.73205080756888;
|
||||
|
||||
private static (double Slope, double Intercept) GetSlopeIntercept(PdfPoint point1, PdfPoint point2)
|
||||
{
|
||||
@@ -803,8 +804,10 @@
|
||||
double detQ = c * c - 4 * b * d;
|
||||
if (detQ >= 0)
|
||||
{
|
||||
double x = (-c + Math.Sqrt(detQ)) / (2.0 * b);
|
||||
double x0 = (-c - Math.Sqrt(detQ)) / (2.0 * b);
|
||||
double sqrtDetQ = Math.Sqrt(detQ);
|
||||
double OneOverTwiceB = 1 / (2.0 * b);
|
||||
double x = (-c + sqrtDetQ) * OneOverTwiceB;
|
||||
double x0 = (-c - sqrtDetQ) * OneOverTwiceB;
|
||||
return new double[] { x, x0 };
|
||||
}
|
||||
return EmptyArray<double>.Instance; // no real roots
|
||||
@@ -835,7 +838,7 @@
|
||||
x1 = SPlusT - bOver3a; // real root
|
||||
|
||||
// Complex roots
|
||||
double complexPart = Math.Sqrt(3) / 2.0 * (S - T); // complex part of complex root
|
||||
double complexPart = sqrtOfThree / 2.0 * (S - T); // complex part of complex root
|
||||
if (Math.Abs(complexPart) <= epsilon) // if complex part == 0
|
||||
{
|
||||
// complex roots only have real part
|
||||
|
Reference in New Issue
Block a user