diff --git a/atsc/tests/csv/cpu_utilization_no_headers_only_values.csv b/atsc/tests/csv/cpu_utilization_no_headers_only_values.csv new file mode 100644 index 0000000..accc16d --- /dev/null +++ b/atsc/tests/csv/cpu_utilization_no_headers_only_values.csv @@ -0,0 +1,2854 @@ +60.486139011651275 +65.44663767146203 +68.66631313800875 +60.99319727891156 +56.17527173913043 +53.807848084456545 +52.31012876127522 +35.62985477879095 +37.19002740458525 +34.84838298 +33.60759917051308 +44.19748097258705 +36.09307359307359 +34.67887455724119 +35.71475909603022 +48.76137344756592 +37.707573916565416 +34.58996493121122 +46.48191956742143 +44.41222094827005 +46.316139767054906 +47.09473966720344 +36.95083506606748 +35.42657998793647 +48.01377118644068 +38.17094713955701 +34.37643207855974 +26.11023405861761 +21.30729481 +23.96445750935329 +37.30611696770295 +43.96847848050111 +36.69335845501649 +37.55643911314779 +36.19338557577368 +23.81870140227288 +35.65270106425973 +22.84139214 +26.70439234707626 +21.02712526081982 +21.53653224209623 +21.156947057242682 +25.81049851436118 +22.219263795513548 +21.96208846025939 +22.53635992931902 +19.77565160013197 +21.95712077424558 +27.08235766374523 +25.58124174372523 +20.18625217740855 +20.94590087385765 +21.25181950509461 +22.14171762829035 +37.76344657934978 +45.50954557676795 +41.231195566112426 +46.377883903948344 +34.29653248306098 +32.19118142039717 +37.315024663378225 +25.59994681911853 +20.73656270736563 +27.43291950340408 +20.63555114200596 +18.21381142098274 +30.620569747224817 +21.22963741460851 +20.70415846957466 +21.64493480441324 +23.065456023851468 +28.92965553649202 +25.725806451612897 +21.142473118279568 +19.79298831385643 +22.04687708083633 +26.79917294737544 +29.436450839328536 +24.18104025 +40.60710957262681 +20.35392229981694 +22.03627150286705 +32.17867511 +26.096299778389632 +19.43680858196447 +20.32745758235954 +19.039746048541762 +24.4175898 +34.222784136278946 +34.10919731329388 +38.467752793860235 +38.22957850298197 +41.51776615259189 +46.236056375659615 +48.114347067507715 +39.23056443024494 +50.03657158055722 +52.31752438614195 +36.55439721999465 +36.15706597568268 +39.24971630732261 +36.99751694517147 +33.29335731894197 +43.38666666666667 +42.50584697627798 +42.986916141278556 +31.782282479926288 +22.66353572626635 +27.19292367 +20.786928976325438 +34.87138155685405 +40.84005376344086 +39.432387312186975 +36.17666891436278 +37.57763975 +42.70142491299494 +21.41298417894163 +22.276476410425598 +31.93790220924832 +27.70429060632512 +22.47681763 +22.26557244719494 +35.286311459093625 +26.052968528876608 +30.853682879765792 +32.66666666666667 +24.129731157936458 +24.15926822706484 +25.447329476658147 +26.376695929768562 +29.097347497828558 +22.50368583299826 +20.786367855722048 +29.71688641991835 +26.363757317722193 +25.14576271186441 +35.30390786232608 +40.011906336817034 +39.39886271324127 +39.47792242651993 +44.135122504840105 +40.99169087347159 +32.38830441 +24.74517167381974 +27.41140735740803 +36.91883902176834 +25.10621348911312 +27.30720606826802 +26.944444444444436 +25.381358779651908 +38.260459475847206 +41.15951742627346 +32.933647692825865 +29.83725136 +28.263221966725283 +35.587472571314585 +34.71244521184752 +41.03668798384382 +29.36147475287203 +26.94425789120215 +40.01467938880363 +49.44186046511628 +53.80097218 +49.68632371392723 +52.64186548052297 +50.88970343218927 +38.34000135620804 +43.223908537808384 +49.81630153762417 +27.00262750117901 +27.50083194675541 +27.219538744132247 +31.68099140515691 +39.55527933153788 +26.05814739688979 +26.094219846308047 +21.58046555309586 +34.84900129524848 +31.306502377285213 +26.586470230452118 +25.58685446 +27.18628632650328 +36.843167597389495 +39.59525756336877 +49.02453946026783 +49.18165285916347 +33.493249263244465 +34.78144811478145 +26.324659565862206 +25.61658445540595 +30.28532608695652 +21.19064962585259 +21.207874541207868 +32.79602391026933 +35.82693085321472 +41.37585238668271 +37.07464694014795 +37.21776639482375 +34.132013201320134 +46.734555329260004 +46.84457982915039 +39.53835709436524 +36.65958012224289 +36.50531598758502 +35.36992840095465 +30.10795681727309 +44.76462386295731 +37.69514237855946 +48.81235154394299 +46.58610271903323 +51.05228325612177 +48.15459843258088 +52.371202113606344 +61.458474004051325 +49.65328710494733 +49.87977558108469 +54.95854063018242 +63.021640935751364 +53.21765722643266 +61.60167037111874 +35.57996899642785 +37.143428419088245 +32.586287158342756 +41.311961206896555 +48.73438856608562 +41.78422412 +36.427850655903136 +37.19288900725747 +42.96404211641613 +57.68622280817402 +53.098124195842075 +52.26154364678126 +49.01474530831099 +54.05278670953913 +45.73539288112827 +35.32377919320594 +35.006578947368425 +46.03695273798367 +36.82475613858056 +37.13409348536374 +39.27639938473885 +49.68041445199489 +42.20006646726487 +40.17384218389244 +38.915694947058036 +41.75581706338593 +52.075165607678784 +50.456940831165376 +40.57173533753859 +35.02558577969297 +40.18215912135012 +52.95612627073301 +58.64218216 +53.43331764072903 +48.316712402114995 +50.83450633420471 +54.37479270315091 +63.553834857486144 +46.21854485776805 +42.85230810883985 +47.26942970376839 +41.207526736158115 +35.52765524261961 +38.02713848609818 +33.76570733684637 +31.45962525838501 +52.80914069366507 +36.13241825 +33.04115088658414 +35.042111545858475 +34.93238242615892 +32.870122928915016 +42.060397806119084 +43.20820039372751 +39.036823395264605 +35.851851851851855 +38.36165873555404 +45.68090787716956 +39.85813667985268 +36.00215299737603 +43.21259422320059 +34.65829380720155 +36.57957244655582 +33.11640879208447 +31.45511255763493 +32.82703245232519 +31.44505638604773 +21.522111758656152 +22.13945372793772 +28.923180140892317 +34.66495714960524 +29.248699545664046 +23.60378634212306 +18.13502276776876 +23.09821127 +18.46430234879233 +21.980595516895278 +19.96267413 +30.97084782 +25.10418066944482 +20.00936266969839 +35.34952566776559 +29.81247100921079 +25.17355260497405 +21.169099513430652 +34.92754565 +37.17080511662904 +21.409503470368392 +23.25921981094395 +20.97596504005827 +22.72696727370472 +19.84461857879579 +31.703260146373918 +33.055720801110446 +33.32668660684613 +34.97022813942597 +35.15289699570815 +48.34773431831673 +37.36874195515209 +35.503077334760505 +39.11019485269668 +52.91345898593045 +50.37819420783646 +45.80228845130389 +32.78732366 +33.295401298614365 +29.578305264553773 +36.18214595713427 +40.21753726332751 +33.70913942628419 +36.16545934601584 +31.95348837209302 +37.49916683330001 +42.32495812 +33.68399757 +21.11274378840502 +23.019422011613162 +29.15920100869334 +45.94486081 +47.07108749747797 +33.54696575205287 +31.73411953899759 +41.02359056377449 +22.828567592965502 +18.17155006311873 +30.88410991636798 +35.68500974265941 +37.12748065926673 +34.73145440042542 +34.767971483266216 +37.06009745533297 +27.660146534919672 +32.5992369 +22.658834649922362 +21.70087976539589 +21.788379530916842 +22.53679139444334 +27.55558523068705 +22.13990121479108 +34.60972017673049 +19.24048949188614 +39.57487922705314 +37.26411880918319 +34.699343779295575 +21.359417773920008 +25.20244914 +27.68452983 +29.75707154742097 +24.3795329 +22.274060250599838 +34.10439708659293 +29.122807017543863 +20.93487814622453 +19.174645097391878 +31.70421024403325 +24.08554867079752 +30.84798275745942 +30.50656411616496 +42.838770813591445 +34.74747474747475 +37.83599399645245 +45.82115333510497 +39.386307906421905 +39.94904116937106 +45.51403130059363 +26.68790672451193 +20.86910579844142 +21.21068650659452 +20.01704694 +30.84603607801371 +23.44431232659532 +23.96895038812015 +19.38721254818556 +34.82012478428249 +32.57348530293941 +26.91490774 +21.863701480319257 +22.71247258954083 +35.23923763827802 +37.49750548792656 +19.69717362 +20.56539916384631 +24.81531229 +37.84676354029062 +33.83318956937164 +32.76707177868797 +35.17828632251197 +34.98411016949153 +44.183845893883074 +35.24345809870818 +24.30740543420352 +30.76513285 +51.190875545119084 +39.240676147035146 +31.91475235692471 +33.22814556197126 +34.89415023412254 +30.22724216754068 +18.15109343936382 +20.97943974981702 +22.99775696002111 +29.18175235336713 +32.909613969358396 +22.64340825226434 +21.18661054319503 +22.67031062524997 +26.69237930575874 +34.66869060190074 +25.19895673109075 +13.85002983491348 +19.43430656934307 +18.32623538159941 +22.059809574896068 +25.27326929446837 +22.99009900990099 +17.997584216883638 +21.049823250850398 +29.932468220338983 +20.52 +20.31937964119077 +41.424332344213646 +23.54715463502916 +18.20072454045351 +21.881458763917593 +21.53169707310671 +18.249883013570432 +23.32113144758735 +29.97060395510422 +34.33513657917585 +34.91112442580387 +35.285406569736125 +34.29829242 +44.45765622935659 +53.20042672356314 +40.45776058 +38.07283967208709 +34.79069767 +50.84262208067941 +41.31408328320299 +31.22733986840338 +31.797909871530322 +40.900039824771014 +44.88556749182625 +34.01611820013432 +34.40860215053763 +36.75643485740753 +32.50166333998669 +44.98946536739531 +46.733119410118114 +24.14351227407607 +24.68490211853044 +22.32809168443497 +23.16928354664204 +33.22167883700677 +29.96464545393903 +28.36519182 +21.176784167388547 +16.30019749835418 +20.015765617815152 +27.953852274234194 +35.46945852227261 +36.41063515509601 +38.69091395333289 +34.19411093970085 +28.967475826627897 +35.70355860267711 +22.36564984034241 +24.60502633157789 +23.37397034596376 +22.41693064635708 +29.26583975863225 +39.94639866 +36.33333333333333 +33.03994132159765 +38.57947844319224 +40.53142702994335 +36.56751493990465 +43.76506830967051 +50.48543689320388 +48.98703404 +49.71836520827875 +52.44043174258367 +49.91096748664512 +51.367468640756734 +46.47172708458509 +35.58664078709591 +30.059069489613062 +33.61670794564563 +33.88996075 +35.542728237791934 +48.30723939515589 +36.79771550006641 +39.08222563623004 +44.96476009758742 +35.766666666666666 +31.08512193501229 +27.06913996627319 +23.63337713534823 +22.93230540339487 +20.32438926712054 +31.04180491041805 +30.34334475576161 +22.11078639744952 +17.69195036166965 +20.69943912900033 +29.47957619777437 +24.26090414954262 +24.88802727455044 +32.60811173784582 +38.670654702558984 +36.53769445552453 +38.686773059237225 +44.49394866338609 +39.43362361231137 +36.670010030090275 +39.78393612024425 +50.367136336574724 +54.624664879356565 +48.82478632478632 +48.72632702053881 +46.63865546218487 +37.27703921437638 +26.413065394179718 +30.469637250317323 +33.98622902600441 +22.457942030943858 +24.41049485220857 +23.73957919809448 +27.723898067018933 +33.299839228295816 +27.600905821233518 +28.06345009914078 +26.582709326072163 +22.93351152689609 +31.98318430535166 +27.673671529915673 +26.77456181586193 +26.05605471369183 +39.60537021969081 +41.43482654092287 +37.40596453519613 +41.39081687132942 +55.06904681711015 +44.09576626538618 +36.537683699609005 +46.23255813953488 +42.189388851578244 +36.65456501277397 +34.58524723047825 +35.52454153182309 +49.191472510065346 +51.28568536140919 +38.10852095370924 +37.74879423952177 +37.00243704305443 +43.84137792910074 +49.41121370266292 +38.83952255 +34.38598863943738 +34.06535603918732 +51.61354581673307 +26.97154471544715 +15.350671926188411 +29.97287821657736 +23.08156289792909 +22.2304883 +23.61259338313767 +20.12629316135967 +19.54524423293013 +28.948069241011982 +46.901530850992714 +37.79516934286871 +34.73642278581862 +33.676975945017176 +41.59095497678175 +34.73620212119165 +23.7945982 +20.90604026845638 +21.040299906279287 +27.41170268845546 +37.530479544838805 +23.46870392708752 +27.52132124001624 +25.26709401709402 +32.73733216 +23.190921228304408 +26.41496825927163 +38.582357321779156 +27.435587761674718 +27.83457249070632 +21.46809787319155 +20.401292755184492 +20.87394518218094 +28.349892588614388 +21.388741370154012 +22.161983471074382 +31.26464484166834 +35.051338836319715 +44.17202306010205 +45.07705767548287 +37.56539235412475 +35.79571971464764 +39.99867444326617 +49.03717571543193 +49.46928486135067 +47.58528428093645 +43.49206349206349 +47.73498304 +51.20341356090407 +54.26039078761834 +21.66666666666667 +26.950023353573098 +18.52466635681562 +32.65210084033613 +38.59954479 +33.41099720410065 +43.33244610061219 +45.153789942204206 +36.27246415830921 +21.46649640432825 +22.25023218787316 +20.161073825503358 +22.83053757759873 +18.57543765869304 +24.13815876370361 +35.24880708929789 +32.87774208979703 +25.25266046449368 +33.69115882117616 +22.95028630921395 +23.60029788098301 +28.96965655218406 +39.02143961287721 +37.65250033516557 +31.318463771941403 +32.69749258560259 +30.563559605977346 +22.689132040008058 +16.51907583727279 +24.18043710021322 +31.11972207375735 +21.55712571657112 +30.87953479151523 +26.18806192117894 +23.29117330462863 +20.490261920752182 +41.72652211854736 +35.274842851410995 +43.77011802575107 +36.90940170940171 +34.68679043675705 +30.932458665238638 +39.73851030110935 +38.59073875802998 +33.31976665309999 +31.121685927940177 +24.94380536824012 +31.71501477 +36.10472195913949 +37.22351378279641 +37.091503267973856 +35.33704883227176 +39.81866521235258 +46.70972951150585 +43.77892730737816 +34.98701471665446 +39.60668501241694 +31.48490043518396 +31.48490043518396 +41.02271200107512 +45.88093806374023 +45.88093806374023 +35.089610564613935 +35.81292948161985 +34.42698100851343 +32.201309328968904 +34.779100262255405 +34.76925131904094 +45.32049153105281 +53.57094821788837 +45.45333864 +41.32019438444924 +45.08928571428571 +41.98363338788871 +62.30625334045965 +58.43305785123967 +57.33758307337583 +60.8169239 +59.14755402359803 +60.43747959516814 +67.70488480508075 +60.63496298272527 +59.42711135018827 +59.42711135018827 +61.44005358338915 +58.411494711634404 +55.71884559116904 +59.04679606487636 +57.547611092549275 +59.91642345449721 +67.12928653237216 +33.557449074690446 +34.60714763753179 +34.60714763753179 +32.67214319107727 +28.482992744458503 +28.482992744458503 +31.182147165259348 +39.10188379 +40.39721678038235 +41.64715327490466 +40.869623746382175 +41.95261166788345 +41.14308877 +35.11280167890871 +43.067966422962364 +35.36811440677966 +40.581567939549316 +49.891642963564955 +45.613220069020436 +45.919470341845695 +53.94454862041253 +42.43100649350649 +38.77878950187467 +47.2276232 +32.68588564029169 +40 +35.94150155007413 +43.35788325150027 +44.00269541778976 +36.109054190508246 +34.29368029739777 +38.58134987526128 +50.932798395185564 +46.090007421901355 +32.35489440828795 +32.923665164550044 +37.30455699585728 +36.69993346640053 +35.66580697705986 +33.71920850720151 +30.148084202138257 +31.691042663611242 +34.56404807756159 +36.03460801796447 +35.29649868447683 +44.37909370405026 +40.19509587759738 +26.01365187713311 +22.97784303256807 +32.05024855568991 +36.45581520279345 +35.14989920010405 +40.629836484758755 +39.97693507903127 +47.92586645256256 +28.34533351446814 +25.19881385631487 +28.869901875709232 +33.29504763191676 +22.12366121295749 +27.31948298030723 +24.63671510465271 +30.10694827470236 +29.93750419998656 +19.56696070569366 +16.36303630363036 +29.365184988022357 +27.17894458404973 +24.61590070446159 +20.66599394550959 +31.03586188508199 +31.88328912466844 +25.41496598639456 +26.10714766455781 +24.67326732673267 +27.57547042100988 +45.90098482832047 +31.053129647154247 +21.58757664622767 +21.11368909512761 +20.585483224167888 +27.528275679608438 +21.86555638 +29.72882936904524 +21.55401809473124 +28.81627209 +37.70788626609442 +34.255529877847465 +35.05364661143556 +37.22627737226277 +40.57863999462979 +37.66190188577948 +35.88813402809841 +36.098609525088996 +43.95530875761022 +49.36181469479532 +49.22664881151657 +45.90822440087146 +51.16648992576882 +46.92813113865745 +59.59981262129425 +62.45946124826261 +51.89856343157753 +51.449420901118025 +47.26509612780937 +51.856319528213376 +51.59321124304018 +73.33952008484688 +60.616136255682974 +49.69623329283111 +46.011576076109364 +49.780941949616654 +42.17691637046476 +37.91560956068901 +33.27280065 +44.853236831523915 +46.12977826146103 +36.30760986066452 +37.19086021505376 +37.363080438142596 +35.79670512906023 +47.22148009617954 +50.08126777732629 +46.19241826569499 +47.40407791023386 +50.67929188966653 +44.51406479136115 +39.38476036618201 +38.62369101047192 +34.28629086506121 +36.232664602127365 +31.58320960993386 +45.22458786624841 +39.28138061210732 +42.51767081790643 +34.34208772163712 +33.88624001074475 +37.9434998 +41.10879364865774 +42.89370874309578 +44.129419613075385 +42.618290123874644 +31.82182449579271 +44.55917394757744 +29.52880285003697 +45.54886211512718 +38.87951400607492 +36.72069406147017 +32.28084470700075 +33.78178393649939 +48.87043189368771 +48.77589454 +40.69610879224451 +35.39546872880206 +34.339747843397475 +42.27260531258385 +36.18319586937571 +32.66088359895098 +33.47785485592316 +36.52971092077088 +41.89736664415935 +41.89736664415935 +49.08722109533469 +36.29191321499014 +38.32791884903534 +38.32791884903534 +45.27709071461996 +46.22025832766825 +38.90647094471753 +38.47301328993762 +38.75397415950754 +40.073279956574844 +45.59799539482595 +38.03548539431964 +38.14989871708305 +41.73942243116185 +42.316623412102174 +39.54475048824837 +53.430407975862515 +52.61909602222674 +54.58445040214477 +64.06462123269074 +64.06462123269074 +53.687971952535065 +51.807802093244526 +51.807802093244526 +51.807802093244526 +51.807802093244526 +51.807802093244526 +51.807802093244526 +51.807802093244526 +49.52978056426332 +56.59004352557127 +51.254264499297605 +48.10083806434171 +51.04173645072687 +49.97971602434077 +56.163734776725306 +57.738896366083445 +58.66365441226809 +39.18223666395884 +35.34442440034743 +42.08784389436668 +37.268722466960355 +41.18979415095597 +49.40983830251757 +51.09665302837212 +39.22090326101787 +35.84058759521219 +36.421832884097036 +44.18899953217938 +44.08376253727297 +44.08376253727297 +44.08376253727297 +44.08376253727297 +44.08376253727297 +44.08376253727297 +44.558507783145465 +45.25078584119175 +44.254858148825235 +51.3671875 +44.62227045 +40.969044414535674 +41.304048471495456 +40.13157894736842 +53.83052225157488 +40.16890281277668 +37.31045490822027 +34.58672086720867 +58.986673882161945 +66.96249833177632 +61.98671096345515 +64.63950266909926 +65.49518615767857 +79.50915465523958 +74.15551085524034 +61.548378341701714 +53.856989535819686 +62.40905416329831 +58.72414022483869 +55.830243098475485 +52.474029524330234 +52.15139442231076 +51.72295442 +48.50563782094824 +50.77615751629595 +63.10699173886762 +57.09787633147987 +58.347849390325614 +58.347849390325614 +58.347849390325614 +50.26401978477375 +51.13435674500747 +53.36010709504685 +59.18435233850043 +51.35725003410177 +48.771013327975346 +56.349259086982514 +54.25416610215418 +44.59104678559408 +54.02556331532481 +57.82784129119032 +58.96522140830199 +50.74385728710872 +49.284898945813474 +47.003367 +49.03405696076479 +60.076252723311555 +57.54885723749587 +50.57633025063664 +50.06292640922037 +46.546326517018585 +49.10665575559193 +57.273144806771214 +60.806255898611305 +53.83994076866124 +44.64164747324211 +46.507654905052895 +46.38795986622074 +46.96031043638097 +52.05990016638935 +58.092061374249504 +48.29733938121996 +50.39018208497299 +48.04585372393913 +53.669724770642205 +56.69660812441346 +54.399679294447786 +53.80830412510112 +53.80830412510112 +53.80830412510112 +53.80830412510112 +46.89854682454252 +41.68616701210136 +39.62634535977797 +36.40274230407313 +35.70464362850972 +35.50093758371283 +47.88928713659896 +47.13050582068214 +37.40411377367456 +43.45424292845258 +39.35300871209563 +35.43980079 +45.00235579188261 +44.42262106332543 +50.08814755 +48.08102345415778 +49.88662131519274 +54.26648721399731 +46.71300893743793 +54.43674412284278 +41.98303715670436 +37.63788001076137 +40.42738478027867 +39.89651416122004 +45.88976800321845 +46.354976015134106 +41.98835886800027 +52.548625083836356 +39.53504043126685 +39.17806355038443 +42.34547276979619 +49.05357501 +49.52192323 +48.31483081832081 +59.736397431564725 +49.52916469073911 +45.15845665247652 +37.93890567304465 +41.06365614798694 +44.62981574539363 +52.2682976 +38.31756618798067 +39.64472878241339 +47.48674585598282 +55.30825425001707 +42.91596355045562 +36.13371304583672 +39.73980686695279 +34.43636610722294 +44.582521663196076 +64.81700895208003 +57.595149882115194 +62.34407128169978 +56.451502965033065 +54.55348647546554 +63.33223358627515 +66.24126813541108 +67.91932773109244 +63.890537421694695 +59.87578487578487 +52.167756725777096 +59.85445724681625 +41.75672884972809 +35.11024468943264 +37.678180733275866 +40.48305201042953 +50.41032428855063 +61.91760501651945 +66.31117111036112 +53.39262852907486 +58.89763779527559 +56.19967793880837 +56.524941412788756 +63.80490398033092 +52.663170967296814 +51.07851018220793 +51.76919983916365 +47.57967729030537 +61.64134964376932 +65.09258025842547 +66.61782336485946 +63.78699031774172 +67.38246082027342 +72.85903375 +75.47132757 +78.25263727346497 +67.71917808219177 +65.24618678084025 +66.93850267379679 +70.32138606004497 +61.59459459459459 +65.10224606101241 +65.96147347076715 +62.53968253968254 +70.85075797 +75.82476651212792 +75.82476651212792 +75.82476651212792 +75.82476651212792 +61.01271098145447 +66.4716169 +71.06872739230516 +74.37487224909724 +67.92328042328042 +74.95237469618341 +72.18300298669563 +61.67797407 +57.03172978505629 +47.64321004139404 +52.410732297760745 +55.00470240494424 +45.57073302677847 +50.51017005668555 +49.37316617764737 +50.675030683212874 +55.82980412916887 +62.91591046581972 +65.16554526680434 +63.45539280958722 +64.66978954 +65.72245676154161 +49.08534512070724 +57.38261738261738 +43.85296119809394 +37.76459484966968 +36.34749441010128 +38.388144539179855 +37.12136613132751 +35.378502155172406 +35.00366007852532 +37.402201299562385 +46.02073794775114 +38.523047977422394 +35.73678214836159 +34.52746958962706 +40.01340482573727 +40.01340482573727 +48.332097850259444 +32.49780420241876 +41.683353357362165 +38.63406066337904 +31.79823080559119 +32.64110756123536 +32.84710605553697 +33.22717622080679 +48.25025092004015 +52.49618776105549 +52.520390426527605 +51.84321045263649 +47.69106130164731 +30.581325502235867 +46.04050326313665 +40.12942824738141 +33.27097808658471 +38.26409102937285 +30.168050212593638 +34.95178140905438 +29.530156165858912 +34.47103526431571 +42.25286746668435 +34.89959839 +42.64420827484794 +37.5369723 +34.202350398487106 +22.01544248663631 +21.64119601328904 +37.78460306 +24.66724633803759 +16.08214428590479 +19.19456066945607 +20.34626225 +15.68251026082351 +15.28283162421436 +22.38408833898756 +17.43725231175694 +24.181327007972587 +31.552811703127098 +34.41523605150215 +42.82174903 +46.92859992022337 +30.943143812709028 +34.20895125357452 +30.98106712564544 +26.41030776420322 +22.54758418740849 +19.83668591913961 +24.16874753581285 +18.544679149730133 +21.00946792905721 +16.502068597357532 +29.654945777193557 +23.75831709120237 +22.620736237757512 +25.14499033397773 +19.59436695640455 +21.48571428571429 +25.715437323659813 +33.12583668005355 +34.213354830041645 +30.53005428 +34.10346894 +31.09371891 +30.03899422 +26.81043663471778 +33.1 +38.53583799626965 +47.30764066066873 +37.18378342860898 +32.62343354105321 +21.64294867471505 +24.68857672939306 +32.15514958962139 +21.73032797948441 +17.54432742301027 +19.937487530757462 +18.685558438102838 +23.89202256244964 +16.96505823627288 +30.68592057761733 +28.82632831086439 +21.27297481279782 +23.72609335294904 +25.92442645074224 +19.42607775720709 +36.11037934668072 +37.563762497449495 +28.06356046323727 +36.30980105130082 +21.41451164053485 +32.94615281321337 +34.68578603052931 +23.63270777479893 +24.82498653742596 +25.18718381112985 +23.94691667767067 +33.492533297457285 +27.083615666079407 +24.406104844061048 +28.42714785887423 +40.49067583652956 +37.081291535208436 +36.97541259683395 +37.26527015117619 +42.41773002014775 +37.55874760045012 +44.679128146298666 +33.53389490573606 +33.63974315647178 +36.69486445 +34.658900716341975 +43.59774716699464 +46.41222401723209 +42.46117554550816 +36.76260461318636 +36.86672904691886 +36.73578954432588 +40.95726951536564 +40.95726951536564 +50.124302895921524 +44.02350081037277 +44.02350081037277 +35.30753236300221 +34.48160085952189 +35.86591428187559 +32.56941676630796 +46.55104454079622 +43.50271002710027 +42.11298606016141 +39.53550453817405 +27.62071049627292 +27.626847782660814 +41.736060222503504 +27.42011436 +24.03318614 +26.37039020145907 +19.51170835550825 +32.26495726495726 +45.62019613040021 +45.82550336 +46.435039238044126 +40.29132700788454 +43.48115595 +46.15801599132674 +36.08828207847296 +31.04425256341069 +19.106234947819107 +32.46021220159151 +37.30815428 +21.8247347 +19.88784298017224 +20.71327825911747 +19.96553095585311 +27.48933377092222 +27.48933377092222 +23.158888589155648 +19.02820698270761 +20.93833780160858 +22.31525784157363 +30.684840425531913 +31.03610253657227 +25.57229115519873 +21.667907669396868 +24.299873611388282 +32.16358663019548 +34.69182895001004 +36.752941176470586 +36.34086909435495 +44.12963581690611 +33.37951052180223 +38.08656957928803 +21.52108934 +20.79187817258883 +22.640241854215652 +23.69263607257204 +27.900478978179883 +32.11033566 +33.100171571862205 +41.07622114868492 +22.10019659684089 +37.78715424285045 +36.24941522421974 +38.941728064300065 +36.76421571895207 +37.137330754352035 +48.64082895976315 +42.86954199492589 +40.35455714189052 +21.53087735660516 +31.65064102564103 +35.50180892402519 +41.88798493915148 +31.85888012829079 +28.86281829089455 +22.70759805553706 +28.24302134646962 +31.116879659211932 +35.25405621953662 +22.74989909861429 +24.17838811 +20.956153897804338 +26.11481975967957 +23.63806719314683 +29.450474898236088 +22.20369505769359 +29.61087420042644 +44.80021346141018 +29.75741239892183 +38.96624195455143 +36.12269608502623 +45.93449458605152 +53.694288544073956 +60.55862906490353 +48.44778302200359 +48.44778302200359 +47.71081134959133 +46.96767298958055 +50.46380933035412 +43.58356750970159 +40.521216171065824 +40.58613967869866 +48.62531545 +39.49875025332703 +40.03760660801827 +37.31465664502904 +39.10178836 +43.27321309285237 +49.01735665563585 +37.69933215210577 +35.48408755203438 +33.73799359658485 +44.42885771543086 +41.756558796111335 +35.614487249050455 +40.735068912710574 +40.873475505893566 +33.54145686 +45.12333712146534 +50.35152326749247 +40.92591346477357 +34.74265929822225 +38.27242968802191 +34.86592588 +34.24593031077627 +35.58582740571735 +40.212364015373595 +50.04080522306855 +44.33943427620632 +50.74138392 +46.56885628542848 +52.78113663845224 +61.39823717948718 +49.63430181842582 +51.47440591093656 +59.19329491880566 +54.388006571741506 +47.85757392878696 +50.75247524752476 +50.75247524752476 +48.72585285655569 +51.160477453580896 +54.49190982330242 +42.93542849597253 +46.17875211 +48.47961758066658 +61.065301236866596 +62.36602903 +34.34479054779807 +37.05664373 +49.913113220157726 +39.525850522368074 +33.547394474546785 +33.547394474546785 +33.547394474546785 +33.547394474546785 +33.547394474546785 +33.547394474546785 +37.13522537562604 +40.76119905692152 +37.64059989287627 +45.04137746930059 +48.27310840487123 +47.15893862235326 +46.54344537262382 +47.30805559303738 +50.17761989342806 +41.154799383749754 +41.18358299 +47.748830995323985 +46.61136013915836 +51.371588047103664 +39.97438835344072 +37.24435590969456 +35.52126109418466 +36.50857449 +41.46140085317187 +36.04321404456448 +35.15477792732167 +30.060862662079916 +30.060862662079916 +45.56038808966209 +45.25203580321691 +37.84554778238131 +37.21323678689856 +35.44177375324589 +38.18365287588295 +41.07466291004226 +51.06761565836299 +49.31409343859195 +50.37751677852349 +35.39974056120707 +34.317691477885646 +41.96368071554411 +34.06145624582498 +36.734141222666025 +39.29097976142608 +36.12494032599059 +37.56123750083887 +27.06761853448276 +27.06761853448276 +27.06761853448276 +27.06761853448276 +21.83423640377283 +26.22917650232684 +26.22917650232684 +26.22917650232684 +26.22917650232684 +26.22917650232684 +28.08988764044944 +25.17280719414804 +29.29394426580922 +29.29394426580922 +29.29394426580922 +37.94034282629235 +40.82730230396388 +50.739506995336434 +50.739506995336434 +41.848558340070056 +37.70755222281735 +37.70755222281735 +36.67318454588362 +41.06218487394958 +32.75277853076715 +23.62763656030287 +25.15811197656614 +25.079322216971576 +31.760058914105908 +30.24331389503318 +28.145074946466806 +23.16496972116856 +37.03877633167852 +29.91667231217397 +20.09816927566994 +23.00074109007613 +21.71229200214707 +20.38245961094626 +28.335543766578247 +26.51993021070997 +44.46682782702122 +27.698053862787496 +39.46630174478276 +30.25589225589226 +30.25589225589226 +30.25589225589226 +30.25589225589226 +22.79179280188362 +28.73057167633914 +23.477794895840308 +24.90047770700637 +25.14662757 +32.222295996281794 +39.068581398469995 +35.86261980830671 +36.53324512074099 +32.882547839610524 +37.437994369218394 +43.20592355413248 +54.086991650956094 +51.51696606786427 +51.51048295264251 +54.25772921108742 +53.499565478975875 +62.24344645397277 +44.12465128937878 +33.990246509452874 +34.27255124524271 +34.80278422273782 +31.21281773931855 +43.50019917673616 +41.73836461 +35.39929281 +35.45784591 +36.53846153846154 +41.84114324 +48.03478729859098 +45.30416221985059 +34.44762602383965 +48.86685552407932 +55.75308968343137 +49.67188964778358 +45.71600965406275 +41.10828196 +29.64016404286281 +18.85950303111052 +33.79837681937085 +23.17180022915684 +24.37945603379984 +25.15188335358445 +32.03040904198062 +29.08440439909898 +34.53328873 +29.54484244546189 +22.914072229140718 +23.79799609979154 +34.99865519096288 +25.226908702616118 +28.30554997656825 +21.81636726546906 +23.64721485411141 +18.57865318072931 +26.391683433936958 +20.440463362068968 +36.27714716882094 +51.304522344126305 +37.00536886060847 +38.71788009 +34.907625125965744 +37.36131533217484 +40.61413293091005 +40.61413293091005 +48.82452004041765 +30.761000401230444 +36.03982892274793 +30.41024960169942 +35.97184407995219 +35.97184407995219 +35.97184407995219 +23.92756915675531 +24.50066577896138 +20.61654439 +39.50192078420983 +36.67909950712668 +26.947030067635442 +19.73001728953318 +22.29939312 +21.84845850331037 +23.052035589107582 +30.15218981 +24.53214262262788 +20.23156203988757 +20.20370124 +16.834791903266748 +21.20909151503033 +26.71735360810991 +28.82678583338891 +21.99747994 +23.97219463753724 +24.52326976930257 +25.385433280170123 +25.61033021723048 +31.364855143548493 +39.799172264061326 +36.87203157401833 +36.87203157401833 +34.09618573797678 +34.55490315178511 +33.74734325185972 +23.32827249323388 +32.22018598 +23.272849462365592 +36.64471031052561 +20.74148972025615 +26.15291262135922 +34.33246161067525 +24.98662744049211 +26.15996762881036 +28.35699246077566 +28.58 +33.60879706764412 +26.4063921 +23.83155317 +17.12754697009791 +20.84893048128342 +20.84893048128342 +21.07836570663094 +22.86689419795222 +33.19057815845824 +25.73719255333605 +26.84594953519256 +37.62641484160472 +27.00845665961945 +31.21622523183668 +37.51762099751628 +38.907096515283264 +45.598344790762866 +46.69629826190792 +46.49321266968326 +46.49321266968326 +46.49321266968326 +46.49321266968326 +46.49321266968326 +43.492829379439755 +41.183542612877375 +37.50164279 +37.50164279 +47.99196787148594 +33.43110459302713 +34.34837175506969 +36.33144002672903 +47.604750467040304 +37.50666311 +34.27011188066063 +41.54155495978552 +33.852191844608534 +49.1098021 +53.95345717926363 +48.397671773600045 +47.37299465240642 +44.12955465587045 +57.13812301 +67.62585169015016 +59.44796868673235 +40.73138298 +41.66441136671177 +37.273274881199384 +33.20734699290498 +48.719839142091146 +44.573485465905996 +37.145348447246626 +37.145348447246626 +39.09603004291845 +33.76926669780476 +34.34640304588872 +31.36684944176521 +43.69592497193052 +33.23321318916033 +35.0016818 +37.15608643 +35.78169339404738 +36.05909988425138 +27.745435300344013 +33.91350561349897 +25.56527590847914 +22.06851119894598 +32.46883795737837 +23.419078242229368 +22.50731188513693 +29.44058258854684 +23.84293617595466 +19.11337209302326 +20.55042185616714 +24.87432133521013 +29.035052645608424 +29.728461280590007 +25.20766345123258 +21.61892736093573 +24.079113293953668 +21.14620513 +31.85628743 +37.537913754450756 +42.11126770015435 +33.67374182352156 +33.67374182352156 +37.66741811430845 +23.41130340724716 +19.027694759912333 +28.993101618466437 +27.75838926174497 +23.74900186318871 +21.69978225367447 +24.94662396583934 +24.94662396583934 +36.98280494357872 +31.81575789894681 +28.52637229902027 +27.707290309306632 +24.10086533261222 +25.65226184858087 +22.52739997359039 +20.03610108303249 +20.03610108303249 +26.08551321205683 +28.000000000000004 +26.997482443354983 +23.66600133067199 +22.11399237 +23.74423115510668 +22.41038482 +27.84608227553665 +38.91718038059501 +36.082952362022134 +37.05246187949217 +48.16358943815763 +30.276770119575442 +23.759599332220372 +24.93812295136798 +20.37892481756712 +22.14729251518996 +17.465142404017712 +21.249748305255387 +21.05546943 +28.622445605449382 +28.622445605449382 +28.622445605449382 +28.622445605449382 +30.01867414 +25.29131355932203 +33.00053248136315 +33.00053248136315 +33.00053248136315 +34.0544172 +35.32886440565474 +46.74579887970125 +46.74579887970125 +37.63644992880873 +45.41622055674518 +47.09146830703397 +47.06632653061224 +44.71411749313097 +48.04454101032048 +54.91059514278089 +51.362314921235885 +51.35135135135135 +55.179363160016116 +54.49288847534228 +60.16622744780054 +49.08198264846325 +49.80229207157697 +55.78926546221812 +39.156297005332966 +46.15692287180855 +42.26474193109083 +33.68818218568926 +28.69138788123069 +23.47935917037825 +22.73478289604124 +35.49820883640706 +26.239710901425422 +23.912749864937872 +25.55398396982555 +22.43662252977577 +31.48160468365378 +38.16589800147049 +29.514706872181463 +19.11676145868183 +22.63074064242102 +28.36959405677899 +41.92794547224927 +45.95495679390352 +51.14988634844231 +49.68612261252838 +52.24127656756936 +46.630136986301366 +40.79239943 +40.15100444923824 +49.00419997 +41.908319185059426 +37.429537767756486 +35.46679176998861 +35.28391272436111 +19.677721315859863 +28.737630382455198 +23.38656460340504 +23.78913567032379 +23.78913567032379 +23.32930757 +23.38806567881458 +28.72103236 +28.72103236 +35.47789250728091 +37.44640943193998 +37.44640943193998 +26.11341447104454 +26.34963161 +26.93336901257693 +30.25520483546004 +38.74017845252364 +26.670733360444633 +24.46628482166103 +20.51647978253483 +20.51647978253483 +24.41852625901706 +25.232022434399408 +30.17258612647431 +37.34061930783242 +37.16908341093521 +40.648562087142196 +40.648562087142196 +40.32301480484522 +41.13197352424693 +41.13197352424693 +41.43208890663472 +53.229368850813195 +40.86282440175261 +37.82038345105954 +33.68470525043642 +35.68561872909699 +31.50345197399289 +23.40552750465054 +24.82827609203068 +22.20369505769359 +20.09752240379547 +22.33591383372602 +22.156563309209222 +20.70950469 +28.069474945098822 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +33.61128059114636 +24.77495633481123 +23.12360914424439 +23.58610534770096 +27.72038105460888 +21.34983431392439 +40.52843117875733 +40.52843117875733 +40.52843117875733 +40.52843117875733 +39.60422878828951 +33.06419324703056 +33.06419324703056 +33.06419324703056 +33.06419324703056 +33.06419324703056 +33.06419324703056 +33.06419324703056 +36.37520938023451 +39.80634749865519 +26.793163773381778 +23.98231239432956 +35.91699306 +34.21494261 +28.714285714285708 +26.731811793052668 +23.59369761984579 +25.014989008060763 +20.14671557185729 +27.44639637 +26.28563815614175 +29.56265487911058 +34.80310777608075 +36.11504007543612 +36.89977005 +47.847682119205295 +45.62344892346905 +38.532725321888414 +38.06780115 +40.823202959830866 +55.47347213 +47.55418372139838 +27.05171255876427 +22.85905143620574 +20.84302905391929 +20.84302905391929 +19.600185344542272 +31.32441471571906 +23.94479973073039 +23.94479973073039 +23.94479973073039 +24.61435726210351 +25.09385894341647 +21.990049751243777 +23.21092278719397 +36.9600107 +36.9600107 +36.9600107 +39.02178270747027 +38.05581519562024 +42.37142668515218 +35.00575529825987 +31.41241416453481 +30.44878245119742 +19.513665594855308 +34.72112080359503 +35.33150464976249 +45.87750692146668 +45.30386740331492 +39.831977597012944 +42.00487012987013 +43.51216261246251 +36.43936849177024 +48.03569050472766 +45.58485463150778 +41.24706671 +36.247478143913916 +24.23520063567739 +23.44757380386834 +23.44757380386834 +23.44757380386834 +23.44757380386834 +23.44757380386834 +23.44757380386834 +23.44757380386834 +28.897262990876637 +30.635531378532573 +23.4909188 +23.4909188 +20.08805362071231 +26.406752411575564 +29.591291572058232 +32.55166932 +37.45939361126151 +36.35939789529772 +39.88745226770282 +51.56072455049796 +42.046839041559494 +46.68584041201257 +41.74938378522417 +47.33672376873662 +44.67803781568161 +57.07716913234706 +59.76522971 +46.713193752077096 +47.55790866975513 +58.25515947467167 +57.77372015959965 +49.12421446717476 +49.02170999731975 +54.46246798 +64.82385186175546 +61.304259771822046 +61.304259771822046 +66.18969478175254 +65.27675028582958 +64.56973293768546 +64.56973293768546 +63.322589309696475 +58.85733377881724 +58.85733377881724 +58.85733377881724 +58.85733377881724 +58.85733377881724 +58.85733377881724 +58.85733377881724 +58.85733377881724 +50.13181910363011 +43.99569921376252 +54.24008447172177 +54.24008447172177 +61.884096675123516 +38.58840811965812 +35.23051815585475 +32.13546189299312 +36.61829227134661 +44.67335681531202 +34.57708139689284 +44.97347391041569 +37.60492824262118 +35.749500333111264 +44.14601473543202 +45.186179134518625 +48.78568101670104 +50.70628997867804 +61.581771212823746 +59.85074626865672 +62.61484566065173 +70.34377285723785 +69.57506327427734 +67.27067569361476 +76.32601125100456 +62.16634169300074 +58.712811171827575 +50.82794830371567 +57.886656431479864 +58.43704001070521 +52.01934209630185 +46.38292176939035 +49.28780617678381 +45.35405640785154 +51.09015104914223 +51.78618682191056 +81.1194324 +72.35777930089102 +59.33697020562316 +50.81464312495739 +56.11660943917054 +55.68878593813871 +61.48067203933889 +60.92131809011432 +63.42780026990553 +63.41016949152542 +63.43863996 +74.05076006160853 +65.29582015211685 +53.41301644327759 +61.92267088941673 +62.33405157433795 +53.34530138783401 +54.57647942119992 +55.20920502092051 +52.59828594749014 +54.50897714907508 +54.50897714907508 +64.87209382 +53.94872499828167 +53.48305540613233 +49.92423198787712 +40.12120377384478 +46.18742327104079 +49.10562470244168 +55.785907859078584 +51.326405032134545 +63.02261593181666 +53.66174738446615 +64.32066492392251 +68.19430485762143 +67.34192756292204 +63.751838481080355 +66.22268470343393 +66.18932365201022 +73.57311941 +58.46394984326019 +39.74393713588945 +36.77419355 +50.28364431686146 +56.327576902320565 +42.26144971853499 +39.67586627788703 +42.323848238482384 +45.78583061889251 +57.588231324650785 +50.281322903801296 +42.77694098315761 +41.42138278072655 +38.26305425409113 +35.5470327 +49.56671251719395 +40.606887146266615 +48.10759664774263 +42.363250496337365 +38.74253123302553 +38.99695019 +53.43911740670117 +42.70854578829288 +42.84836485 +47.56778577676108 +41.66378535370998 +43.19457757086129 +39.83377255219947 +59.01639344262295 +53.78100423472474 +53.46289022121149 +49.25801819052178 +51.512497473556564 +53.89274534 +45.43216630196937 +41.96645929131728 +39.87372177613067 +49.48648648648649 +45.04480043442846 +51.86481755756025 +51.256281407035175 +40.31929347826087 +40.01643385 +40.47361299052774 +47.98993265764234 +38.71961656966792 +43.03880440482433 +42.47935032 +40.69539335723466 +38.03301237964237 +51.77975907 +46.25137061403509 +41.70287887017925 +41.074907625125974 +41.074907625125974 +41.074907625125974 +41.074907625125974 +41.074907625125974 +41.074907625125974 +42.02587698055767 +50.84768659236744 +60.49222797927462 +51.51098901098901 +50.609088420476326 +62.25015041112374 +65.75233022636485 +70.9166895 +58.739700121572334 +62.49496441520075 +66.15710093496212 +81.02547138604037 +74.96954108569108 +59.53737149208113 +53.77537212449256 +57.54240221529942 +63.614196694662695 +62.45254880694143 +61.88061921178936 +51.548842738270054 +51.60988017939621 +50.813559322033896 +55.080102642346894 +50.16990621 +51.93004030880645 +62.365954002832666 +52.01457645764576 +38.87735326688815 +41.20677966101695 +40.04451639012546 +49.41370088459165 +48.685384773803804 +46.665327440739254 +51.853621902095995 +54.2358918 +54.68419976834503 +51.69166610614112 +54.86471713582945 +64.87664253150979 +53.63529655458124 +59.77260422306443 +65.73071266212061 +56.08465608465608 +54.156688333903524 +56.50861181637274 +52.87118122869175 +52.36690450054885 +44.4497575 +42.982212340188994 +38.92770668 +47.752999389954596 +37.27835051546392 +40.89123662467832 +48.89466840052016 +42.46866223713953 +41.227111232577215 +43.04146829503898 +44.714660771037714 +46.59452147446737 +55.68752545133704 +65.1439853 +60.28973452554239 +51.99727335 +56.08472839084387 +45.61985756758625 +38.894814024796695 +34.26250946383096 +45.782806042951016 +49.68319559 +43.08763473254335 +61.00159092481151 +53.80707221243733 +53.859407305306696 +56.32349907159067 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +53.62827083895333 +56.922865392547784 +64.91761210156672 +56.29014241831891 +41.53697837763393 +41.69405642289784 +35.80280914348664 +42.14960953555282 +35.398109743659475 +44.53917986195696 +52.39309928173458 +45.37690570299266 +42.964875331204574 +47.36258404380675 +47.66540966746658 +39.81690237070438 +53.80306405 +64.72717339343032 +68.72702974 +68.72702974 +68.72702974 +65.25898592319257 +66.21255299923541 +64.37992929018222 +56.31731565865783 +48.830529339351656 +41.35996716377069 +41.35996716377069 +50.54347826086957 +47.310708584912206 +38.87452368 +40.13936810770584 +41.61769789146215 +41.16554286500619 +49.28971451987433 +55.455229495861545 +39.60423634336678 +47.72788203753351 +43.42643287823134 +34.35712339961863 +48.32936372915958 +50.472885622916245 +35.47820209530247 +35.75873623743418 +41.20282378495791 +39.804197679876616 +52.99551879 +53.39786110735075 +51.05638633557415 +53.689060028879865 +53.85967284034068 +58.394561560118106 +59.828708461801995 +51.39893544424729 +51.39893544424729 +45.53323865557584 +48.90725310749898 +52.056504599211564 +65.63727855518026 +63.801272505753346 +62.85007686651962 +71.04996281522547 +60.438269044656444 +61.71128750168169 +68.48133674706914 +59.24620390455531 +50.960289795639405 +55.67663284070014 +50.62673622874178 +63.403060883512666 +61.579605445957206 +49.53894852738783 +50.87291920422249 +47.21300373 +49.79145299145299 +52.593340060544904 +49.96314907872697 +44.515993560579545 +38.40141371576157 +36.49591389 +38.75926434 +39.88415948275862 +51.86679431 +40.918977705274614 +24.58960328317373 +20.34907048281396 +31.60132262635805 +38.32652240905741 +34.155481365401656 +40.39788331435461 +56.25756150020164 +31.715498357064618 +25.81902742630463 +29.61470146194835 +26.69322709163347 +24.27471469819882 +35.96301795 +41.15160056372056 +46.73377156943303 +37.84205880355809 +36.32521634131616 +18.15708942536552 +31.89167340339531 +22.87621359223301 +22.19893163837988 +22.678258525407742 +31.97154471544715 +42.91037192602127 +28.44763387719179 +24.66711499663753 +25.33217017849953 +31.56069364 +46.71016483516484 +22.42889145 +24.47305997966791 +17.87259535379085 +18.42991913746631 +29.937921367064952 +37.34414801 +36.30748573346761 +37.241613012538124 +39.36148579949841 +36.137602179836506 +31.339031339031344 +23.07482436 +35.32351569267675 +31.182721501518078 +30.03866766162404 +20.89913312277401 +24.61486486486486 +20.149710785981632 +21.89581667998934 +19.33634585553382 +31.235258440595732 +28.635316438541807 +24.64470713 +32.42800601 +38.10509447819991 +38.10509447819991 +26.24113475177305 +26.72898462372147 +27.463978894676323 +39.02012248468941 +26.025041276829942 +26.138653768641678 +20.47122181 +22.27153520274359 +23.033098209441132 +20.19515477792732 +32.507910304030815 +38.14316182351373 +35.62075821 +38.49431818181818 +38.92130258 +35.57953311617807 +27.09530811388852 +35.065820885342056 +35.065820885342056 +33.46801346801347 +23.285723955865432 +25.51906635907179 +25.51906635907179 +25.51906635907179 +21.75080558539205 +16.20242969 +27.495786990225817 +22.99084435401831 +18.29080436675373 +22.25325884543762 +19.27346115035318 +32.84998329435349 +35.021293585307426 +37.44627388745619 +41.80183833468505 +33.90517986568256 +32.64873459652842 +34.23737916219119 +33.82815112002675 +35.24970194727779 +30.88658414185346 +45.043291496073564 +51.91087014017456 +45.17526322804212 +45.81859440699459 +47.07961061474863 +47.76922055503917 +56.40374331550802 +56.03981706 +45.63879598662207 +49.19150073499933 +47.44661095636026 +47.97292724196277 +38.47446237 +35.97208374875374 +38.50517183850517 +42.92465388711395 +39.88315089651467 +36.56254207620843 +36.56254207620843 +36.56254207620843 +36.56254207620843 +30.14442824963562 +39.00574907000338 +39.00574907000338 +39.00574907000338 +39.00574907000338 +38.518863530507694 +31.89758634484598 +22.48232626383887 +22.48232626383887 +22.48232626383887 +30.05449953476007 +32.29293338738008 +22.66933600266934 +19.50146627565982 +22.96226668457097 +15.77829405907733 +24.09407088439881 +31.33435277 +31.33435277 +31.33435277 +31.33435277 +31.33435277 +38.18291781466299 +32.10172425271287 +31.229370158302462 +32.03303343628307 +20.36877932720904 +27.60002671832209 +29.208884117291824 +28.27498493875092 +28.27498493875092 +28.27498493875092 +28.27498493875092 +24.31223290598291 +26.731133351365973 +20.74818611462424 +20.74818611462424 +30.72369296261807 +18.69891906142895 +18.69891906142895 +15.89952569 +21.89169089311068 +14.39248627554732 +25.645086781495408 +31.27770793356713 +18.038611073870488 +20.64546118600173 +18.00520729020629 +27.62716413904174 +23.80474757606152 +28.192867105001003 +21.72571121846484 +16.77972865123703 +26.393354769560563 +41.06382978723404 +31.22025383395029 +34.79713922866119 +21.36264028 +19.795768537676032 +27.922897972748416 +20.09895694035838 +34.692136011553096 +29.003800217155266 +24.76381909547739 +34.34516362678607 +38.059901056290954 +34.57317073170732 +35.12385568120625 +32.436213443474784 +26.47398843930636 +28.01961574633884 +21.724941724941722 +20.97009966777409 +21.66835528537656 +34.624907983671285 +32.32847541 +24.01372212692967 +20.51264846 +22.819283526434937 +23.81901534781742 +37.191018722100075 +36.515957446808514 +23.21085733200927 +23.21085733200927 +23.21085733200927 +21.602393617021278 +26.68438538 +22.07543430873902 +16.93769658033862 +18.21992271923505 +30.29649947753396 +19.679913196799127 +21.61732565070534 +21.61732565070534 +21.27602953895283 +21.63648558014755 +24.34577867473932 +16.91942502967163 +39.462151394422314 +24.85868102288022 +22.57001647446458 +18.96175946106598 +20.47909816815406 +19.03401541323412 +23.94974740760436 +36.95998936594444 +35.21672343551726 +34.187579045463615 +32.12974704665287 +27.31086841 +38.35762294536501 +29.30304456 +19.42186680650236 +21.65031581776643 +18.45777395674889 +20.12511646479436 +25.592766242464844 +28.40485074626866 +18.89125232650891 +24.686847599164928 +20.21905657841688 +28.15179105469529 +22.88437017649822 +27.38215318404949 +20.26686139139671 +32.91257597007948 +30.89622641509434 +23.608611611011128 +22.49634259874983 +22.58958622055039 +33.69702614596501 +33.69702614596501 +32.09868244151654 +35.666912306558594 +32.77645186953063 +32.04888473353813 +32.912730395719095 +40.16941301038978 +38.41577540106952 +36.18870678787075 +38.76273556635813 +55.75916230366492 +50.75052639 +48.83176005891411 +49.75300400534045 +58.64484407624436 +54.049001936043794 +64.36445743126576 +46.32503062474479 +56.23274161735699 +53.762079306897704 +46.85549365729244 +44.75849973 +33.08661732346469 +33.08661732346469 +33.08661732346469 +38.01349275265513 +36.14620633740963 +36.14620633740963 +36.14620633740963 +42.91154462854089 +44.07005393886928 +37.81862087469815 +37.81862087469815 +37.81862087469815 +33.980839114634946 +36.30320934604539 +51.25967720771551 +36.73871669385536 +41.08848916123081 +37.84180338802188 +35.68517404957573 +31.49969885565148 +35.84502338009352 +33.00080342795929 +38.48350043157825 +38.32463535394085 +40.38901601830664 +40.38901601830664 +40.38901601830664 +40.38901601830664 +40.38901601830664 +40.38901601830664 +48.87621375704488 +52.569169960474305 +47.09051007514797 +58.33610207 +53.54277165782674 +40.26438254535644 +36.93499494779387 +32.44394171 +32.44394171 +32.44394171 +32.44394171 +46.01247568582735 +40.06772773450728 +30.052712350703942 +30.052712350703942 +35.18879989230666 +38.243739565943244 +44.189033871949164 +34.81046096948884 +47.20442436096311 +42.51197948302625 +38.54737404784177 +37.91305525460455 +36.10758011641132 +37.039045553145336 +43.15297261189045 +38.853503184713375 +35.17715353306199 +34.89333333333333 +36.4681366 +47.789981248325745 +50.704129532621266 +48.58399413606983 +50.54161340240867 +42.66765920010828 +47.63835394283398 +55.947756195579366 +40.381515314347126 +37.71941668917094 +36.63983903420523 +39.27550681289465 +44.166045913184796 +42.391963864356505 +30.46038543897216 +35.610406937958636 +26.141911322142708 +20.298746332355293 +31.26879134095009 +28.251121076233183 +25.16595857673925 +20.47244094488189 +23.87831180934629 +37.09839694144476 +35.42522389064709 +24.06247896047936 +28.891257995735607 +26.25462229265716 +31.15516892575359 +22.915549597855232 +18.08574677279112 +20.33028488716363 +24.083769633507853 +22.035124646451358 +26.93534161069272 +34.10205434062293 +36.0267798 +37.23931798111541 +34.47232125 +35.82802547770701 +41.32608549761761 +36.17207486199004 +32.578733604101465 +32.19418504536724 +32.19418504536724 +32.19418504536724 +32.19418504536724 +32.19418504536724 +39.36690457309014 +44.14117647058824 +41.21171770972037 +38.58634217700645 +34.13351314902225 +38.34731655346917 +46.93023883416543 +46.23663101604278 +40.03473149879776 +38.6596548 +37.68770764119601 +36.97176046465051 +38.74873182279337 +40.929888305746196 +20.40816326530612 +22.49581799933088 +30.79198159710812 +27.20874111811235 +23.46306068601583 +32.06847745501112 +25.13432053466125 +25.58517115410635 +28.49224678323985 +28.404433993953642 +26.68164398044139 +36.97305229 +35.038873014818265 +33.93955783922656 +34.64409490802453 +34.41190206151178 +27.013772253946932 +26.579765764573548 +19.936457505957108 +23.63252933 +22.977368207074132 +35.26058085720035 +23.64499538 +23.04955015 +23.04955015 +23.04955015 +23.04955015 +23.04955015 +23.04955015 +23.04955015 +23.34434897554527 +22.448707700506258 +22.448707700506258 +22.448707700506258 +22.448707700506258 +22.448707700506258 +28.209897044171374 +22.66862758205762 +30.29136523528241 +23.64253393665158 +35.020730239400834 +15.26242637 +15.26242637 +19.38809444629199 +20.70224346210009 +30.03630984400215 +27.27943148297131 +26.20588431516445 +26.779999999999998 +40.23302263648469 +35.55763573147901 +34.06512745 +36.28096995255667 +36.00943714189417 +29.27350427350427 +30.434201736806948 +19.78631051752922 +20.561630889698932 +19.86618972 +34.606096207819334 +25.517897167696802 +21.29851143009038 +23.62911266201396 +27.19222318396698 +42.415504291845494 +36.84175038770144 +35.95824800158552 +35.313066237165295 +35.555555555555564 +40.91728419787703 +21.94044831047173 +15.680551870522692 +15.680551870522692 +15.680551870522692 +15.680551870522692 +15.680551870522692 +15.680551870522692 +15.680551870522692 +18.95781968 +20.920225091029458 +18.104076897580377 +18.104076897580377 +18.104076897580377 +18.104076897580377 +18.104076897580377 +18.104076897580377 +18.104076897580377 +18.104076897580377 +28.48270335247763 +21.39065817409766 +21.39065817409766 +22.15596944928313 +27.389292795769993 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +33.09257173149559 +35.466191230850505 +35.38969795037756 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +34.33124416588879 +32.78601342817257 +46.3142418 +46.3142418 +46.3142418 +46.3142418 +22.76794725156429 +17.417978127500668 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 +17.777480967009478 diff --git a/atsc/tests/e2e.rs b/atsc/tests/e2e.rs index 412c7fc..62a2d63 100644 --- a/atsc/tests/e2e.rs +++ b/atsc/tests/e2e.rs @@ -1,7 +1,6 @@ +use atsc::csv::{read_samples, read_samples_with_headers}; use atsc::utils::error::calculate_error; use std::fs; -use std::fs::File; -use std::io::Write; use std::path::{Path, PathBuf}; use wavbrro::wavbrro::WavBrro; @@ -51,27 +50,24 @@ fn test_compressor_auto_lossy() { #[test] fn test_csv_input_compression_with_header() { - let test_dir = tempfile::tempdir().unwrap().into_path(); - let filepath = test_dir.join("test-csv.csv"); - - let mut file = File::create(&filepath).unwrap(); - let content = "time,value\n1625097600,123.45\n1625184000,678.90\n"; - file.write_all(content.as_bytes()).unwrap(); + let filepath = Path::new("./tests/csv/cpu_utilization.csv"); + let test_dir = prepare_test_dir_and_copy_file(filepath); + let csv_file_path = test_dir.join("cpu_utilization.csv"); run_compressor(&[ "--compressor", - "fft", + "noop", "--error", "5", "--csv", "--fields=time,value", - filepath.to_str().unwrap(), + csv_file_path.to_str().unwrap(), ]); - run_compressor(&["-u", test_dir.join("test-csv.bro").to_str().unwrap()]); + run_compressor(&["-u", test_dir.join("cpu_utilization.bro").to_str().unwrap()]); - let uncompressed_samples = WavBrro::from_file(&test_dir.join("test-csv.wbro")).unwrap(); - let original_samples = vec![123.45f64, 678.9f64]; + let uncompressed_samples = WavBrro::from_file(&test_dir.join("cpu_utilization.wbro")).unwrap(); + let original_samples = read_values_from_csv(&csv_file_path, false); let err = calculate_error(&original_samples, &uncompressed_samples); @@ -86,26 +82,23 @@ fn test_csv_input_compression_with_header() { #[test] fn test_csv_input_compression_with_header_no_fields() { - let test_dir = tempfile::tempdir().unwrap().into_path(); - let filepath = test_dir.join("test-csv.csv"); - - let mut file = File::create(&filepath).unwrap(); - let content = "time,value\n1625097600,123.45\n1625184000,678.90\n"; - file.write_all(content.as_bytes()).unwrap(); + let filepath = Path::new("./tests/csv/cpu_utilization.csv"); + let test_dir = prepare_test_dir_and_copy_file(filepath); + let csv_file_path = test_dir.join("cpu_utilization.csv"); run_compressor(&[ "--compressor", - "fft", + "noop", "--error", "5", "--csv", - filepath.to_str().unwrap(), + csv_file_path.to_str().unwrap(), ]); - run_compressor(&["-u", test_dir.join("test-csv.bro").to_str().unwrap()]); + run_compressor(&["-u", test_dir.join("cpu_utilization.bro").to_str().unwrap()]); - let uncompressed_samples = WavBrro::from_file(&test_dir.join("test-csv.wbro")).unwrap(); - let original_samples = vec![123.45f64, 678.9f64]; + let uncompressed_samples = WavBrro::from_file(&test_dir.join("cpu_utilization.wbro")).unwrap(); + let original_samples = read_values_from_csv(&csv_file_path, false); let err = calculate_error(&original_samples, &uncompressed_samples); @@ -120,27 +113,31 @@ fn test_csv_input_compression_with_header_no_fields() { #[test] fn test_csv_input_compression_without_header() { - let test_dir = tempfile::tempdir().unwrap().into_path(); - let filepath = test_dir.join("test-csv.csv"); - - let mut file = File::create(&filepath).unwrap(); - let content = "123.45\n678.90\n"; - file.write_all(content.as_bytes()).unwrap(); + let filepath = Path::new("./tests/csv/cpu_utilization_no_headers_only_values.csv"); + let test_dir = prepare_test_dir_and_copy_file(filepath); + let csv_file_path = test_dir.join("cpu_utilization_no_headers_only_values.csv"); run_compressor(&[ "--compressor", - "fft", + "noop", "--error", "5", "--csv", "--no-header", - filepath.to_str().unwrap(), + csv_file_path.to_str().unwrap(), ]); - run_compressor(&["-u", test_dir.join("test-csv.bro").to_str().unwrap()]); + run_compressor(&[ + "-u", + test_dir + .join("cpu_utilization_no_headers_only_values.bro") + .to_str() + .unwrap(), + ]); - let uncompressed_samples = WavBrro::from_file(&test_dir.join("test-csv.wbro")).unwrap(); - let original_samples = vec![123.45f64, 678.9f64]; + let uncompressed_samples = + WavBrro::from_file(&test_dir.join("cpu_utilization_no_headers_only_values.wbro")).unwrap(); + let original_samples = read_values_from_csv(&csv_file_path, true); let err = calculate_error(&original_samples, &uncompressed_samples); @@ -221,6 +218,13 @@ fn prepare_test_dir() -> PathBuf { test_dir } +/// Prepares test directory and copies file to it. +fn prepare_test_dir_and_copy_file(filepath: &Path) -> PathBuf { + let test_dir = tempfile::tempdir().unwrap().into_path(); + fs::copy(filepath, test_dir.join(filepath.file_name().unwrap())).unwrap(); + test_dir +} + /// Runs compressor binary with provided arguments. fn run_compressor(args: &[&str]) { let compressor_bin = env!("CARGO_BIN_EXE_atsc"); @@ -253,3 +257,15 @@ fn compare_samples_with_allowed_error(original: &Path, uncompressed: &Path) { uncompressed_samples ); } + +/// Reads csv file and returns the content of value field. +/// If no_headers = false it assumes --fields="time,value" +fn read_values_from_csv(csv_file_path: &Path, no_headers: bool) -> Vec { + let samples = if no_headers { + read_samples(csv_file_path).unwrap() + } else { + read_samples_with_headers(csv_file_path, "time", "value").unwrap() + }; + + samples.into_iter().map(|sample| sample.value).collect() +}