@Test public void testPredict() { testPrediction(581.7277681507967, 547.0861101510578, 0.6240275869705048, 0.0, 89L, -1252.767372286512, -0.5275697490636162, 6.5457804656690755, 174L, 529.6741198774033, 18.0, 0.09645783790688855); testPrediction(469.84979017408943, 451.481863945933, 0.8103342774277819, -8.0, 266L, 566.6574521352212, -1.4831666294069343, 6.011039768727823, 370L, 109.79387041803518, 898.446517742565, 5.610352955200433); testPrediction(529.2183015303349, 415.5012120147119, 4.670263189042221, 0.0, 483L, -339.89586390208297, -4.070578166276882, 2.7348410997650876, 609L, 357.6125435621164, 226.6561655806748, 0.5996850227653392); testPrediction(583.1486481539192, 541.0770384699063, 2.0543686938861985, 0.0, 686L, 1120.8551573116665, 1.8158437378835188, 8.0, 774L, 197.81504714318, 18.0, 3.870212431769718); testPrediction(430.64553995262895, 563.3472069723364, 1.2521911540190094, 0.0, 124L, 615.6978158437835, 5.80961552273221, 5.925373636986299, 232L, 580.0389793391518, 758.3238942214953, 0.7786213695716341); testPrediction(417.36454005332007, 456.5594643098834, 4.607003827400172, 0.0, 317L, -742.1716653432438, -3.2705915467931113, 8.0, 394L, 18.0, 571.1147568077557, 1.3364122806070602); testPrediction(565.470698789872, 434.9355127404287, 0.3561333111514018, 0.0, 512L, -908.1369118755972, 5.103932883040322, 6.415725483426858, 652L, 982.0, 165.29884461011116, 5.460066194191724); testPrediction(513.5225559405164, 407.5702070497116, 3.464630349788212, 0.0, 781L, 1202.2326503703812, -1.0018950755072487, 8.0, 847L, 818.1522414934359, 18.0, 2.4627352742809636); testPrediction(519.0549168932922, 591.27432292765, 4.972824220038008, 0.0, 959L, 875.600703241681, 3.1258504990475213, 8.0, 1041L, 982.0, 675.5296731191685, 1.8154894119059435); testPrediction(590.041305032508, 481.36443402565396, 5.9468659737686345, 0.0, 1153L, 1178.2853103700916, 3.3256437948273625, 8.0, 1249L, 871.1738205150763, 18.0, 2.9893244614164107); testPrediction(580.4088993999735, 452.26790139243013, 4.724454396833173, 0.0, 107L, -1017.4012706342655, 2.3208940594637557, 6.310076366479233, 202L, 274.79121114063935, 18.0, 0.76216314911734); testPrediction(415.14475607468745, 540.4279291170312, 2.1401466775388984, 0.0, 567L, 822.438543767887, 5.7955014609340605, 8.0, 675L, 560.9004319093762, 607.6329955634218, 1.652462831293373); testPrediction(431.9712684469052, 442.56762688502647, 5.088981175446874, 0.0, 730L, 864.101961466665, 1.5778693551673229, 1.2685601913877145, 1190L, 642.147821310032, 982.0, 0.38366522343460974); testPrediction(443.7559448609056, 574.534426203042, 4.32179733556697, 0.0, 95L, -780.2900966688334, -2.1959143736902176, 1.7794865719946062, 391L, 18.0, 858.410902558229, 2.1258829618767523); testPrediction(495.6026821235863, 406.00402557401895, 3.7558222472380915, 0.890625, 520L, -728.7783820520816, 2.928669027832349, 8.0, 586L, 516.8295423122858, 18.0, 0.4013059678908545); testPrediction(564.8343347207168, 567.1481769519856, 3.882390813227854, 0.0, 704L, -1136.629106323159, -2.2541592568669664, 6.077634187981005, 805L, 18.0, 669.576619114879, 1.6282315563608867); testPrediction(552.1567963497595, 423.57696366269977, 0.8741128868582522, 0.0, 928L, 835.3466498050435, -2.2178989229396553, 1.3863519695185629, 1334L, 18.0, 560.4171045917302, 4.939399271098182); testPrediction(480.4294524610333, 523.8668785144577, 5.818036195777783, 7.5, 73L, 1176.7917275846685, -0.7152551518930839, 2.3283211361628955, 288L, 18.0, 721.5977191036952, 5.102781043884697); testPrediction(497.8703643353754, 497.1606702491607, 0.6492452560107251, -3.375, 515L, 1066.122746077949, 3.4619152798246695, 8.0, 617L, 155.71203475959322, 18.0, 4.111160535835396); testPrediction(406.47013046695906, 511.6154730039427, 5.37916535246828, 2.0625, 746L, -320.9828931321463, 0.9753865587205928, 7.01858777021254, 798L, 387.33786720488143, 191.87337572139143, 0.0713666040092864); testPrediction(568.1596210546026, 525.960890493106, 1.5463067246996414, 8.0, 888L, 1169.7451414967086, -5.189854680885702, 2.8258364514780725, 1136L, 840.1172975429911, 18.0, 2.6396373509935263); testPrediction(547.9975525802096, 419.1554180342809, 1.92436330247606, 0.0, 95L, 1289.4303230884625, -3.0236930999190483, 4.391410431930112, 259L, 18.0, 767.046901053695, 5.183855509736598); testPrediction(538.6317168730432, 415.98639025303993, 0.5605723707975259, 0.0, 366L, 911.392998115127, 0.2148396678262996, 8.0, 449L, 982.0, 868.3569200308144, 0.7754120386238255); testPrediction(586.2444567489304, 461.85477499154797, 5.339814218300474, 0.0, 586L, -962.0422804447713, -5.622206554127435, 8.0, 712L, 574.7852468812581, 151.72378507773755, 6.000792971352626); testPrediction(444.3889685063784, 424.61396427473636, 2.4411511384625584, 0.0, 805L, 803.9441457091648, -5.407238476900795, 1.89583877114118, 1065L, 365.72274451512465, 18.0, 3.3170979687413493); testPrediction(490.03740238496334, 486.52676727027296, 3.877687374681154, 5.75, 1165L, 390.3119866960149, 6.010220614520071, 4.013398526927228, 1263L, 409.35227428495784, 321.40886522194313, 3.6047226820216394); testPrediction(565.5526526429592, 565.3816787580536, 1.5144232219683278, 0.0, 69L, 547.5180017253031, -1.6743170697885974, 5.736863076836387, 147L, 532.6519860627432, 982.0, 6.123291459359317); testPrediction(421.68329440390323, 454.5969846006863, 1.443326894257041, -5.25, 247L, 981.9644435665164, 6.05115297407994, 6.8066961854951025, 399L, 876.0053657405324, 682.7048058047621, 1.2112945611573935); testPrediction(489.7240098583792, 496.83529380635184, 1.291898311655841, -6.0, 475L, 398.6519047168779, -1.558286709258577, 8.0, 534L, 392.7444902092785, 885.0472276115324, 6.016796909576849); testPrediction(553.7737999106864, 576.5311260117697, 1.622736230882568, 0.0, 637L, -403.1686387943156, 0.518904222697854, 8.0, 693L, 214.17344558791623, 793.6520900911621, 2.141640453580422); testPrediction(529.9654438428637, 589.3352192166805, 0.5636777046020789, 0.0, 819L, -719.5274841856371, 1.819444676377282, 8.0, 901L, 73.66405319849036, 982.0, 2.3831223809793616); testPrediction(473.40356246990495, 409.9118129938628, 1.8040513516779335, 0.0, 1046L, 1163.429248132447, -4.727182572468787, 4.2864272283527125, 1189L, 335.398735399468, 18.0, 3.36005408638874); testPrediction(593.4133461730673, 489.8954348811151, 5.9491302629083185, 0.0, 115L, -681.4988941646587, -0.02357266288198634, 6.722528314133859, 193L, 769.7591911096576, 18.0, 5.925557600026332); testPrediction(449.48429696987773, 420.4672557429301, 5.1876572147817495, 0.0, 341L, -1260.8869062239273, -1.3002325003957607, 8.0, 441L, 982.0, 967.1276445369206, 3.8874247143859884); testPrediction(408.51389661030436, 487.60247178311124, 1.6722455856987726, 0.0, 577L, 480.1469766580267, -4.925801545661803, 0.6445315156539815, 1322L, 456.2431885682907, 32.554673000291, 3.029629347216552); testPrediction(551.2185545939922, 421.05300222007673, 1.4277856857199047, 0.0, 116L, -955.3422694759133, -3.7498579824797846, 1.8952729961915413, 443L, 982.0, 790.3480712112633, 3.961113010419708); testPrediction(589.7667449504469, 474.4423789275062, 3.286582493454858, 0.0, 575L, 1124.4120127628626, -4.57960352185772, 8.0, 721L, 52.465765138440624, 835.8186038973167, 4.990164278776723); testPrediction(541.6273525240294, 420.9202219766138, 2.416226033415133, 0.0, 822L, 363.750339277292, 4.41444622412717, 3.248620692382621, 936L, 635.1114379100825, 648.2420503943353, 0.5474869503627149); testPrediction(417.2797145659157, 466.02898537473317, 3.122297792188002, 0.0, 987L, -875.3065445559296, 1.1020090544763823, 8.0, 1072L, 982.0, 777.9830824835891, 4.224306846664384); testPrediction(587.554326746686, 466.98915548616515, 0.4268303433920184, 0.0, 1197L, -580.16536707243, 0.4425983216483811, 8.0, 1275L, 144.67516918344143, 92.29525943694924, 0.8694286650403995); testPrediction(409.8168190822147, 520.5151357889658, 6.15239267336937, 0.0, 197L, -866.5089595309348, 3.35308466867564, 3.078360333746858, 370L, 401.397010669915, 982.0, 3.222292034865423); testPrediction(478.8469284052848, 413.13506150940856, 3.8438252382752274, 2.0, 448L, -1215.4320719970538, -1.8786983374844715, 3.561168458060356, 597L, 18.0, 629.7252353252752, 1.9651269007907568); testPrediction(527.787204019179, 410.080631859951, 0.32735559491189425, 0.0, 719L, 1110.9774566515741, -1.6278823667980662, 6.004750427180228, 814L, 18.0, 585.5376734246261, 4.982658535293415); testPrediction(421.950980786376, 450.4171292455942, 6.234720668505401, 0.0, 1048L, -884.7992621221778, -4.949968925631722, 8.0, 1164L, 79.23313215699783, 525.8908448565355, 1.2847517428736774); testPrediction(560.4826049205686, 428.9354566328718, 3.7149978704502615, 0.0, 1265L, -543.2094103446693, -3.6347257521131984, 8.0, 1338L, 320.51047432823185, 206.29069466600083, 0.08027211833706295); testPrediction(579.5754282359895, 550.148606631135, 1.6530657570477068, 0.0, 79L, 546.4210579971458, 5.007458688514513, 8.0, 153L, 412.7063143079262, 572.7793285337647, 0.3773391383826337); testPrediction(510.6789759955701, 492.2787122214399, 5.390824659973084, -5.375, 199L, 680.2384140604055, -4.060439927619457, 1.0203690470814804, 696L, 982.0, 592.1324530186631, 1.3303847323536298); testPrediction(575.4128366369641, 444.97227634732997, 4.080127154682438, 0.0, 803L, 747.0014943865194, -3.9746163674185606, 5.444477492423535, 944L, 734.1705670943778, 979.770990555144, 0.10551078726387698); testPrediction(594.1612199805064, 503.83691846215527, 5.16825198535779, 0.0, 1084L, 569.0581799496742, -4.080993232850812, 8.0, 1161L, 845.7937649836034, 383.8959377600076, 1.0872587525069763); testPrediction(515.6258900907928, 407.0976712176476, 4.9775243607684025, 0.0, 1261L, -1145.0637567077313, 4.533295043282948, 8.0, 1397L, 361.1251568012549, 982.0, 3.227634096871765); testPrediction(588.3186687348043, 469.5794679258195, 3.5266838539435503, 0.0, 95L, -526.7253215148347, -1.9583744473954097, 2.8936677709601573, 279L, 76.32822241208747, 491.85397009619277, 1.5683094065481422); testPrediction(567.1134255730194, 435.63780062294, 2.8287072361787393, 2.5, 365L, -983.4611924587412, 1.576330796683381, 8.0, 427L, 982.0, 594.4451023608278, 4.40503803286212); testPrediction(435.44124081714654, 568.4718257589656, 2.6209374267485916, 0.0, 546L, -306.2439914078934, -1.9782034215244328, 5.642742022851489, 604L, 228.63778216839532, 374.3134028027715, 0.6427340052241587); testPrediction(590.4053738438316, 481.39912062566304, 1.075866109036663, 0.0, 707L, -825.6440386427497, 2.444376086501494, 7.281022928197766, 789L, 673.0465687202034, 982.0, 3.520242195538157); testPrediction(579.3953788589102, 548.1300087417982, 0.6370457173228372, 0.0, 909L, 853.1533434678543, 4.251581912742743, 8.0, 1021L, 134.12345842005638, 405.87672360542496, 4.888627630065582); testPrediction(585.8924598193519, 465.594022438376, 1.0311760475370835, 0.0, 1114L, -763.1003625085357, -3.5112638609888136, 8.0, 1198L, 982.0, 621.0851274823119, 3.8030974937278543); testPrediction(540.520654565049, 415.7013388584985, 3.5155838372762998, 0.0, 54L, 766.0676238135554, -0.012720316721424041, 4.609434409397947, 149L, 390.2474263191676, 18.0, 3.5028635205548757); testPrediction(411.20617179085014, 473.3807356704635, 4.832067220834189, 4.0, 255L, -997.2636179243935, 0.9960093390438862, 2.415955428843607, 469L, 634.683715719414, 18.0, 5.828076559878075); testPrediction(446.31546695169556, 423.3246556538098, 1.6892200876898287, 0.0, 584L, -641.9714312924164, -3.7236004140571475, 8.0, 670L, 832.6068222641616, 366.6121039275531, 4.248804980812267); testPrediction(553.5655108169558, 425.3781303629053, 2.6257390895261055, 0.0, 758L, 570.7406484440589, -1.6082860613690722, 6.778499044070475, 834L, 982.0, 648.0968426374548, 1.017453028157033); testPrediction(586.2253726271239, 465.32140031567155, 5.887351597775364, 0.0, 959L, 943.0021529882423, 5.141637247333563, 8.0, 1082L, 246.30031649913474, 326.80406000833267, 4.745803537929341); testPrediction(526.1822999795121, 505.52819119637206, 4.607254299849255, -7.375, 1154L, 921.548416257145, -0.6517125106271466, 8.0, 1251L, 18.0, 18.92351595228649, 3.9555417892221088); testPrediction(530.0190706715134, 413.1821564924661, 5.365696451845223, 0.0, 129L, -499.8369527855846, -1.2138443771800222, 8.0, 197L, 958.2450660787433, 663.5323828329953, 4.151852074665201); testPrediction(416.45153671349726, 541.539343774232, 2.2418962496809645, 0.0, 318L, 446.9875354190582, -4.973663226356219, 8.0, 379L, 322.6111337103786, 727.8275841632809, 3.7067596198364616); testPrediction(518.6356547414127, 592.1032821451981, 0.7941082999252229, 0.0, 480L, 672.4711800411874, 1.4386594690978773, 8.0, 556L, 982.0, 267.80710102799947, 2.2327677690231007); testPrediction(461.5768997557593, 552.2497802673145, 2.755275219428445, -8.0, 653L, 313.2146699684702, -5.252382794476962, 8.0, 703L, 488.77190597926307, 781.8125537072258, 4.813598761921427); testPrediction(440.6364847179219, 428.8051158573309, 1.309067475553609, -0.5, 776L, 612.8321304894723, -4.863488470934721, 7.598926499893121, 862L, 343.82350185119395, 259.9327976432778, 2.728764311798474); testPrediction(576.8669650376747, 545.0758477887747, 1.718611689244822, 0.0, 934L, -629.9723355427834, 2.9892370876958125, 8.0, 1010L, 982.0, 729.6184367329953, 4.7078487769406365); testPrediction(585.9427525876563, 463.24541681349336, 1.867896669934781, 0.0, 1132L, -458.3353253864285, -0.31040093376096767, 8.0, 1195L, 127.65538120748582, 457.28502698491616, 1.5574957361738133); testPrediction(511.2375257025149, 421.86088881841164, 0.1692307640816486, -8.0, 78L, -773.9660523052621, -5.681277612000408, 8.0, 177L, 454.1596126333838, 395.3590059952627, 0.771138459260826); testPrediction(567.2315953314122, 558.4902418812303, 4.728908747438061, 0.0, 228L, 901.9931779570544, 4.6004514348367405, 8.0, 346L, 802.1218267433792, 189.9687058672317, 3.046174875095217); testPrediction(486.9847778508945, 591.5414228833299, 2.1990373315013, 0.0, 465L, 423.21244405032314, 1.809921587135868, 8.0, 523L, 222.42324320442003, 288.2019077868648, 4.008958918637169); testPrediction(489.65529280665186, 496.01303593574397, 4.408024415338633, 4.75, 604L, 614.1709090356028, 0.8480829221596187, 0.6865874558373173, 1403L, 18.0, 777.8479886923498, 5.256107337498252); testPrediction(593.2580240298198, 511.3370530213643, 3.9365507617696034, 0.0, 103L, -708.7253109685016, 5.362360666310527, 2.0132212000982457, 381L, 526.0900130146299, 982.0, 3.015726120900544); testPrediction(511.95727016869984, 522.9945196607239, 3.785602398576551, -7.25, 469L, 404.3925309434376, -5.83687574589193, 1.89998129045812, 692L, 215.16274859593557, 381.47699766437336, 4.231911959864204); testPrediction(526.7593559035895, 491.42566404603383, 5.199444098445127, -7.125, 772L, -684.2565091430815, 5.535391792767729, 8.0, 860L, 492.3357481239243, 517.6821795236419, 4.4516505840332705); testPrediction(483.4189417533927, 496.992210333493, 4.650488970421987, 5.7479960223196755, 898L, 1132.5247623453217, 5.6229409854117485, 8.0, 1042L, 188.50378949897316, 195.2869038104166, 3.990244648654149); testPrediction(406.90958310851346, 507.13742777011856, 2.339057745934449, 0.0, 1157L, -1130.6087732785402, -2.879595070097653, 8.0, 1238L, 498.9041625760409, 18.0, 5.742647983016382); testPrediction(539.4888145032585, 552.2764612917592, 0.9018938394659665, 8.0, 1336L, 343.70281488115944, -3.6067934558853345, 4.873417262175742, 1408L, 395.3737236163778, 439.6558574572334, 3.5782856907602176); testPrediction(534.1925760101228, 424.7233607047412, 6.199881868217099, -7.5, 92L, -325.5025325692646, -5.39660478302801, 1.3668328902146425, 326L, 343.0665571473162, 236.39505951592528, 0.8032770851890877); testPrediction(405.8514349900071, 504.422633960955, 3.465069897461574, 0.0, 426L, -1145.6210138983442, 5.796453443686383, 3.1891921403162677, 626L, 319.8268207334009, 982.0, 2.9783380339683716); testPrediction(541.6219155830897, 583.4468749656689, 5.477213970878932, 0.0, 736L, -931.5188603671814, 4.716020049317601, 8.0, 853L, 662.7662690073843, 982.0, 3.9100487130169475); testPrediction(503.46755867115024, 505.81349597632993, 3.7407338222344078, -3.75, 952L, 595.6594267955911, -3.7809821830656976, 8.0, 1034L, 708.7866765709172, 835.1537681022968, 6.242936946348297); testPrediction(502.92981464521705, 503.22749198925044, 0.7325837810165221, 2.78125, 1132L, -376.06376444927776, 2.314349127092198, 6.9021013408762215, 1193L, 398.2541294499994, 830.2740354174093, 3.046932908108722); testPrediction(545.4799438672227, 580.9911667812332, 4.168455482687161, -2.875, 1274L, -424.33202148151554, -5.105341061373217, 5.3668881349675255, 1355L, 618.6260177755886, 478.6723907848728, 5.34629972849353); testPrediction(484.11166355032395, 591.8690098832412, 0.9495820012964853, 0.0, 100L, -1246.7953487699258, -2.8121165116849265, 8.0, 180L, 982.0, 567.6824166498137, 4.4206507967911435); testPrediction(418.29906909962705, 543.8311712951647, 2.892189909815322, 0.0, 296L, 787.1059590631323, -4.532933484059829, 8.0, 400L, 116.87757106477414, 726.5680723334732, 4.642441732935078); testPrediction(503.928971239108, 594.1339377730577, 1.2815951687108724, 0.0, 515L, -880.3708809299485, 4.733535756410662, 8.0, 631L, 776.1787613111089, 314.4314956035782, 6.015130925121537); testPrediction(498.4488254582585, 594.0199880982063, 4.928510619147344, 0.0, 750L, -809.9998249230806, 3.5997035616363906, 7.6341672233682125, 849L, 18.0, 724.9994897130151, 2.245028873604149); testPrediction(500.8407879153322, 594.0245624144449, 0.7198462022418106, 0.0, 103L, -731.3271778993892, -6.222164463246177, 8.0, 200L, 456.41133155409307, 604.3477033538875, 0.7808670461752177); testPrediction(466.490350149425, 411.8440605148635, 0.2281292828941173, 0.0, 503L, -447.14941154339766, 3.0308406252762428, 8.0, 564L, 313.0744824319952, 701.691772196038, 3.258969908170361); testPrediction(494.25494640984493, 511.1601252506654, 2.7459176179707665, -5.25, 625L, -663.1637578151647, 0.19255456674705496, 6.26709461511132, 702L, 396.7275557506854, 982.0, 2.9384721847178215); testPrediction(424.63218359537507, 443.3692474505761, 2.6214858855802197, 0.0, 840L, -1026.2769534410518, 1.6309053461639502, 1.2841196874749221, 1331L, 982.0, 727.9292586663533, 4.252391231744171); testPrediction(570.162914318504, 444.9901460808079, 4.323574164044947, 0.0, 101L, -372.4147956468626, -2.2841010712645593, 8.0, 153L, 345.9412484940084, 681.9031860033035, 2.039473092780386); testPrediction(492.8213583503682, 541.0104316691181, 3.160053181679099, -8.0, 213L, 918.5336273070327, -1.7280308912564557, 5.618895839076517, 308L, 982.0, 604.868225865358, 1.432022290422643); testPrediction(592.1609482865153, 488.7121514337848, 0.27101560936450775, 0.0, 663L, 1113.3545829455575, 0.6801375952324555, 8.0, 727L, 982.0, 769.2499368696508, 0.9511532045969633); testPrediction(591.463938961928, 484.12728847334444, 3.7429751472174497, 0.0, 847L, 1187.2358361677043, -5.886648968179836, 7.7939232229817055, 1005L, 103.72989743284747, 245.0557617686785, 4.1395114862172075); testPrediction(408.4092764528955, 498.7605362699266, 6.067462711408426, 0.0, 1096L, -651.0325898061546, -3.1560240944739903, 3.3210313868087917, 1263L, 345.7748375076372, 982.0, 2.911438616934442); testPrediction(455.8192577071345, 417.5688222925765, 2.323305777175416, 0.0, 1395L, 1277.3549598203226, -5.68304552008728, 8.0, 1532L, 451.35176985013106, 18.0, 2.923445564267723); testPrediction(545.6650819196286, 582.0933850096293, 4.533276733389706, 0.0, 124L, -1297.1048562511808, 6.13421334109073, 4.252477027395962, 288L, 982.0, 736.8076922795964, 4.38430476730085); testPrediction(591.4010569356373, 490.8533056369046, 2.2853808893619005, 0.0, 401L, -967.0474082159885, 4.113419743596687, 1.2615161176237593, 808L, 549.8713291641768, 18.0, 0.11561532577900024); testPrediction(434.17724702463636, 433.3542460747131, 3.1749141688323603, 0.0, 929L, 970.997735314079, -4.064796073358942, 7.053694309786352, 1071L, 27.55969629724996, 976.4349422757549, 5.393303402653); testPrediction(514.0329341007722, 408.7985848150442, 0.36267503631146414, -2.5, 1191L, 529.1346533760059, 4.055734479867246, 7.221331863707151, 1271L, 339.0908362029288, 170.30672133371155, 4.41840951617871); testPrediction(542.8891021591121, 583.9118837920441, 4.0814747794174435, 0.0, 80L, 1011.0838651867916, 1.6202078608251949, 4.415255901074892, 196L, 251.9893978609125, 982.0, 5.7016826402426375); testPrediction(409.5693944508504, 514.3649707895847, 5.132242292137908, 0.0, 493L, 824.695600404882, -5.755326198295743, 8.0, 602L, 392.26981277706204, 680.85311096365, 5.660101401021752); testPrediction(498.79703891340654, 493.38618032265606, 3.3602021173750076, 4.0, 79L, -301.11377076691224, 1.0309349992903973, 8.0, 124L, 784.3629634099029, 589.7566020124361, 4.391137116665405); testPrediction(589.2494115538773, 477.2980658724499, 6.077888397240546, 0.0, 193L, -886.5975203417686, -1.833585236160955, 1.9983654822315198, 415L, 982.0, 659.6476824646226, 4.2443031610795945); testPrediction(411.12159127475087, 510.8520762796493, 0.5497947345837824, 0.0, 504L, -619.5793641241986, 4.016944048758328, 2.612743754826034, 743L, 939.2662847672912, 622.3136883898374, 4.566738783342108); testPrediction(588.2682941400096, 474.2192853453182, 1.1616039457582428, 0.0, 838L, 832.427724621969, -6.142636302027026, 8.0, 948L, 724.1111117962614, 464.4913381641559, 1.3021529509108014); testPrediction(463.2521459487019, 586.5163865077311, 3.6748956537785697, 0.0, 1020L, 1101.2125457918496, 5.191708614229892, 5.768649726635449, 1203L, 891.2965259815915, 18.0, 2.5834189608288822); testPrediction(541.4119353736162, 584.738523249723, 1.1583407068864693, 0.0, 1352L, -564.239737373656, 5.423086267226399, 8.0, 1428L, 679.4343273124302, 627.6467522894566, 0.2982416669332832); testPrediction(515.6814416763652, 512.4522210229326, 0.9897937620936842, 6.5, 60L, -1172.5965776426965, -1.441709652370677, 2.768068686334346, 265L, 756.759306392203, 18.0, 5.831269416902593); testPrediction(496.8599170163367, 512.9639429165928, 6.107338639640576, 5.375, 364L, 1029.573891442349, 1.5473732357318113, 8.0, 435L, 982.0, 711.3843936438424, 1.3715265681928017); testPrediction(585.0581296805682, 460.65539377479337, 5.174030320947349, 0.0, 557L, -629.3482558628962, -0.5751301200464063, 4.277009061998265, 653L, 982.0, 504.755133780423, 4.598900200900943); testPrediction(550.0692865024989, 420.3595022312746, 3.5834443092718575, 0.0, 781L, -1161.9504888089332, 1.285571731483227, 8.0, 840L, 982.0, 371.77995807765177, 4.869016040755085); testPrediction(544.0989127020582, 417.68911718116834, 0.7928724660328736, 0.0, 945L, -659.9561752307525, 2.4139794270759154, 6.136601142612943, 1049L, 499.1072149786196, 982.0, 3.2068518931087917); testPrediction(431.4026950585605, 435.2729289680251, 5.201091015839256, 0.0, 127L, 321.3890859199315, 3.7679773176533313, 6.788503890892385, 179L, 604.2009248345718, 436.9158554565492, 2.685883026313002); testPrediction(495.4561232442908, 405.89666051599346, 4.026080159507301, 0.0, 250L, -704.3873985920343, -1.4856558850810622, 6.339958254843101, 362L, 132.79598523557877, 982.0, 2.5404242744262384); testPrediction(518.441471640226, 591.6309789491324, 5.032652346049301, 0.0, 486L, -394.5760715309835, -1.6187019670445055, 3.312018747997403, 607L, 640.1671471617383, 958.1523075017286, 3.413950379004797); testPrediction(439.7786056548213, 433.89377150600814, 0.28275519154447215, 0.0, 697L, 569.5354259983478, -4.565446555127282, 2.8112436073458515, 901L, 849.0532878651619, 214.8865219290538, 2.000493943596782); testPrediction(508.7191217180339, 593.6574662653829, 5.180796437616366, 0.0, 1020L, 447.2051991398976, -2.1183206348204555, 7.732144523597078, 1083L, 453.70499553663734, 187.5229840077657, 3.0624758027959103); testPrediction(440.57464189850396, 429.9632156713762, 5.0307488815553905, 0.0, 1154L, -1103.75595673026, -2.223234858136742, 8.0, 1234L, 358.41271759348484, 982.0, 2.807514023418647); testPrediction(478.15680011138124, 413.6470962281114, 3.492829889499507, 0.0, 89L, -707.6454176461255, 0.5046878367500618, 8.0, 176L, 982.0, 851.9552003094232, 3.9975177262495687); testPrediction(417.4807630835887, 545.6862302638101, 1.9593953053422979, 0.0, 317L, -638.0447770368214, 2.269590120869438, 8.0, 402L, 875.511889239167, 908.6959595522969, 4.228985426211738); testPrediction(588.5178769755966, 524.6506541985391, 1.829920831244788, 0.0, 517L, 607.252141160578, -4.982895680729598, 8.0, 598L, 422.861773769283, 498.3304861358266, 3.130210457694776); testPrediction(410.2568065358631, 475.26237571554026, 1.0813966937449417, 0.0, 669L, 1070.3304134750806, -5.969446721023079, 8.0, 808L, 790.7007964606786, 480.5135971441025, 1.395135279901447); testPrediction(439.04968344648825, 570.4225769397585, 1.0858016382232007, 0.0, 904L, 1053.466174316629, -2.387197355126666, 8.0, 976L, 18.0, 812.7546333078815, 4.98178959027612); testPrediction(507.01447758560715, 594.0169545746543, 4.9053100640281375, 0.0, 1118L, -1100.744178840882, -0.20464764207236374, 8.0, 1181L, 982.0, 599.5570431463154, 4.700662421955774); testPrediction(413.3920276332395, 521.1624954142001, 4.284728819635752, 0.0, 1289L, -410.8005439736218, 1.0330544327879627, 8.0, 1346L, 754.3605685842463, 295.35632409740674, 5.317783252423714); testPrediction(425.91236073594797, 555.5374816161451, 5.993497085175381, 0.0, 92L, 391.2673840794509, -5.853707989539696, 8.0, 146L, 341.251668967576, 349.88556696071015, 1.666614746508474); testPrediction(429.9847029756418, 561.6158802160041, 1.0167444566214603, 0.0, 93L, 585.8535142570065, 2.510858273864711, 8.0, 172L, 369.6036526216461, 54.33013866825485, 3.5276027304861732); testPrediction(582.7238424674513, 543.4284793357747, 5.345102339615483, 0.0, 277L, 823.3165311792471, -2.6261130919270137, 8.0, 358L, 657.4047848959647, 18.0, 2.718989247688468); testPrediction(500.8940412001442, 496.5644806021423, 2.892648063811232, 3.25, 445L, -1049.282206070362, -4.851645054752516, 4.259232851582074, 609L, 982.0, 635.5440420201339, 4.32418831623831); testPrediction(576.9884611619923, 446.5065272468794, 3.750818208620961, 0.0, 745L, -996.9476654172425, 1.4141830668489472, 4.335432232189361, 851L, 982.0, 268.8754046230043, 5.165001275469908); testPrediction(515.1709255925275, 529.3083227622913, 0.60711000029029, 8.0, 1086L, -390.1438394475518, -1.07399074702316, 4.851550386525263, 1176L, 700.0764746545359, 180.37306937548752, 5.816304560446717); testPrediction(573.4645366127088, 442.4014792320093, 5.385700911549965, 0.0, 105L, 438.8838779807421, 2.387934533838738, 5.028080643468603, 196L, 960.1368202552663, 535.2444058592444, 1.4904501382091166); testPrediction(523.4650768702277, 491.51386374120017, 2.0618056115560255, 7.0, 284L, 1125.8820217444136, 2.4475470556106345, 7.483455556761498, 381L, 18.0, 213.90288044262005, 4.509352667166657); testPrediction(418.88449912088817, 548.2148373205373, 5.765458377323571, 2.0625, 506L, -562.0160865229839, -3.9888102357044137, 8.0, 583L, 254.42597874196275, 812.3021787798301, 1.7766481416191573); testPrediction(501.94148679033043, 592.6568361330759, 5.845955030368692, 0.0, 688L, -331.54124875459996, 3.264820124577696, 8.0, 735L, 274.5981639940775, 632.962656865915, 2.827589847766802); testPrediction(524.8492479436521, 412.5891471192446, 3.2635688629804527, 4.5, 800L, -1116.5649525385534, 5.4711712116853715, 8.0, 948L, 88.88065972442297, 707.3942842335024, 2.451554767486238); testPrediction(476.3405713903407, 590.5089226262571, 5.268321491413245, 0.0, 1058L, -668.2571959151063, -1.555736158404704, 8.0, 1125L, 772.7527861567414, 982.0, 3.71258533300854); testPrediction(593.9100414516336, 503.2506698486936, 3.629796502977343, 0.0, 1268L, 932.9213601398948, 1.4916456575737813, 8.0, 1350L, 18.0, 717.083620729104, 5.121442160551126); testPrediction(555.2384208473252, 424.4852967396653, 1.7591189634587456, 0.0, 109L, 1020.1662636097006, -0.8386005987568028, 7.943420320002381, 180L, 982.0, 744.1068424378099, 0.9205183647019427); testPrediction(410.97488169320656, 497.7869668967029, 0.23282656984655795, 0.0, 290L, 1218.4595396278676, -4.9792227371987305, 8.0, 437L, 982.0, 350.81041744177173, 1.5367891398274118); testPrediction(472.9276713370271, 590.0979908064337, 5.824783633276027, 0.0, 568L, 784.1604930125086, -1.1564942944207663, 8.0, 629L, 18.0, 582.9875217651062, 4.668289338855261); testPrediction(432.9265717111914, 556.336388421593, 5.800690029930077, 5.5, 715L, 1299.3332934653938, 5.9123424721921545, 7.978044097910362, 873L, 18.0, 900.896097729387, 5.429847194942646); testPrediction(494.4538860439566, 593.3296922031371, 4.377417475335379, 0.0, 1012L, -915.920795543372, -2.2374876200728204, 8.0, 1093L, 81.74708592372433, 982.0, 2.1399298552625576); testPrediction(593.9968473534811, 499.167171770776, 6.206291785038225, 0.0, 136L, -573.4723546516346, 4.6982134933026884, 5.176014347361161, 250L, 914.0567010622048, 599.9516810773627, 4.621319971161328); testPrediction(414.9102295655108, 535.7990541456887, 0.025981168537841326, 0.0, 344L, 1283.2647139523272, 1.8829293111852525, 2.8966670414509057, 555L, 982.0, 359.7164090561102, 1.9089104797230938); testPrediction(539.6895656134454, 416.33124981036667, 1.495123168498847, 0.0, 685L, 708.193201770941, 5.3155620421994705, 1.5009274738721388, 1158L, 861.8666383080171, 980.2891857920141, 0.527499903518728); testPrediction(407.37079421054153, 488.7309533039545, 0.5945505680543801, 0.0, 1305L, 830.6642870855808, 2.005894956012284, 8.0, 1389L, 783.5380739720068, 18.0, 2.6004455240666653); testPrediction(511.2754687069214, 503.0805006330645, 1.398658869569625, 5.0, 60L, 1076.5796871006614, -4.473936186636016, 7.352980550424242, 196L, 352.80223783014736, 18.0, 3.2079079901131955); testPrediction(423.0572725890534, 448.2408503190571, 1.636151405525073, 0.0, 321L, 608.5523541628104, -4.611804982683718, 4.855177388596034, 450L, 293.0210439957001, 74.08269994721823, 3.307531730020947); testPrediction(406.464180512365, 490.87982987555, 3.232014940953191, 0.0, 581L, 353.8481854265388, -4.871191527286586, 8.0, 631L, 587.1178282225442, 623.7954255359333, 5.414367731421426); testPrediction(413.2893514806364, 534.6777650066017, 5.23194782238502, 0.0, 701L, -385.2935628479387, 4.470474089558808, 2.2919411694221568, 870L, 474.5119203428311, 833.1707880010495, 3.4192366047642415); testPrediction(426.7488692619763, 441.03753915755885, 2.8260572735975633, 0.0, 991L, -797.9817770951395, 3.631830123906644, 8.0, 1081L, 576.7608639653955, 18.0, 0.17470209032462203); testPrediction(453.6292375003373, 419.5964428118217, 4.251751146346098, 0.0, 1203L, -1218.2085432031422, 0.831250206098308, 4.45108554773053, 1332L, 982.0, 218.38593266592164, 5.0830013524444055); }
public RobotState predict(RobotState startState, double distance, double turn, double maxVelocity, long ticks, boolean ignoreWalls) { RobotState state = startState; for (long x = 0; x < ticks; x++) { double nextHeading = state.heading; double maxTurnRate = Math.abs(Rules.getTurnRateRadians(state.velocity)); if (Math.abs(turn) < maxTurnRate) { nextHeading += turn; turn = 0; } else { double turnAmount = maxTurnRate * Math.signum(turn); nextHeading += turnAmount; turn -= turnAmount; } double nextVelocity = getNewVelocity(state.velocity, distance, maxVelocity); distance -= nextVelocity; Point2D.Double nextLocation = DiaUtils.project(state.location, nextHeading, nextVelocity); if (!ignoreWalls && !_rectangle.contains(nextLocation)) { adjustForWalls(nextLocation, nextHeading); } state = RobotState.newBuilder() .setLocation(nextLocation) .setHeading(nextHeading) .setVelocity(nextVelocity) .setTime(state.time + 1) .build(); } return state; }
MovementPredictor { public RobotState predict(RobotState startState, double distance, double turn, double maxVelocity, long ticks, boolean ignoreWalls) { RobotState state = startState; for (long x = 0; x < ticks; x++) { double nextHeading = state.heading; double maxTurnRate = Math.abs(Rules.getTurnRateRadians(state.velocity)); if (Math.abs(turn) < maxTurnRate) { nextHeading += turn; turn = 0; } else { double turnAmount = maxTurnRate * Math.signum(turn); nextHeading += turnAmount; turn -= turnAmount; } double nextVelocity = getNewVelocity(state.velocity, distance, maxVelocity); distance -= nextVelocity; Point2D.Double nextLocation = DiaUtils.project(state.location, nextHeading, nextVelocity); if (!ignoreWalls && !_rectangle.contains(nextLocation)) { adjustForWalls(nextLocation, nextHeading); } state = RobotState.newBuilder() .setLocation(nextLocation) .setHeading(nextHeading) .setVelocity(nextVelocity) .setTime(state.time + 1) .build(); } return state; } }
MovementPredictor { public RobotState predict(RobotState startState, double distance, double turn, double maxVelocity, long ticks, boolean ignoreWalls) { RobotState state = startState; for (long x = 0; x < ticks; x++) { double nextHeading = state.heading; double maxTurnRate = Math.abs(Rules.getTurnRateRadians(state.velocity)); if (Math.abs(turn) < maxTurnRate) { nextHeading += turn; turn = 0; } else { double turnAmount = maxTurnRate * Math.signum(turn); nextHeading += turnAmount; turn -= turnAmount; } double nextVelocity = getNewVelocity(state.velocity, distance, maxVelocity); distance -= nextVelocity; Point2D.Double nextLocation = DiaUtils.project(state.location, nextHeading, nextVelocity); if (!ignoreWalls && !_rectangle.contains(nextLocation)) { adjustForWalls(nextLocation, nextHeading); } state = RobotState.newBuilder() .setLocation(nextLocation) .setHeading(nextHeading) .setVelocity(nextVelocity) .setTime(state.time + 1) .build(); } return state; } MovementPredictor(BattleField battleField); }
MovementPredictor { public RobotState predict(RobotState startState, double distance, double turn, double maxVelocity, long ticks, boolean ignoreWalls) { RobotState state = startState; for (long x = 0; x < ticks; x++) { double nextHeading = state.heading; double maxTurnRate = Math.abs(Rules.getTurnRateRadians(state.velocity)); if (Math.abs(turn) < maxTurnRate) { nextHeading += turn; turn = 0; } else { double turnAmount = maxTurnRate * Math.signum(turn); nextHeading += turnAmount; turn -= turnAmount; } double nextVelocity = getNewVelocity(state.velocity, distance, maxVelocity); distance -= nextVelocity; Point2D.Double nextLocation = DiaUtils.project(state.location, nextHeading, nextVelocity); if (!ignoreWalls && !_rectangle.contains(nextLocation)) { adjustForWalls(nextLocation, nextHeading); } state = RobotState.newBuilder() .setLocation(nextLocation) .setHeading(nextHeading) .setVelocity(nextVelocity) .setTime(state.time + 1) .build(); } return state; } MovementPredictor(BattleField battleField); RobotState predict(RobotState startState, double distance, double turn,
      double maxVelocity, long ticks, boolean ignoreWalls); RobotState nextRobotState(Diamond robot); Point2D.Double nextLocation(Diamond robot); Point2D.Double nextLocation(RobotState robotState); Point2D.Double nextLocation(Point2D.Double botLocation,
      double heading, double velocity); RobotState nextPerpendicularLocation(RobotState robotState,
      double absBearing, int orientation, double attackAngle,
      boolean ignoreWallHits); RobotState nextPerpendicularWallSmoothedLocation(RobotState robotState,
      double absBearing, double maxVelocity, double attackAngle,
      int orientation, double wallStick, boolean ignoreWallHits); RobotState nextLocation(RobotState robotState, double maxVelocity,
      double goAngle, boolean ignoreWallHits); double escapeAngleRange(Point2D.Double sourceLocation,
      long fireTime, double bulletSpeed, RobotState startState,
      double wallStick); MaxEscapeTarget preciseEscapeAngle(int predictDirection,
      Point2D.Double sourceLocation, long fireTime, double bulletSpeed,
      RobotState startState, double wallStick); MaxEscapeTarget preciseEscapeAngle(int predictDirection,
      Point2D.Double sourceLocation, long fireTime, double bulletSpeed,
      RobotState startState, double attackAngle, double wallStick); }
MovementPredictor { public RobotState predict(RobotState startState, double distance, double turn, double maxVelocity, long ticks, boolean ignoreWalls) { RobotState state = startState; for (long x = 0; x < ticks; x++) { double nextHeading = state.heading; double maxTurnRate = Math.abs(Rules.getTurnRateRadians(state.velocity)); if (Math.abs(turn) < maxTurnRate) { nextHeading += turn; turn = 0; } else { double turnAmount = maxTurnRate * Math.signum(turn); nextHeading += turnAmount; turn -= turnAmount; } double nextVelocity = getNewVelocity(state.velocity, distance, maxVelocity); distance -= nextVelocity; Point2D.Double nextLocation = DiaUtils.project(state.location, nextHeading, nextVelocity); if (!ignoreWalls && !_rectangle.contains(nextLocation)) { adjustForWalls(nextLocation, nextHeading); } state = RobotState.newBuilder() .setLocation(nextLocation) .setHeading(nextHeading) .setVelocity(nextVelocity) .setTime(state.time + 1) .build(); } return state; } MovementPredictor(BattleField battleField); RobotState predict(RobotState startState, double distance, double turn,
      double maxVelocity, long ticks, boolean ignoreWalls); RobotState nextRobotState(Diamond robot); Point2D.Double nextLocation(Diamond robot); Point2D.Double nextLocation(RobotState robotState); Point2D.Double nextLocation(Point2D.Double botLocation,
      double heading, double velocity); RobotState nextPerpendicularLocation(RobotState robotState,
      double absBearing, int orientation, double attackAngle,
      boolean ignoreWallHits); RobotState nextPerpendicularWallSmoothedLocation(RobotState robotState,
      double absBearing, double maxVelocity, double attackAngle,
      int orientation, double wallStick, boolean ignoreWallHits); RobotState nextLocation(RobotState robotState, double maxVelocity,
      double goAngle, boolean ignoreWallHits); double escapeAngleRange(Point2D.Double sourceLocation,
      long fireTime, double bulletSpeed, RobotState startState,
      double wallStick); MaxEscapeTarget preciseEscapeAngle(int predictDirection,
      Point2D.Double sourceLocation, long fireTime, double bulletSpeed,
      RobotState startState, double wallStick); MaxEscapeTarget preciseEscapeAngle(int predictDirection,
      Point2D.Double sourceLocation, long fireTime, double bulletSpeed,
      RobotState startState, double attackAngle, double wallStick);  }