Last active
August 29, 2015 14:18
-
-
Save Ffisegydd/5c8e927a63ef35ce7354 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Benchmarking answers to <http://stackoverflow.com/q/29481088/1014938>.""" | |
import re | |
from collections import defaultdict | |
from functools import partial | |
from statistics import mean, median | |
from string import digits | |
from timeit import timeit | |
# Antti Haapala | |
def antti(string): | |
length = len(string) | |
for i in range(1, length // 2 + 1): | |
if length % i: | |
continue | |
candidate = string[:i] | |
if string == candidate * (length // i): | |
return candidate | |
return None | |
# CarpetPython | |
def carpetpython(s): | |
size = len(s) | |
incr = size % 2 + 1 | |
for n in range(1, size//2+1, incr): | |
if size % n == 0: | |
if s[:n] * (size//n) == s: | |
return s[:n] | |
# davidism | |
def davidism(orig_value): | |
if not orig_value: | |
return None | |
value = orig_value | |
while True: | |
len_half = len(value) // 2 | |
first_half = value[:len_half] | |
if first_half != value[len_half:]: | |
break | |
value = first_half | |
len_value = len(value) | |
split = value.split | |
for i in (i for i in range(1, len_value // 2) if len_value % i == 0): | |
if not any(split(value[:i])): | |
return value[:i] | |
return value if value != orig_value else None | |
# David Zhang | |
def david_zhang(s): | |
i = (s+s).find(s, 1, -1) | |
return None if i == -1 else s[:i] | |
# RiaD | |
def riad(s): | |
n = len(s) | |
pi = [0] * n | |
for i in range(1, n): | |
j = pi[i - 1] | |
while j > 0 and s[i] != s[j]: | |
j = pi[j - 1] | |
if s[i] == s[j]: | |
j += 1 | |
pi[i] = j | |
k = n - pi[-1] | |
return s[:k] if (n != k and n % k == 0) else None | |
# Saksham Varma | |
def saksham(s): | |
for i in range(1, len(s)): | |
substr = s[:i] | |
ratio = len(s)//len(substr) | |
if substr * ratio == s: | |
return substr | |
# Shashank | |
def shashank_divisors(n): | |
if n > 1: | |
yield 1 | |
from math import sqrt, floor | |
kq = [] | |
for k in range(2, int(floor(sqrt(n))) + 1): | |
q, r = divmod(n, k) | |
if r == 0: | |
yield k | |
kq.append(q) | |
while kq: | |
yield kq.pop() | |
def shashank(s): | |
l = len(s) | |
for d in shashank_divisors(l): | |
spl = (s[i:i+d] for i in range(0, l, d)) | |
spl0 = next(spl) | |
if all(x == spl0 for x in spl): | |
return spl0 | |
return None | |
# TigerhawkT3 #1 | |
def tigerhawk_1(string): | |
for i in range(1, len(string)//2+1): | |
if not len(string) % len(string[0:i]) and \ | |
string[0:i]*(len(string)//len(string[0:i])) == string: | |
return string[0:i] | |
# TigerhawkT3 #2 | |
def tigerhawk_2(string): | |
l = len(string) | |
for i in range(1, len(string)//2+1): | |
s = string[0:i] | |
if not l % i and s*(l//i) == string: | |
return s | |
# Zero Piraeus | |
REPEATER = re.compile(r"(.+?)\1+$") | |
def zero(s): | |
match = REPEATER.match(s) | |
return match.group(1) if match else None | |
# Sanity checks | |
def fail(s): | |
return 'x' | |
def null(s): | |
pass | |
# Convenience functions | |
def crop(s, width=60): | |
return s if s is None or len(s) <= width else s[:width-3] + "..." | |
# The business | |
def run_tests(tests, funcs): | |
benchmark = defaultdict(list) | |
failed = set() | |
for value, expected in tests.items(): | |
for func in funcs: | |
name = func.__name__ | |
result = func(value) | |
if result != expected: | |
print('\n{}\n{} failed with {}'.format( | |
crop(value), name, crop(result) | |
)) | |
failed.add(name) | |
benchmark[name].append(timeit(partial(func, value), number=1000)) | |
for avg in mean, median: | |
print('\n{} performance:'.format(avg.__name__)) | |
for name, times in sorted(benchmark.items(), key=lambda x: avg(x[1])): | |
print('{:7.4f} {}{}'.format( | |
avg(times), | |
name, | |
' (with failures)' if name in failed else '', | |
)) | |
# Data | |
INCREMENTAL = [ | |
''.join(digits[:i] for i in range(1, 11)), | |
''.join(str(n) for n in range(1000)), | |
] | |
CORPORA = { | |
"1 (supplied examples - small set)": { | |
'004608294930875576036866359447': None, | |
'00469483568075117370892018779342723': None, | |
'004739336492890995260663507109': None, | |
'001508295625942684766214177978883861236802413273': None, | |
'0045662100456621004566210045662100456621': '00456621', | |
'007518796992481203': None, | |
'0072992700729927007299270072992700729927': '00729927', | |
'0071942446043165467625899280575539568345323741': None, | |
'001443001443001443001443001443001443001443': '001443', | |
'037037037037037037037037037037037037037037037': '037', | |
'047619047619047619047619047619047619047619': '047619', | |
'0434782608695652173913': None, | |
'0344827586206896551724137931': None, | |
'002457002457002457002457002457002457002457': '002457', | |
'001221001221001221001221001221001221001221': '001221', | |
'002481389578163771712158808933': None, | |
'002932551319648093841642228739': None, | |
'0035587188612099644128113879': None, | |
'001230012300123001230012300123001230012300123': '00123', | |
'003484320557491289198606271777': None, | |
'00115074798619102416570771': None, | |
'0013947001394700139470013947001394700139470013947': '0013947', | |
'001001001001001001001001001001001001001001001001001': '001', | |
'001406469760900140646976090014064697609': '0014064697609', | |
}, | |
"2 (supplied examples - large set)": { | |
'001': None, | |
'001001001001001001001001001001001001001001001001001': '001', | |
'001003009027081243731193580742226680040120361083249749247743' | |
'229689067201604814443329989969909729187562688064192577733199' | |
'5987963891675025075225677031093279839518555667': None, | |
'001007049345417925478348439073514602215508559919436052366565' | |
'96173212487411883182275931520644511581067472306143': None, | |
'001009081735620585267406659939455095862764883955600403632694' | |
'248234106962663975782038345105953582240161453077699293642785' | |
'065590312815338042381432896064581231079717457114026236125126' | |
'135216952573158425832492431886982845610494450050454086781029' | |
'263370332996972754793138244197780020181634712411705348133198' | |
'789101917255297679112008072653884964682139253279515640766902' | |
'119071644803229061553985872855701311806256306760847628657921' | |
'291624621594349142280524722502522704339051463168516649848637' | |
'739656912209889': None, | |
'001011122345803842264914054600606673407482305358948432760364' | |
'004044489383215369059656218402426693629929221435793731041456' | |
'016177957532861476238624873609706774519716885743174924165824' | |
'064711830131445904954499494438827098078867542972699696663296' | |
'258847320525783619817997977755308392315470171890798786653185' | |
'035389282103134479271991911021233569261880687563195146612740' | |
'141557128412537917087967644084934277047522750252780586450960' | |
'566228513650151668351870576339737108190091': None, | |
'001013171225937183383991894630192502532928064842958459979736' | |
'575481256332320162107396149949341438703140830800405268490374' | |
'873353596757852077': None, | |
'001017293997965412004069175991861648016276703967446592065106' | |
'815869786368260427263479145473041709053916581892166836215666' | |
'327568667344862665310274669379450661241098677517802644964394' | |
'710071210579857578840284842319430315361139369277721261444557' | |
'477110885045778229908443540183112919633774160732451678535096' | |
'642929806714140386571719226856561546286876907426246185147507' | |
'629704984740590030518819938962360122075279755849440488301119' | |
'023397761953204476093591047812817904374364191251271617497456' | |
'765005086469989827060020345879959308240081383519837232960325' | |
'534079348931841302136317395727365208545269582909460834181078' | |
'331637843336724313326551373346897253306205493387589013224821' | |
'973550356052899287894201424211597151576805696846388606307222' | |
'787385554425228891149542217700915564598168870803662258392675' | |
'483214649033570701932858596134282807731434384537131230925737' | |
'538148524923702950152594099694811800610376398779247202441505' | |
'595116988809766022380467955239064089521871820956256358087487' | |
'2838250254323499491353': None, | |
'001019367991845056065239551478083588175331294597349643221202' | |
'854230377166156982670744138634046890927624872579': None, | |
'00102145045965270684371807967313585291113381': None, | |
'001023541453428863868986693961105424769703172978505629477993' | |
'858751279426816786079836233367451381780962128966223132036847' | |
'492323439099283520982599795291709314227226202661207778915046' | |
'059365404298874104401228249744114636642784032753326509723643' | |
'807574206755373592630501535312180143295803480040941658137154' | |
'554759467758444216990788126919140225179119754350051177072671' | |
'443193449334698055271238485158648925281473899692937563971340' | |
'839303991811668372569089048106448311156601842374616171954964' | |
'176049129989764585465711361310133060388945752302968270214943' | |
'705220061412487205731832139201637666325486182190378710337768' | |
'679631525076765609007164790174002047082906857727737973387922' | |
'210849539406345957011258955987717502558853633572159672466734' | |
'902763561924257932446264073694984646878198567041965199590583' | |
'418628454452405322415557830092118730808597748208802456499488' | |
'229273285568065506653019447287615148413510747185261003070624' | |
'360286591606960081883316274309109518935516888433981576253838' | |
'2804503582395087': None, | |
'001027749229188078108941418293936279547790339157245632065775' | |
'950668036998972250770811921891058581706063720452209660842754' | |
'367934224049331963': None, | |
'001029866117404737384140061791967044284243048403707518022657' | |
'054582904222451081359423274974253347064881565396498455200823' | |
'892893923789907312049433573635427394438722966014418125643666' | |
'323377960865087538619979402677651905252317198764160659114315' | |
'139031925849639546858908341915550978372811534500514933058702' | |
'368692070030895983522142121524201853759011328527291452111225' | |
'540679711637487126673532440782698249227600411946446961894953' | |
'656024716786817713697219361483007209062821833161688980432543' | |
'769309989701338825952626158599382080329557157569515962924819' | |
'773429454170957775489186405767250257466529351184346035015447' | |
'991761071060762100926879505664263645726055612770339855818743' | |
'563336766220391349124613800205973223480947476828012358393408' | |
'856848609680741503604531410916580844490216271884654994850669' | |
'412976313079299691040164778578784757981462409886714727085478' | |
'887744593202883625128733264675592173017507723995880535530381' | |
'050463439752832131822863027806385169927909371781668383110195' | |
'6745623069': None, | |
'001031991744066047471620227038183694530443756449948400412796' | |
'697626418988648090815273477812177502579979360165118679050567' | |
'595459236326109391124871': None, | |
'001034126163391933815925542916235780765253360910031023784901' | |
'758014477766287487073422957600827300930713547052740434332988' | |
'624612202688728024819027921406411582213029989658738366080661' | |
'840744570837642192347466390899689762150982419855222337125129' | |
'265770423991726990692864529472595656670113753877973112719751' | |
'8097207859358841778697': None, | |
'00103842159916926272066458982346832814122533748701973': None, | |
'001040582726326742976066597294484911550468262226847034339229' | |
'968782518210197710718002081165452653485952133194588969823100' | |
'936524453694068678459937565036420395421436004162330905306971' | |
'904266389177939646201873048907388137356919875130072840790842' | |
'872008324661810613943808532778355879292403746097814776274713' | |
'839750260145681581685744016649323621227887617065556711758584' | |
'807492195629552549427679500520291363163371488033298647242455' | |
'775234131113423517169614984391259105098855359': None, | |
'001042752867570385818561': None, | |
'0010449320794148380355276907': None, | |
'001049317943336831059811122770199370409233997901364113326337' | |
'880377754459601259181532004197271773347324239244491080797481' | |
'636935991605456453305351521511017838405036726128016789087093' | |
'389296956977964323189926547743966421825813221406086044071353' | |
'620146904512067156348373557187827911857292759706190975865687' | |
'303252885624344176285414480587618048268625393494228751311647' | |
'429171038824763903462749213011542497376705141657922350472193' | |
'074501573976915005246589716684155299055613850996852046169989' | |
'506820566631689401888772298006295907660020986358866736621196' | |
'222455403987408184679958027282266526757607555089192025183630' | |
'640083945435466946484784889821615949632738719832109129066107' | |
'030430220356768100734522560335781741867785939139559286463798' | |
'530954879328436516264428121720881427072402938090241343126967' | |
'471143756558237145855194123819517313746065057712486883525708' | |
'289611752360965372507869884575026232948583420776495278069254' | |
'9842602308499475341028331584470094438614900314795383': None, | |
'001051524710830704521556256572029442691903259726603575184016' | |
'8243953732912723449': None, | |
'001053740779768177028451': None, | |
'001055966209081309398099260823653643083421330517423442449841' | |
'605068637803590285110876451953537486800422386483632523759239' | |
'704329461457233368532206969376979936642027455121436114044350' | |
'580781414994720168954593453009503695881731784582893347412882' | |
'787750791974656810982048574445617740232312565997888067581837' | |
'381203801478352692713833157338965153115100316789862724392819' | |
'429778247096092925026399155227032734952481520591341077085533' | |
'26293558606124604012671594508975712777191129883843717': None, | |
'001060445387062566277836691410392364793213149522799575821845' | |
'17497348886532343584305408271474019088016967126193': None, | |
'001062699256110520722635494155154091392136025504782146652497' | |
'343251859723698193411264612114771519659936238044633368756641' | |
'870350690754516471838469713071200850159404888416578108395324' | |
'123273113708820403825717321997874601487778958554729011689691' | |
'817215727948990435706695005313496280552603613177470775770456' | |
'960680127523910733262486716259298618490967056323060573857598' | |
'299681190223166843783209351753453772582359192348565356004250' | |
'797024442082890541976620616365568544102019128586609989373007' | |
'438894792773645058448459086078639744952178533475026567481402' | |
'763018065887353878852284803400637619553666312433581296493092' | |
'454835281615302869287991498405951115834218916046758767268862' | |
'911795961742826780021253985122210414452709883103081827842720' | |
'510095642933049946865037194473963868225292242295430393198724' | |
'760892667375132837407013815090329436769394261424017003188097' | |
'768331562167906482465462274176408076514346439957492029755579' | |
'1710945802337938363443145589798087141339': None, | |
'001064962726304579339723109691160809371671991480298189563365' | |
'282215122470713525026624068157614483493077742279020234291799' | |
'787007454739084132055378061767838125665601703940362087326943' | |
'556975505857294994675186368477103301384451544195953141640042' | |
'598509052183173588924387646432374866879659211927582534611288' | |
'604898828541': None, | |
'001067235859124866595517609391675560298826040554962646744930' | |
'629669156883671291355389541088580576307363927427961579509071' | |
'504802561366061899679829242262540021344717182497331910352187' | |
'833511205976520811099252934898612593383137673425827107790821' | |
'771611526147278548559231590181430096051227321237993596584845' | |
'250800426894343649946638207043756670224119530416221985058697' | |
'972251867662753468516542155816435432230522945570971184631803' | |
'628601921024546424759871931696905016008537886872998932764140' | |
'875133404482390608324439701173959445037353255069370330843116' | |
'328708644610458911419423692636072572038420490928495197438633' | |
'938100320170757737459978655282817502668089647812166488794023' | |
'479188900747065101387406616862326574172892209178228388473852' | |
'721451440768409818569903948772678762006403415154749199573105' | |
'656350053361792956243329775880469583778014941302027748132337' | |
'246531483457844183564567769477054429028815368196371398078975' | |
'453575240128068303094983991462113127': None, | |
'001071811361200428724544480171489817792068595927116827438370' | |
'846730975348338692390139335476956055734190782422293676312968' | |
'91747052518756698821007502679528403': None, | |
'001074113856068743286788399570354457572502685284640171858216' | |
'970998925886143931256713211600429645542427497314715359828141' | |
'783029': None, | |
'001076426264800861141011840688912809472551130247578040904198' | |
'062432723358449946178686759956942949407965554359526372443487' | |
'621097954790096878363832077502691065662002152852529601722282' | |
'023681377825618945102260495156081808396124865446716899892357' | |
'373519913885898815931108719052744886975242195909580193756727' | |
'664155005382131324004305705059203444564047362755651237890204' | |
'520990312163616792249730893433799784714747039827771797631862' | |
'21743810548977395048439181916038751345532831': None, | |
'0010787486515641855447680690399137': None, | |
'001083423618634886240520043336944745395449620801733477789815' | |
'817984832069339111592632719393282773564463705308775731310942' | |
'578548212351029252437703141928494041170097508125677139761646' | |
'803900325027085590465872156013': None, | |
'001085776330076004343105320304017372421281216069489685124864' | |
'277958740499457111834961997828447339847991313789359391965255' | |
'157437567861020629750271444082519': None, | |
'001088139281828073993471164309031556039173014145810663764961' | |
'915125136017410228509249183895538628944504896626768226332970' | |
'620239390642002176278563656147986942328618063112078346028291' | |
'621327529923830250272034820457018498367791077257889009793253' | |
'536452665941240478781284004352557127312295973884657236126224' | |
'156692056583242655059847660500544069640914036996735582154515' | |
'778019586507072905331882480957562568008705114254624591947769' | |
'314472252448313384113166485310119695321': None, | |
'001097694840834248079034028540065861690450054884742041712403' | |
'951701427003293084522502744237102085620197585071350164654226' | |
'125137211855104281009879253567508232711306256860592755214050' | |
'493962678375411635565312843029637760702524698133918770581778' | |
'265642151481888035126234906695938529088913282107574094401756' | |
'311745334796926454445664105378704720087815587266739846322722' | |
'283205268935236004390779363336992316136114160263446761800219' | |
'53896816684961580680570801317233809': None, | |
'001112347052280311457174638487208008898776418242491657397107' | |
'897664071190211345939933259176863181312569521690767519466073' | |
'414905450500556173526140155728587319243604004449388209121245' | |
'828698553948832035595105672969966629588431590656284760845383' | |
'759733036707452725250278086763070077864293659621802002224694' | |
'104560622914349276974416017797552836484983314794215795328142' | |
'380422691879866518353726362625139043381535038932146829810901': None, | |
'001114827201783723522853957636566332218506131549609810479375' | |
'696767': None, | |
'001119820828667413213885778275475923852183650615901455767077' | |
'267637178051511758118701007838745800671892497200447928331466' | |
'965285554311310190369540873460246360582306830907054871220604' | |
'703247480403135498320268756998880179171332586786114221724524' | |
'076147816349384098544232922732362821948488241881298992161254' | |
'199328107502799552071668533034714445688689809630459126539753' | |
'639417693169092945128779395296752519596864501679731243': None, | |
'001122334455667789': None, | |
'001124859392575928008998875140607424071991': None, | |
'001127395715896279594137542277339346110484780157835400225479' | |
'143179255918827508455467869222096956031567080045095828635851' | |
'183765501691093573844419391206313416009019165727170236753100' | |
'338218714768883878241262683201803833145434047350620067643742' | |
'953776775648252536640360766629086809470124013528748590755355' | |
'129650507328072153325817361894024802705749718151071025930101' | |
'465614430665163472378804960541149943630214205186020293122886' | |
'133032694475760992108229988726042841037204058624577226606538' | |
'895152198421645997745208568207440811724915445321307779030439' | |
'684329199549041713641488162344983089064261555806087936865839' | |
'909808342728297632468996617812852311161217587373167981961668' | |
'545659526493799323562570462232243517474633596392333709131905' | |
'298759864712514092446448703494926719278466741826381059751972' | |
'942502818489289740698985343855693348365276211950394588500563' | |
'6978579481397970687711386696730552423900789177': None, | |
'001132502831257078142695356738391845979614949037372593431483' | |
'578708946772366930917327293318233295583238958097395243488108' | |
'720271800679501698754246885617214043035107587768969422423556' | |
'058890147225368063420158550396375990939977349943374858437146' | |
'092865232163080407701019252548131370328425821064552661381653' | |
'454133635334088335220838052095130237825594563986409966024915' | |
'062287655719139297848244620611551528878822197055492638731596' | |
'828992072480181200453': None, | |
'001135073779795686719636776390465380249716231555051078320090' | |
'805902383654937570942111237230419977298524404086265607264472' | |
'190692395005675368898978433598183881952326901248581157775255' | |
'391600454029511918274687854710556186152099886492622020431328' | |
'036322360953461975028376844494892167990919409761634506242905' | |
'788876276958002270147559591373439273552780930760499432463110' | |
'102156640181611804767309875141884222474460839954597048808172' | |
'53121452894438138479': None, | |
'001137656427758816837315130830489192263936291240045506257110' | |
'352673492605233219567690557451649601820250284414106939704209' | |
'32878270762229806598407281': None, | |
'001140250855188141391106043329532497149372862029646522234891' | |
'676168757126567844925883694412770809578107183580387685290763' | |
'968072976054732041049030786773090079817559863169897377423033' | |
'067274800456100342075256556442417331812998859749144811858608' | |
'893956670467502850627137970353477765108323831242873432155074' | |
'116305587229190421892816419612314709236031927023945267958950' | |
'969213226909920182440136830102622576966932725199543899657924' | |
'743443557582668187': None, | |
'001145475372279495990836197021764032073310423825887743413516' | |
'609392898052691867124856815578465063': None, | |
'001148105625717566016073478760045924225028702640642939150401' | |
'836969': None, | |
'00115074798619102416570771': None, | |
'001153402537485582468281430219146482122260668973471741637831' | |
'603229527104959630911188004613610149942329873125720876585928' | |
'489042675893886966551326412918108419838523644752018454440599' | |
'769319492502883506343713956170703575547866205305651672433679' | |
'35409457900807381776239907727797': None, | |
'001158748551564310544611819235225955967555040556199304750869' | |
'061413673232908458864426419466975666280417149478563151796060' | |
'254924681344148319814600231749710312862108922363847045191193' | |
'511008111239860950173812282734646581691772885283893395133256' | |
'083429895712630359212050984936268829663962920046349942062572' | |
'421784472769409038238702201622247972190034762456546929316338' | |
'354577056778679026651216685979142526071842410196987253765932' | |
'792584009269988412514484356894553881807647740440324449594438' | |
'006952491309385863267670915411355735805330243337195828505214' | |
'368482039397450753186558516801853997682502896871378910776361' | |
'529548088064889918887601390498261877172653534183082271147161' | |
'066048667439165701042873696407879490150637311703360370799536' | |
'500579374275782155272305909617612977983777520278099652375434' | |
'530706836616454229432213209733487833140208574739281575898030' | |
'1274623406720741599073': None, | |
'001161440185830429732868757259': None, | |
'00116414435389988358556461': None, | |
'001166861143523920653442240373395565927654609101516919486581' | |
'096849474912485414235705950991831971995332555425904317386231' | |
'038506417736289381563593932322053675612602100350058343057176' | |
'196032672112018669778296382730455075845974329054842473745624' | |
'270711785297549591598599766627771295215869311551925320886814' | |
'469078179696616102683780630105017502917152858809801633605600' | |
'933488914819136522753792298716452742123687281213535589264877' | |
'479579929988331388564760793465577596266044340723453908984830' | |
'805134189031505250875145857642940490081680280046674445740956' | |
'826137689614935822637106184364060676779463243873978996499416' | |
'569428238039673278879813302217036172695449241540256709451575' | |
'262543757292882147024504084014002333722287047841306884480746' | |
'791131855309218203033838973162193698949824970828471411901983' | |
'663943990665110851808634772462077012835472578763127187864644' | |
'1073512252042007': None, | |
'001172332942555685814771395076201641266119577960140679953106' | |
'682297772567409144196951934349355216881594372801875732708089' | |
'097303634232121922626025791324736225087924970691676436107854' | |
'630715123094958968347010550996483': None, | |
'001175088131609870740305522914218566392479435957696827262044' | |
'653349': None, | |
'001177856301531213191990577149587750294464075382803297997644' | |
'287396937573616018845700824499411071849234393404004711425206' | |
'124852767962308598351': None, | |
'001180637544273907910271546635182998819362455726092089728453' | |
'364817': None, | |
'0011862396204033214709371293': None, | |
'001189060642092746730083234244946492271105826397146254458977' | |
'407847800237812128418549346016646848989298454221165279429250' | |
'891795481569560047562425683709869203329369797859690844233055' | |
'885850178359096313912009512485136741973840665873959571938168' | |
'846611177170035671819262782401902497027348394768133174791914' | |
'387633769322235434007134363852556480380499405469678953626634' | |
'958382877526753864447086801426872770511296076099881093935790' | |
'725326991676575505350772889417360285374554102259215219976218' | |
'787158145065398335315101070154577883472057074910820451843043' | |
'995243757431629013079667063020214030915576694411414982164090' | |
'368608799048751486325802615933412604042806183115338882282996' | |
'432818073721759809750297265160523186682520808561236623067776' | |
'456599286563614744351961950059453032104637336504161712247324' | |
'61355529131985731272294887039239': None, | |
'001191895113230035756853396901072705601907032181168057210965' | |
'435041716328963051251489868891537544696066746126340882002383' | |
'790226460071513706793802145411203814064362336114421930870083' | |
'432657926102502979737783075089392133492252681764004767580452' | |
'920143027413587604290822407628128724672228843861740166865315' | |
'852205005959475566150178784266984505363528009535160905840286' | |
'05482717520858164481525625744934445768772348033373063170441': None, | |
'001194743130227': None, | |
'001200480192076830732292917166866746698679471788715486194477' | |
'791116446578631452581032412965186074429771908763505402160864' | |
'345738295318127250900360144057623049219687875150060024009603' | |
'841536614645858343337334933973589435774309723889555822328931' | |
'572629051620648259303721488595438175270108043217286914765906' | |
'362545018007202881152460984393757503': None, | |
'001203369434416365824308062575210589651022864019253910950661' | |
'853188929': None, | |
'001206272617611580217129071170084439083232810615199034981905' | |
'910735826296743063932448733413751507840772014475271411338962' | |
'605548854041013268998793727382388419782870928829915560916767' | |
'189384800965018094089264173703256936067551266586248492159227' | |
'985524728588661037394451145958986731': None, | |
'001209189842805320435308343409915356711003627569528415961305' | |
'925030229746070133010882708585247883917775090689238210399032' | |
'648125755743651753325272067714631197097944377267230955259975' | |
'816203143893591293833131801692865779927448609431680773881499' | |
'395405078597339782345828295042321644498186215235792019347037' | |
'484885126964933494558645707376058041112454655380894800483675' | |
'93712212817412333736396614268440145102781136638452237': None, | |
'001215066828675577156743620899149453219927095990279465370595' | |
'382746051032806804374240583232077764277035236938031591737545' | |
'565006075334143377885783718104495747266099635479951397326852' | |
'976913730255164034021871202916160388821385176184690157958687' | |
'727825030376670716889428918590522478736330498177399756986634' | |
'264884568651275820170109356014580801944106925880923450789793' | |
'438639125151883353584447144592952612393681652490886998784933' | |
'171324422843256379100850546780072904009720534629404617253948' | |
'967193195625759416767922235722964763061968408262454434993924' | |
'665856622114216281895504252733900364520048602673147023086269' | |
'744835965978128797083839611178614823815309842041312272174969' | |
'623329283110571081409477521263669501822600243013365735115431' | |
'348724179829890643985419198055893074119076549210206561360874' | |
'848116646415552855407047387606318347509113': None, | |
'001218026796589524969549330085261875761266747868453105968331' | |
'303288672350791717417783191230207064555420219244823386114494' | |
'518879415347137637028014616321559074299634591961023142509135' | |
'200974421437271619975639464068209500609013398294762484774665' | |
'042630937880633373934226552984165651644336175395858708891595' | |
'615103532277710109622411693057247259439707673568818514007308' | |
'160779537149817295980511571254567600487210718635809987819732' | |
'034104750304506699147381242387332521315468940316686967113276' | |
'492082825822168087697929354445797807551766138855054811205846' | |
'528623629719853836784409257003654080389768574908647990255785' | |
'627283800243605359317904993909866017052375152253349573690621' | |
'193666260657734470158343483556638246041412911084043848964677' | |
'222898903775883069427527405602923264311814859926918392204628' | |
'5018270401948842874543239951278928136419': None, | |
'001221001221001221001221001221001221001221': '001221', | |
'001230012300123001230012300123001230012300123': '00123', | |
'001236093943139678615574783683559950556242274412855377008652' | |
'657601977750309023485784919653893695920889987639060568603213' | |
'844252163164400494437577255871446229913473423980222496909765' | |
'1421508034610630407911': None, | |
'001239157372986369268897149938042131350681536555142503097893' | |
'432465923172242874845105328376703841387856257744733581164807' | |
'930607187112763320941759603469640644361833952912019826517967' | |
'781908302354399008674101610904584882280049566294919454770755' | |
'8859975216852540272614622057': None, | |
'00124533': None, | |
'00124843945068664169787765293383270911360799': None, | |
'001251564455569461827284105131414267834793491864831038798498' | |
'122653316645807259073842302878598247809762202753441802252816' | |
'020025031289111389236545682102628285356695869837296620775969' | |
'962453066332916145181476846057571964956195244055068836045056' | |
'320400500625782227784730913642052565707133917396745932415519' | |
'399249061326658322903629536921151439299123904881101376720901' | |
'12640801': None, | |
'001254705144291091593475533249686323713927227101631116687578' | |
'419071518193224592220828105395232120451693851944792973651191' | |
'969887076537013801756587202007528230865746549560853199498117' | |
'9422835633626097867': None, | |
'001261034047919293820933165195460277427490542244640605296343': None, | |
'001264222503160556257901390644753476611883691529709228824273' | |
'072060682680151706700379266750948166877370417193426042983565' | |
'107458912768647281921618204804045512010113780025284450063211' | |
'125158027812895069532237673830594184576485461441213653603034' | |
'134007585335018963337547408343868520859671302149178255372945' | |
'638432364096080910240202275600505689': None, | |
'001267427122940430925221799746514575411913814955640050697084' | |
'917617237008871989860583016476552598225602027883396704689480' | |
'354879594423320659062103929024081115335868187579214195183776' | |
'932826362484157160963244613434727503168567807351077313054499' | |
'3662864385297845373891': None, | |
'001270648030495552731893265565438373570520965692503176620076' | |
'238881829733163913595933926302414231257941550190597204574332' | |
'909783989834815756035578144853875476493011435832274459974587' | |
'039390088945362134688691232528589580686149936467598475222363' | |
'405336721728081321473951715374841168996188055908513341804320' | |
'203303684879288437102922490470139771283354510800508259212198' | |
'221092757306226175349428208386277': None, | |
'001277139208173690932311621966794380587484035759897828863346' | |
'104725415070242656449553': None, | |
'001280409731113956466069142125480153649167733674775928297055' | |
'0576184379': None, | |
'001283697047496790757381258023106546854942233632862644415917' | |
'843388960205391527599486521181': None, | |
'001287': None, | |
'001293661060802069857697283311772315653298835705045278137128' | |
'072445019404915912031047865459249676584734799482535575679172' | |
'056921086675291073738680465717981888745148771021992238033635' | |
'1875808538163': None, | |
'001297016861219195849546044098573281452658884565499351491569' | |
'390402075226977950713359273670557717250324254215304798962386' | |
'511024643320363164721141374837872892347600518806744487678339' | |
'818417639429312581063553826199740596627756160830090791180285' | |
'3437094682230869': None, | |
'001300390117035110533159947984395318595578673602080624187256' | |
'176853055916775032509752925877763328998699609882964889466840' | |
'052015604681404421326397919375812743823146944083224967490247' | |
'074122236671': None, | |
'001303780964797913950456323337679269882659713168187744458930' | |
'899608865710560625814863102998696219035202086049543676662320' | |
'730117340286831812255541069100391134289439374185136897': None, | |
'001310615989515072083879423328964613368283093053735255570117' | |
'955439056356487549148099606815203145478374836173': None, | |
'001314060446780551905387647831800262812089356110381077529566' | |
'360052562417871222076215505913272010512483574244415243101182' | |
'654402102496714848883048620236530880420499342969776609724047' | |
'306176084099868593955321944809461235216819973718791064388961' | |
'892247043363994743758212877792378449408672798948751642575558' | |
'475689881734559789750328515111695137976346911957950065703022' | |
'33902759526938239159': None, | |
'0013175230566534914361': None, | |
'001321003963011889035667107': None, | |
'00132802124833997343957503320053120849933598937583': None, | |
'001331557922769640479360852197070572569906790945406125166444' | |
'740346205059920106524633821571238348868175765645805592543275' | |
'63249': None, | |
'001335113484646194926568758344459279038718291054739652870493' | |
'991989319092122830440587449933244325767690253671562082777036' | |
'048064085447263017356475300400534045393858477970627503337783' | |
'711615487316421895861148197596795727636849132176234979973297' | |
'730307076101468624833110814419225634178905206942590120160213' | |
'618157543391188251': None, | |
'00133868808567603748326639892904953145917': None, | |
'001345895020188425302826379542395693135935397039030955585464' | |
'333781965006729475100942126514131897711978465679676985195154' | |
'777927321668909825033647375504710632570659488559892328398384' | |
'925975773889636608344549125168236877523553162853297442799461' | |
'641991924629878869448183041722745625841184387617765814266487' | |
'213997308209959623149394347240915208613728129205921938088829' | |
'071332436069986541049798115746971736204576043068640646029609' | |
'690444145356662180349932705248990578734858681022880215343203' | |
'230148048452220726783310901749663526244952893674293405114401' | |
'076716016150740242261103633916554508748317631224764468371467' | |
'025572005383580080753701211305518169582772543741588156123822' | |
'341857335127860026917900403768506056527590847913862718707940' | |
'7806191117092866756393': None, | |
'001349527665317139': None, | |
'001353179972936400541271989174560216508795669824086603518267' | |
'929634641407307171853856562922868741542625169147496617050067' | |
'658998646820027063599458728010825439783491204330175913396481' | |
'732070365358592692828146143437077131258457374830852503382949' | |
'932341': None, | |
'001356852103120759837177747625508819538670284938941655359565' | |
'807327': None, | |
'001364256480218281036834924965893587994542974079126875852660' | |
'3': None, | |
'001367989056087551299589603283173734610123119015047879616963' | |
'064295485636114911080711354309165526675786593707250341997264' | |
'021887824897400820793433652530779753761969904240766073871409' | |
'028727770177838577291381668946648426812585499316005471956224' | |
'350205198358413132694938440492476060191518467852257181942544' | |
'459644322845417236662106703146374829': None, | |
'001371742112482853223593964334705075445816186556927297668038' | |
'408779149519890260631': None, | |
'001375515818431911966987620357634112792297111416781292984869' | |
'325997248968363136176066024759284731774415405777166437414030' | |
'261348005502063273727647867950481430536451169188445667125171' | |
'939477303988995873452544704264099037138927097661623108665749' | |
'656121045392022008253094910591471801925722145804676753782668' | |
'500687757909215955983493810178817056396148555708390646492434' | |
'662998624484181568088033012379642365887207702888583218707015' | |
'130674002751031636863823933975240715268225584594222833562585' | |
'969738651994497936726272352132049518569463548830811554332874' | |
'828060522696011004126547455295735900962861072902338376891334' | |
'250343878954607977991746905089408528198074277854195323246217' | |
'331499312242090784044016506189821182943603851444291609353507' | |
'565337': None, | |
'001383125864453665283540802213': None, | |
'001386962552011095700416088765603328710124826629680998613037' | |
'447988904299583911234396671289875173370319': None, | |
'0013947001394700139470013947001394700139470013947': '0013947', | |
'001406469760900140646976090014064697609': '0014064697609', | |
'001410437235543018335684062059238363892806770098730606488011' | |
'283497884344146685472496473906911142454160789844851904090267' | |
'983074753173483779971791255289139633286318758815232722143864' | |
'598025387870239774330042313117066290550070521861777150916784' | |
'203102961918194640338504936530324400564174894217207334273624' | |
'823695345557122708039492242595204513399153737658674188998589' | |
'562764456981664315937940761636107193229901269393511988716502' | |
'115655853314527503526093088857545839210155148095909732016925' | |
'246826516220028208744710860366713681241184767277856135401974' | |
'612129760225669957686882933709449929478138222849083215796897' | |
'038081805359661495063469675599435825105782792665726375176304' | |
'654442877291960507757404795486600846262341325811': None, | |
'001414427157': None, | |
'001422475106685633': None, | |
'001426533523537803138373751783166904422253922967189728958630' | |
'527817403708987161198288159771754636233951497860199714693295' | |
'292439372325249643366619115549215406562054208273894436519258' | |
'202567760342368045649072753209700427960057061340941512125534' | |
'950071326676176890156918687589158345221112696148359486447931' | |
'526390870185449358059914407988587731811697574893009985734664' | |
'764621968616262482168330955777460770328102710413694721825962' | |
'910128388017118402282453637660485021398002853067047075606276' | |
'747503566333808844507845934379457917261055634807417974322396' | |
'576319543509272467902995720399429386590584878744650499286733' | |
'238231098430813124108416547788873038516405135520684736091298' | |
'1455064194008559201141226818830242510699': None, | |
'001430615164520743919885550786838340486409155937052932761087' | |
'267525035765379113018597997138769670958512160228898426323319' | |
'027181688125894134477825464949928469241773962804005722460658' | |
'0829756795422031473533619456366237482117310443490701': None, | |
'001434720229555236728837876614060258249641319942611190817790' | |
'53084648493543758967': None, | |
'001443': None, | |
'001443001443001443001443001443001443001443': '001443', | |
'001447178002894356005788712011577424023154848046309696092619' | |
'392185238784370477568740955137481910274963820549927641099855' | |
'282199710564399421128798842257597684515195369030390738060781' | |
'47612156295224312590448625180897250361794500723589': None, | |
'001451378809869375907111756168359941944847605224963715529753' | |
'265602322206095791': None, | |
'001455604075691411935953420669577874818049490538573508005822' | |
'416302765647743813682678311499272197962154294032023289665211' | |
'062590975254730713245997088791848617176128093158660844250363' | |
'901018922852983988355167394468704512372634643377': None, | |
'001464128843338213762811127379209370424597364568081991215226' | |
'939970717423133235724743777452415812591508052708638360175695' | |
'461200585651537335285505124450951683748169838945827232796486' | |
'090775988286969253294289897510980966325036603221083455344070' | |
'278184480234260614934114202049780380673499267935578330893118' | |
'59443631039531478770131771595900439238653': None, | |
'001468428781204111600587371512481644640234948604992657856093' | |
'97944199706314243759177679882525697503671071953010279': None, | |
'001472754050073637702503681885125184094256259204712812960235' | |
'640648011782032400589101620029455081': None, | |
'001477104874446085672082717872968980797636632200886262924667' | |
'651403249630723781388478581979320531757754800590841949778434' | |
'268833087149187592319054652880354505169867060561299852289512' | |
'555391432791728212703101920236336779911373707533234859675036' | |
'927621861152141802067946824224519940915805022156573116691285' | |
'08124076809453471196454948301329394387': None, | |
'001485884101040118870728083209509658246656760772659732540861' | |
'812778603268945022288261515601783060921248142644873699851411' | |
'589895988112927191679049034175334323922734026745913818722139' | |
'67310549777117384843982169390787518573551263': None, | |
'001490312965722801788375558867362146050670640834575260804769': None, | |
'001494768310911808669656203288490284005979073243647234678624' | |
'813153961136023916292974588938714499252615844544095665171898' | |
'355754857997010463378176382660687593423019431988041853512705' | |
'530642750373692077727952167414050822122571': None, | |
'001499250374812593703148425787106446776611694152923538230884' | |
'557721139430284857571214392803598200899550224887556221889055' | |
'472263868065967016491754122938530734632683658170914542728635' | |
'682158920539730134932533733133433283358320839580209895052473' | |
'763118440779610194902548725637181409295352323838080959520239' | |
'88005997': None, | |
'001508295625942684766214177978883861236802413273': None, | |
'001512859304084720121028744326777609682299546142208774583963' | |
'691376701966717095310136157337367624810892586989409984871406' | |
'959152798789712556732223903177004538577912254160363086232980' | |
'3328290468986384266263237518910741301059': None, | |
'001517450682852807283763277693474962063732928679817905918057' | |
'663125948406676783004552352048558421851289833080424886191198' | |
'786039453717754172989377845220030349013657056145675265553869' | |
'499241274658573596358118361153262518968133535660091047040971' | |
'168437025796661608497723823975720789074355083459787556904400' | |
'606980273141122913505311077389984825493171471927162367223065' | |
'250379362670713201820940819423368740515933232169954476479514' | |
'415781487101669195751138088012139605462822458270106221547799' | |
'696509863429438543247344461305007587253414264036418816388467' | |
'374810318664643399089529590288315629742033383915022761760242' | |
'7921092564491654021244309559939301972685887708649468892261': None, | |
'00152207': None, | |
'001531393568147013782542113323124042879019908116385911179173' | |
'047473200612557427258805513016845329249617151607963246554364' | |
'471669218989280245022970903522205206738131699846860643185298' | |
'621745788667687595712098009188361408882082695252679938744257' | |
'274119448698315467075038284839203675344563552833078101071975' | |
'49770290964777947932618683': None, | |
'001536098310291858678955453149': None, | |
'00156494522691705790297339593114241': None, | |
'001569858712715855572998430141287284144427': None, | |
'001579778830963665086887835703': None, | |
'001584786053882725832012678288431061806656101426307448494453' | |
'248811410459587955625990491283676703645007923930269413629160' | |
'063391442155309033280507131537242472266244057052297939778129' | |
'952456418383518225039619651347068145800316957210776545166402' | |
'535657686212361331220285261489698890649762282091917591125198' | |
'098256735340729': None, | |
'001589825119236883942766295707472178060413354531': None, | |
'001594896331738437': None, | |
'001605136436597110754414125200642054574638844301765650080256' | |
'821829855537720706260032102728731942215088282504012841091492' | |
'776886035313': None, | |
'001610305958132045088566827697262479871175523349436392914653' | |
'784219': None, | |
'001615508885298869143780290791599353796445880452342487883683' | |
'360258481421647819063004846526655896607431340872374798061389' | |
'337641357027463651050080775444264943457189014539579967689822' | |
'294022617124394184168012924071082390953150242326332794830371' | |
'567043618739903069466882067851373182552504038772213247172859' | |
'450726978998384491114701130856219709208400646203554119547657' | |
'512116316639741518578352180936995153473344103392568659127625' | |
'201938610662358642972536348949919224555735056542810985460420' | |
'032310177705977382875605815831987075928917609046849757673667' | |
'205169628432956381260096930533117932148626817447495961227786' | |
'752827140549273021': None, | |
'001620745542949756888168557536466774716369529983792544570502' | |
'4311183144246353322528363047': None, | |
'001631321370309951060358890701468189233278955954323': None, | |
'001636661211129296235679214402618657937806873977086743044189' | |
'852700490998363338788870703764320785597381342062193126022913' | |
'256955810147299509': None, | |
'001642036124794745484400656814449917898193760262725779967159' | |
'277504105090311986863711': None, | |
'001647446457990115321252059308072487644151565074135090609555' | |
'189456342668863261943986820428336079077429983525535420098846' | |
'787479406919275123558484349258649093904448105436573311367380' | |
'5601317957166392092257': None, | |
'001658374792703150912106135986733': None, | |
'001663893510815307820299500831946755407653910149750415973377' | |
'703826955074875207986688851913477537437603993344425956738768' | |
'718801996672212978369384359400998336106489184692179700499168' | |
'053244592346089850249584026622296173044925124792013311148086' | |
'522462562396006655574043261231281198003327787021630615640599': None, | |
'001697792869269949066213921901528013582342954159592529711375' | |
'212224108658743633276740237691': None, | |
'001703577512776831345826235093696763202725724020442930153321' | |
'976149914821124361158432708688245315161839863713798977853492' | |
'333901192504258943781942078364565587734241908006814310051107' | |
'325383304940374787052810902896081771720613287904599659284497' | |
'44463373083475298126064735945485519591141396933560477': None, | |
'00171526586620926243567753': None, | |
'001721170395869191049913941480206540447504302925989672977624' | |
'784853700516351118760757314974182444061962134251290877796901' | |
'893287435456110154905335628227194492254733218588640275387263' | |
'339070567986230636833046471600688468158347676419965576592082' | |
'616179': None, | |
'001727115716753022452504317789291882556131260794473229706390' | |
'328151986183074265975820379965457685664939550949913644214162' | |
'348877374784110535405872193436960276338514680483592400690846' | |
'286701208981': None, | |
'001733102253032928942807625649913344887348353552859618717504' | |
'332755632582322357019064124783362218370883882149046793760831' | |
'889081455805892547660311958405545927209705372616984402079722' | |
'703639514731369150779896013864818024263431542461005199306759' | |
'098786828422876949740034662045060658578856152512998266897746' | |
'967071057192374350086655112651646447140381282495667244367417' | |
'677642980935875216637781629116117850953206239168110918544194' | |
'107452339688041594454072790294627383015597920277296360485268' | |
'630849220103986135181975736568457538994800693240901213171577' | |
'123050259965337954939341421143847487': None, | |
'001745200698080279232111692844677137870855148342059336823734' | |
'72949389179755671902268760907504363': None, | |
'001751313485113835376532399299474605954465849387040280210157' | |
'618213660245183887915936952714535901926444833625218914185639' | |
'229422066549912434325744308231173380035026269702276707530647' | |
'985989492119089316987740805604203152364273204903677758318739' | |
'054290718038528896672504378283712784588441330998248686514886' | |
'164623467600700525394045534150612959719789842381786339754816' | |
'112084063047285464098073555166374781085814360770577933450087' | |
'565674255691768826619964973730297723292469352014010507880910' | |
'683012259194395796847635726795096322241681260945709281961471' | |
'103327495621716287215411558669': None, | |
'001757469244288224956063268892794376098418277680140597539543' | |
'057996485061511423550087873462214411247803163444639718804920' | |
'913884007029876977152899824253075571177504393673110720562390' | |
'158172231985940246045694200351493848857644991212653778558875' | |
'21968365553602811950790861159929701230228471': None, | |
'001763668430335097': None, | |
'001776198934280639431616341030195381882770870337477797513321' | |
'492007104795737122557726465364120781527531083481349911190053' | |
'285968028419182948490230905861456483126110124333925399644760' | |
'213143872113676731793960923623445825932504440497335701598579' | |
'04085257548845470692717584369449378330373': None, | |
'0017825311942959': None, | |
'001788908765652951699463327370304114490161': None, | |
'001795332136445242369838420107719928186714542190305206463195' | |
'691202872531418312387791741472172351885098743267504488330341' | |
'113105924596050269299820466786355475763016157989228007181328' | |
'545780969479353680430879712746858168761220825852782764811490' | |
'12567324955116696588868940754039497307': None, | |
'001808318264014466546112115732368896925858951175406871609403' | |
'254972875226039783': None, | |
'001814882032667876588021778584392014519056261343012704174228' | |
'675136116152450090744101633393829401088929219600725952813067' | |
'150635208711433756805807622504537205081669691470054446460980' | |
'036297640653357531760435571687840290381125226860254083484573' | |
'502722323049': None, | |
'001821493624772313296903460837887067395264116575591985428051': None, | |
'001828153564899451553930530164533820840950639853747714808043' | |
'8756855575868372943327239488117': None, | |
'001841620626151012891344383057090239410681399631675874769797' | |
'421731123388581952117863720073664825046040515653775322283609' | |
'576427255985267034990791896869244935543278084714548802946593': None, | |
'001848428835489833641404805914972273567467652495378927911275' | |
'415896487985212569316081330868761552680221811460258780036968' | |
'576709796672828096118299445471349353049907578558225508317929' | |
'759704251386321626617375231053604436229205175600739371534195' | |
'933456561922365988909426987060998151571164510166358595194085' | |
'027726432532347504621072088724584103512014787430683918669131' | |
'238447319778188539741219963031423290203327171903881700554528' | |
'650646950092421441774491682070240295748613678373382624768946' | |
'395563770794824399260628465804066543438077634011090573012939': None, | |
'001855287569573283858998144712430426716141': None, | |
'001862197392923649906890130353817504655493482309124767225325' | |
'884543761638733705772811918063314711359404096834264432029795' | |
'1582867783985102420856610800744878957169459962756052141527': None, | |
'001876172607879924953095684803': None, | |
'0018832391713747645951035781544256120527306967984934086629': None, | |
'0019267822736030828516377649325626204238921': None, | |
'0019342359767891682785299806576402321083172147': None, | |
'001949317738791423': None, | |
'001956947162426614481409': None, | |
'001964636542239685658153241650294695481335952848722986247544' | |
'204322200392927308447937131630648330058939096267190569744597' | |
'249508840864440078585461689587426326129666011787819253438113' | |
'948919449901768172888015717092337917485265225933202357563850' | |
'687622789783889980353634577603143418467583497053045186640471' | |
'512770137524557956777996070726915520628683693516699410609037' | |
'328094302554027504911591355599214145383104125736738703339882' | |
'121807465618860510805500982318271119842829076620825147347740' | |
'6679764243614931237721021611': None, | |
'001972386587771203155818540433925049309664694280078895463510' | |
'848126232741617357': None, | |
'001988071570576540755467196819085487077534791252485089463220' | |
'675944333996023856858846918489065606361829025844930417495029' | |
'821073558648111332007952286282306163021868787276341948310139' | |
'165009940357852882703777335984095427435387673956262425447316' | |
'103379721669980119284294234592445328031809145129224652087475' | |
'149105367793240556660039761431411530815109343936381709741550' | |
'695825049701789264413518886679920477137176938369781312127236' | |
'580516898608349900596421471172962226640159045725646123260437' | |
'3757455268389662027833': None, | |
'001996007984031936127744510978043912175648702594810379241516' | |
'966067864271457085828343313373253493013972055888223552894211' | |
'5768463073852295409181636726546906187624750499': None, | |
'002004008016032064128256513026052104208416833667334669338677' | |
'354709418837675350701402805611222444889779559118236472945891' | |
'783567134268537074148296593186372745490981963927855711422845' | |
'691382765531062124248496993987975951903807615230460921843687' | |
'374749498997995991983967935871743486973947895791583166332665' | |
'330661322645290581162324649298597194388777555110220440881763' | |
'527054108216432865731462925851703406813627254509018036072144' | |
'288577154308617234468937875751503006012024048096192384769539' | |
'078156312625250501': None, | |
'002012072434607645875251509054325955734406438631790744466800' | |
'804828973843058350100603621730382293762575452716297786720321' | |
'931589537223340040241448692152917505030181086519114688128772' | |
'635814889336016096579476861167': None, | |
'002028397565922920892494929006085192697768762677484787018255' | |
'5780933062880324543610547667342799188640973630831643': None, | |
'002036659877800407331975560081466395112016293279022403258655' | |
'804480651731160896130346232179226069246435845213849287169042' | |
'769857433808553971486761710794297352342158859470468431771894' | |
'093686354378818737270875763747454175152749490835030549898167' | |
'006109979633401221995926680244399185336048879837067209775967' | |
'413441955193482688391038696537678207739307535641547861507128' | |
'309572301425661914460285132382892057026476578411405295315682' | |
'281059063136456211812627291242362525458248472505091649694501' | |
'0183299389': None, | |
'002044989775051124744376278118609406952965235173824130879345' | |
'603271983640081799591': None, | |
'002053388090349075975359342915811088295687885010266940451745' | |
'379876796714579055441478439425051334702258726899383983572895' | |
'277207392197125256673511293634496919917864476386036960985626' | |
'283367556468172484599589322381930184804928131416837782340862' | |
'422997946611909650924024640657084188911704312114989733059548' | |
'254620123203285420944558521560574948665297741273100616016427' | |
'104722792607802874743326488706365503080082135523613963039014' | |
'373716632443531827515400410677618069815195071868583162217659' | |
'137577': None, | |
'002070393374741200828157349896480331262939958592132505175983' | |
'436853': None, | |
'002079': None, | |
'002087682672233820459290187891440501043841336116910229645093' | |
'945720250521920668058455114822546972860125260960334029227557' | |
'411273486430062630480167014613778705636743215031315240083507' | |
'30688935281837160751565762004175365344467640918580375782881': None, | |
'0020964360587': None, | |
'002114164904862579281183932346723044397463': None, | |
'002123142250530785562632696390658174097664543524416135881104' | |
'033970276008492569': None, | |
'002132196162046908315565031982942430703624733475479744136460' | |
'554371': None, | |
'002141327623126338329764453961456102783725910064239828693790' | |
'149892933618843683083511777301927194860813704496788008565310' | |
'492505353319057815845824411134903640256959314775160599571734' | |
'47537473233404710920770877944325481798715203426124197': None, | |
'002159827213822894168466522678185745140388768898488120950323' | |
'974082073434125269978401727861771058315334773218142548596112' | |
'3110151187904967602591792656587473': None, | |
'002169197396963123644251626898047722342733188720173535791757' | |
'049891540130151843817787418655097613882863340563991323210412' | |
'147505422993492407809110629067245119305856832971800433839479' | |
'392624728850325379609544468546637744034707158351409978308026' | |
'030368763557483731019522776572668112798264642082429501084598' | |
'698481561822125813449023861171366594360086767895878524945770' | |
'065075921908893709327548806941431670281995661605206073752711' | |
'4967462039045553145336225596529284164859': None, | |
'002178649237472766884531590413943355119825708061': None, | |
'002188183807439824945295404814004376367614879649890590809628' | |
'008752735229759299781181619256017505470459518599562363238512' | |
'03501094091903719912472647702407': None, | |
'002207505518763796909492273730684326710816777041942604856512' | |
'141280353200883': None, | |
'0022172949': None, | |
'002331': None, | |
'002341920374707259953161592505854800936768149882903981264637': None, | |
'0023640661938534278959810874704491725768321513': None, | |
'002375296912114014251781472684085510688836104513064133016627' | |
'078384798099762470308788598574821852731591448931116389548693' | |
'58669833729216152019': None, | |
'002386634844868735083532219570405727923627684964200477326968' | |
'973747016706443914081145584725536992840095465393794749403341' | |
'288782816229116945107398568019093078758949880668257756563245' | |
'823389021479713603818615751789976133651551312649164677804295' | |
'942720763723150357995226730310262529832935560859188544152744' | |
'630071599045346062052505966587112171837708830548926014319809' | |
'0692124105011933174224343675417661097852028639618138424821': None, | |
'0023980815347721822541966426858513189448441247': None, | |
'002421307506053268765133171912832929782082324455205811138014' | |
'527845036319612590799031476997578692493946731234866828087167' | |
'070217917675544794188861985472154963680387409200968523': None, | |
'00243309': None, | |
'002444987775061124694376528117359413202933985330073349633251' | |
'833740831295843520782396088019559902200488997555012224938875' | |
'305623471882640586797066014669926650366748166259168704156479' | |
'217603911980440097799511': None, | |
'002457': None, | |
'002457002457002457002457002457002457002457': '002457', | |
'002481389578163771712158808933': None, | |
'002493765586034912718204488778054862842892768079800498753117' | |
'206982543640897755610972568578553615960099750623441396508728' | |
'179551122194513715710723192019950124688279301745635910224438' | |
'90274314214463840399': None, | |
'002506265664160401': None, | |
'002518891687657430730478589420654911838790931989924433249370' | |
'277078085642317380352644836272040302267': None, | |
'002544529262086513994910941475826972010178117048346055979643' | |
'765903307888040712468193384223918575063613231552162849872773' | |
'5368956743': None, | |
'002557544757033248081841432225063938618925831202046035805626' | |
'598465473145780051150895140664961636828644501278772378516624' | |
'04092071611253196930946291560102301790281329923273657289': None, | |
'002570694087403598971722365038560411311053984575835475578406' | |
'169665809768637532133676092544987146529562982005141388174807' | |
'197943444730077120822622107969151670951156812339331619537275' | |
'064267352185089974293059125964010282776349614395886889460154' | |
'241645244215938303341902313624678663239074550128534704370179' | |
'948586118251928020565552699228791773778920308483290488431876' | |
'6066838046272493573264781491': None, | |
'002583979328165374677': None, | |
'002610966057441253263707571801566579634464751958224543080939' | |
'947780678851174934725848563968668407310704960835509138381201' | |
'044386422976501305483028720626631853785900783289817232375979' | |
'112271540469973890339425587467362924281984334203655352480417' | |
'754569190600522193211488250652741514360313315926892950391644' | |
'908616187989556135770234986945169712793733681462140992167101' | |
'8276762402088772845953': None, | |
'002624671916010498687664041994750656167979': None, | |
'002638522427440633245382585751978891820580474934036939313984' | |
'168865435356200527704485488126649076517150395778364116094986' | |
'807387862796833773087071240105540897097625329815303430079155' | |
'672823218997361477572559366754617414248021108179419525065963' | |
'060686015831134564643799472295514511873350923482849604221635' | |
'883905013192612137203166226912928759894459102902374670184696' | |
'569920844327176781': None, | |
'002652519893899204244031830238726790450928381962864721485411' | |
'140583554376657824933687': None, | |
'002680965147453083109919571045576407506702412868632707774798' | |
'927613941018766756032171581769436997319034852546916890080428' | |
'954423592493297587131367292225201072386058981233243967828418' | |
'230563': None, | |
'002695417789757412398921832884097035040431266846361185983827' | |
'493261455525606469': None, | |
'00271': None, | |
'002724795640326975476839237057220708446866485013623978201634' | |
'877384196185286103542234332425068119891008174386920980926430' | |
'517711171662125340599455040871934604904632152588555858310626' | |
'702997275204359673024523160762942779291553133514986376021798' | |
'365122615803814713896457765667574931880108991825613079019073' | |
'569482288828337874659400544959128065395095367847411444141689' | |
'373297': None, | |
'0027548209366391184573': None, | |
'002770083102493074792243767313019390581717451523545706371191' | |
'135734072022160664819944598337950138504155124653739612188365' | |
'650969529085872576177285318559556786703601108033240997229916' | |
'897506925207756232686980609418282548476454293628808864265927' | |
'977839335180055401662049861495844875346260387811634349030470' | |
'914127423822714681440443213296398891966759': None, | |
'002785515320334261838440111420612813370473537604456824512534' | |
'818941504178272980501392757660167130919220055710306406685236' | |
'76880222841225626740947075208913649025069637883008356545961': None, | |
'002801120448179271708683473389355742296918767507': None, | |
'00283286118980169971671388101983': None, | |
'002849': None, | |
'002932551319648093841642228739': None, | |
'003': None, | |
'003021148036253776435045317220543806646525679758308157099697' | |
'88519637462235649546827794561933534743202416918429': None, | |
'003039513677811550151975683890577507598784194528875379939209' | |
'726443768996960486322188449848024316109422492401215805471124' | |
'620060790273556231': None, | |
'003058103975535168195718654434250764525993883792048929663608' | |
'562691131498470948012232415902140672782874617737': None, | |
'003095975232198142414860681114551083591331269349845201238390' | |
'092879256965944272445820433436532507739938080495356037151702' | |
'786377708978328173374613': None, | |
'00311526479750778816199376947040498442367601246105919': None, | |
'0031347962382445141065830721': None, | |
'003154574132492113564668769716088328075709779179810725552050' | |
'4731861198738170347': None, | |
'003194888178913738019169329073482428115015974440894568690095' | |
'846645367412140575079872204472843450479233226837060702875399' | |
'361022364217252396166134185303514376996805111821086261980830' | |
'670926517571884984025559105431309904153354632587859424920127' | |
'795527156549520766773162939297124600638977635782747603833865' | |
'814696485623': None, | |
'003215434083601286173633440514469453376205787781350482315112' | |
'540192926045016077170418006430868167202572347266881028938906' | |
'75241157556270096463022508038585209': None, | |
'0032362459546925566343042071197411': None, | |
'003257328990228013029315960912052117263843648208469055374592' | |
'833876221498371335504885993485342019543973941368078175895765' | |
'472312703583061889250814332247557': None, | |
'0033': None, | |
'003322259136212624584717607973421926910299': None, | |
'003460207612456747404844290657439446366782006920415224913494' | |
'809688581314878892733564013840830449826989619377162629757785' | |
'467128027681660899653979238754325259515570934256055363321799' | |
'307958477508650519031141868512110726643598615916955017301038' | |
'06228373702422145328719723183391': None, | |
'003484320557491289198606271777': None, | |
'003533568904593639575971731448763250883392226148409893992932' | |
'862190812720848056537102473498233215547703180212014134275618' | |
'374558303886925795053': None, | |
'0035587188612099644128113879': None, | |
'003717472118959107806691449814126394052044609665427509293680' | |
'297397769516728624535315985130111524163568773234200743494423' | |
'791821561338289962825278810408921933085501858736059479553903' | |
'345724907063197026022304832713754646840148698884758364312267' | |
'6579925650557620817843866171': None, | |
'00374531835205992509363295880149812734082397': None, | |
'003802281368821292775665399239543726235741444866920152091254' | |
'752851711026615969581749049429657794676806083650190114068441' | |
'064638783269961977186311787072243346007604562737642585551330' | |
'798479087452471482889733840304182509505703422053231939163498' | |
'0988593155893536121673': None, | |
'0038314176245210727969348659': None, | |
'003861': None, | |
'003891050583657587548638132295719844357976653696498054474708' | |
'171206225680933852140077821011673151750972762645914396887159' | |
'533073929961089494163424124513618677042801556420233463035019' | |
'455252918287937743190661478599221789883268482490272373540856' | |
'0311284046692607': None, | |
'0039525691699604743083': None, | |
'00398406374501992031872509960159362549800796812749': None, | |
'00401606425702811244979919678714859437751': None, | |
'004048582995951417': None, | |
'004115226337448559670781893': None, | |
'004149377593360995850622406639': None, | |
'0041841': None, | |
'0042194092827': None, | |
'004291845493562231759656652360515021459227467811158798283261' | |
'802575107296137339055793991416309012875536480686695278969957' | |
'081545064377682403433476394849785407725321888412017167381974' | |
'2489270386266094420600858369098712446351931330472103': None, | |
'004329': None, | |
'004366812227074235807860262008733624454148471615720524017467' | |
'248908296943231441048034934497816593886462882096069868995633' | |
'187772925764192139737991266375545851528384279475982532751091' | |
'703056768558951965065502183406113537117903930131': None, | |
'004405286343612334801762114537444933920704845814977973568281' | |
'93832599118942731277533039647577092511013215859030837': None, | |
'004484304932735426008968609865470852017937219730941704035874' | |
'439461883408071748878923766816143497757847533632286995515695' | |
'067264573991031390134529147982062780269058295964125560538116' | |
'591928251121076233183856502242152466367713': None, | |
'004524886877828054298642533936651583710407239819': None, | |
'00456621': None, | |
'0045662100456621004566210045662100456621': '00456621', | |
'004608294930875576036866359447': None, | |
'00469483568075117370892018779342723': None, | |
'004739336492890995260663507109': None, | |
'004784688995215311': None, | |
'0048309178743961352657': None, | |
'004926108374384236453201970443349753694581280788177339901477' | |
'832512315270935960591133': None, | |
'004975124378109452736318407960199': None, | |
'005291': None, | |
'0053475935828877': None, | |
'005464480874316939890710382513661202185792349726775956284153': None, | |
'005524861878453038674033149171270718232044198895027624309392' | |
'265193370165745856353591160220994475138121546961325966850828' | |
'729281767955801104972375690607734806629834254143646408839779': None, | |
'005586592178770949720670391061452513966480446927374301675977' | |
'653631284916201117318435754189944134078212290502793296089385' | |
'4748603351955307262569832402234636871508379888268156424581': None, | |
'0056497175141242937853107344632768361581920903954802259887': None, | |
'0057803468208092485549132947976878612716763': None, | |
'005847953216374269': None, | |
'005917159763313609467455621301775147928994082840236686390532' | |
'544378698224852071': None, | |
'005988023952095808383233532934131736526946107784431137724550' | |
'898203592814371257485029940119760479041916167664670658682634' | |
'7305389221556886227544910179640718562874251497': None, | |
'006134969325153374233128834355828220858895705521472392638036' | |
'809815950920245398773': None, | |
'006211180124223602484472049689440993788819875776397515527950' | |
'310559': None, | |
'0062893081761': None, | |
'006369426751592356687898089171974522292993630573248407643312' | |
'101910828025477707': None, | |
'0065359477124183': None, | |
'006622516556291390728476821192052980132450331125827814569536' | |
'423841059602649': None, | |
'006711409395973154362416107382550335570469798657718120805369' | |
'127516778523489932885906040268456375838926174496644295302013' | |
'4228187919463087248322147651': None, | |
'006802721088435374149659863945578231292517': None, | |
'006993': None, | |
'0070921985815602836879432624113475177304964539': None, | |
'0071942446043165467625899280575539568345323741': None, | |
'00729927': None, | |
'0072992700729927007299270072992700729927': '00729927', | |
'007518796992481203': None, | |
'007633587786259541984732824427480916030534351145038167938931' | |
'297709923664122137404580152671755725190839694656488549618320' | |
'6106870229': None, | |
'007751937984496124031': None, | |
'007874015748031496062992125984251968503937': None, | |
'00813': None, | |
'0082644628099173553719': None, | |
'008403361344537815126050420168067226890756302521': None, | |
'008547': None, | |
'008849557522123893805309734513274336283185840707964601769911' | |
'5044247787610619469026548672566371681415929203539823': None, | |
'009': None, | |
'01': None, | |
'010309278350515463917525773195876288659793814432989690721649' | |
'484536082474226804123711340206185567': None, | |
'010752688172043': None, | |
'010989': None, | |
'01123595505617977528089887640449438202247191': None, | |
'0114942528735632183908045977': None, | |
'01204819277108433734939759036144578313253': None, | |
'012345679': None, | |
'0126582278481': None, | |
'012987': None, | |
'01369863': None, | |
'01408450704225352112676056338028169': None, | |
'0144927536231884057971': None, | |
'014925373134328358208955223880597': None, | |
'015873': None, | |
'016393442622950819672131147540983606557377049180327868852459': None, | |
'0169491525423728813559322033898305084745762711864406779661': None, | |
'017543859649122807': None, | |
'0188679245283': None, | |
'0196078431372549': None, | |
'020408163265306122448979591836734693877551': None, | |
'0212765957446808510638297872340425531914893617': None, | |
'023255813953488372093': None, | |
'02439': None, | |
'0344827586206896551724137931': None, | |
'037': None, | |
'037037037037037037037037037037037037037037037': '037', | |
'0434782608695652173913': None, | |
'047619': None, | |
'047619047619047619047619047619047619047619': '047619', | |
'052631578947368421': None, | |
'0588235294117647': None, | |
'076923': None, | |
'09': None, | |
'142857': None, | |
}, | |
"3 (edge cases)": { | |
'00': '0', | |
digits * 10000: digits, | |
digits * 10001: digits, | |
'0' * 10000: '0', | |
'0' * 10000 + '1': None, | |
INCREMENTAL[0] * 200: INCREMENTAL[0], | |
INCREMENTAL[1] * 2: INCREMENTAL[1], | |
}, | |
} | |
FUNCTIONS = [ | |
# fail, | |
# null, | |
antti, | |
carpetpython, | |
davidism, | |
david_zhang, | |
riad, | |
saksham, | |
shashank, | |
tigerhawk_1, | |
tigerhawk_2, | |
zero, | |
] | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
import seaborn.apionly as sns | |
plt.style.use('ggplot') | |
def run_tests(tests, funcs): | |
df = pd.DataFrame(columns = [func.__name__ for func in funcs]) | |
benchmark = defaultdict(list) | |
failed = set() | |
for value, expected in tests.items(): | |
for func in funcs: | |
name = func.__name__ | |
result = func(value) | |
if result != expected: | |
#print('\n{}\n{} failed with {}'.format( | |
# crop(value), name, crop(result) | |
#)) | |
failed.add(name) | |
time = pd.np.nan | |
else: | |
time = timeit(partial(func, value), number=100) | |
df.loc[str(value), name] = time | |
benchmark[name].append(time) | |
return df | |
if __name__ == '__main__': | |
dfs = {} | |
for corpus in sorted(CORPORA): | |
print('\n= Corpus {} ='.format(corpus)) | |
dfs[corpus] = run_tests(CORPORA[corpus], FUNCTIONS) | |
fig = plt.figure(figsize=(16,8)) | |
ax = fig.add_subplot(1,1,1,xscale='log') | |
medianprops = dict(linestyle='-', linewidth=2.5) | |
meanprops = dict(marker='x', color='black', ms=5, mew=2) | |
bp = sns.boxplot(dfs[corpus], ax=ax, vert=False, sym='o', showmeans=True, fliersize=5, | |
medianprops=medianprops, meanprops=meanprops) | |
ax.set_xlabel('Time (s)') | |
ax.set_ylabel('Function') | |
ax.set_title(corpus) | |
plt.show() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment