1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413304143041530416304173041830419304203042130422304233042430425304263042730428304293043030431304323043330434304353043630437304383043930440304413044230443304443044530446304473044830449304503045130452304533045430455304563045730458304593046030461304623046330464304653046630467304683046930470304713047230473304743047530476304773047830479304803048130482304833048430485304863048730488304893049030491304923049330494304953049630497304983049930500305013050230503305043050530506305073050830509305103051130512305133051430515305163051730518305193052030521305223052330524305253052630527305283052930530305313053230533305343053530536305373053830539305403054130542305433054430545305463054730548305493055030551305523055330554305553055630557305583055930560305613056230563305643056530566305673056830569305703057130572305733057430575305763057730578305793058030581305823058330584305853058630587305883058930590305913059230593305943059530596305973059830599306003060130602306033060430605306063060730608306093061030611306123061330614306153061630617306183061930620306213062230623306243062530626306273062830629306303063130632306333063430635306363063730638306393064030641306423064330644306453064630647306483064930650306513065230653306543065530656306573065830659306603066130662306633066430665306663066730668306693067030671306723067330674306753067630677306783067930680306813068230683306843068530686306873068830689306903069130692306933069430695306963069730698306993070030701307023070330704307053070630707307083070930710307113071230713307143071530716307173071830719307203072130722307233072430725307263072730728307293073030731307323073330734307353073630737307383073930740307413074230743307443074530746307473074830749307503075130752307533075430755307563075730758307593076030761307623076330764307653076630767307683076930770307713077230773307743077530776307773077830779307803078130782307833078430785307863078730788307893079030791307923079330794307953079630797307983079930800308013080230803308043080530806308073080830809308103081130812308133081430815308163081730818308193082030821308223082330824308253082630827308283082930830308313083230833308343083530836308373083830839308403084130842308433084430845308463084730848308493085030851308523085330854308553085630857308583085930860308613086230863308643086530866308673086830869308703087130872308733087430875308763087730878308793088030881308823088330884308853088630887308883088930890308913089230893308943089530896308973089830899309003090130902309033090430905309063090730908309093091030911309123091330914309153091630917309183091930920309213092230923309243092530926309273092830929309303093130932309333093430935309363093730938309393094030941309423094330944309453094630947309483094930950309513095230953309543095530956309573095830959309603096130962309633096430965309663096730968309693097030971309723097330974309753097630977309783097930980309813098230983309843098530986309873098830989309903099130992309933099430995309963099730998309993100031001310023100331004310053100631007310083100931010310113101231013310143101531016310173101831019310203102131022310233102431025310263102731028310293103031031310323103331034310353103631037310383103931040310413104231043310443104531046310473104831049310503105131052310533105431055310563105731058310593106031061310623106331064310653106631067310683106931070310713107231073310743107531076310773107831079310803108131082310833108431085310863108731088310893109031091310923109331094310953109631097310983109931100311013110231103311043110531106311073110831109311103111131112311133111431115311163111731118311193112031121311223112331124311253112631127311283112931130311313113231133311343113531136311373113831139311403114131142311433114431145311463114731148311493115031151311523115331154311553115631157311583115931160311613116231163311643116531166311673116831169311703117131172311733117431175311763117731178311793118031181311823118331184311853118631187311883118931190311913119231193311943119531196311973119831199312003120131202312033120431205312063120731208312093121031211312123121331214312153121631217312183121931220312213122231223312243122531226312273122831229312303123131232312333123431235312363123731238312393124031241312423124331244312453124631247312483124931250312513125231253312543125531256312573125831259312603126131262312633126431265312663126731268312693127031271312723127331274312753127631277312783127931280312813128231283312843128531286312873128831289312903129131292312933129431295312963129731298312993130031301313023130331304313053130631307313083130931310313113131231313313143131531316313173131831319313203132131322313233132431325313263132731328313293133031331313323133331334313353133631337313383133931340313413134231343313443134531346313473134831349313503135131352313533135431355313563135731358313593136031361313623136331364313653136631367313683136931370313713137231373313743137531376313773137831379313803138131382313833138431385313863138731388313893139031391313923139331394313953139631397313983139931400314013140231403314043140531406314073140831409314103141131412314133141431415314163141731418314193142031421314223142331424314253142631427314283142931430314313143231433314343143531436314373143831439314403144131442314433144431445314463144731448314493145031451314523145331454314553145631457314583145931460314613146231463314643146531466314673146831469314703147131472314733147431475314763147731478314793148031481314823148331484314853148631487314883148931490314913149231493314943149531496314973149831499315003150131502315033150431505315063150731508315093151031511315123151331514315153151631517315183151931520315213152231523315243152531526315273152831529315303153131532315333153431535315363153731538315393154031541315423154331544315453154631547315483154931550315513155231553315543155531556315573155831559315603156131562315633156431565315663156731568315693157031571315723157331574315753157631577315783157931580315813158231583315843158531586315873158831589315903159131592315933159431595315963159731598315993160031601316023160331604316053160631607316083160931610316113161231613316143161531616316173161831619316203162131622316233162431625316263162731628316293163031631316323163331634316353163631637316383163931640316413164231643316443164531646316473164831649316503165131652316533165431655316563165731658316593166031661316623166331664316653166631667316683166931670316713167231673316743167531676316773167831679316803168131682316833168431685316863168731688316893169031691316923169331694316953169631697316983169931700317013170231703317043170531706317073170831709317103171131712317133171431715317163171731718317193172031721317223172331724317253172631727317283172931730317313173231733317343173531736317373173831739317403174131742317433174431745317463174731748317493175031751317523175331754317553175631757317583175931760317613176231763317643176531766317673176831769317703177131772317733177431775317763177731778317793178031781317823178331784317853178631787317883178931790317913179231793317943179531796317973179831799318003180131802318033180431805318063180731808318093181031811318123181331814318153181631817318183181931820318213182231823318243182531826318273182831829318303183131832318333183431835318363183731838318393184031841318423184331844318453184631847318483184931850318513185231853318543185531856318573185831859318603186131862318633186431865318663186731868318693187031871318723187331874318753187631877318783187931880318813188231883318843188531886318873188831889318903189131892318933189431895318963189731898318993190031901319023190331904319053190631907319083190931910319113191231913319143191531916319173191831919319203192131922319233192431925319263192731928319293193031931319323193331934319353193631937319383193931940319413194231943319443194531946319473194831949319503195131952319533195431955319563195731958319593196031961319623196331964319653196631967319683196931970319713197231973319743197531976319773197831979319803198131982319833198431985319863198731988319893199031991319923199331994319953199631997319983199932000320013200232003320043200532006320073200832009320103201132012320133201432015320163201732018320193202032021320223202332024320253202632027320283202932030320313203232033320343203532036320373203832039320403204132042320433204432045320463204732048320493205032051320523205332054320553205632057320583205932060320613206232063320643206532066320673206832069320703207132072320733207432075320763207732078320793208032081320823208332084320853208632087320883208932090320913209232093320943209532096320973209832099321003210132102321033210432105321063210732108321093211032111321123211332114321153211632117321183211932120321213212232123321243212532126321273212832129321303213132132321333213432135321363213732138321393214032141321423214332144321453214632147321483214932150321513215232153321543215532156321573215832159321603216132162321633216432165321663216732168321693217032171321723217332174321753217632177321783217932180321813218232183321843218532186321873218832189321903219132192321933219432195321963219732198321993220032201322023220332204322053220632207322083220932210322113221232213322143221532216322173221832219322203222132222322233222432225322263222732228322293223032231322323223332234322353223632237322383223932240322413224232243322443224532246322473224832249322503225132252322533225432255322563225732258322593226032261322623226332264322653226632267322683226932270322713227232273322743227532276322773227832279322803228132282322833228432285322863228732288322893229032291322923229332294322953229632297322983229932300323013230232303323043230532306323073230832309323103231132312323133231432315323163231732318323193232032321323223232332324323253232632327323283232932330323313233232333323343233532336323373233832339323403234132342323433234432345323463234732348323493235032351323523235332354323553235632357323583235932360323613236232363323643236532366323673236832369323703237132372323733237432375323763237732378323793238032381323823238332384323853238632387323883238932390323913239232393323943239532396323973239832399324003240132402324033240432405324063240732408324093241032411324123241332414324153241632417324183241932420324213242232423324243242532426324273242832429324303243132432324333243432435324363243732438324393244032441324423244332444324453244632447324483244932450324513245232453324543245532456324573245832459324603246132462324633246432465324663246732468324693247032471324723247332474324753247632477324783247932480324813248232483324843248532486324873248832489324903249132492324933249432495324963249732498324993250032501325023250332504325053250632507325083250932510325113251232513325143251532516325173251832519325203252132522325233252432525325263252732528325293253032531325323253332534325353253632537325383253932540325413254232543325443254532546325473254832549325503255132552325533255432555325563255732558325593256032561325623256332564325653256632567325683256932570325713257232573325743257532576325773257832579325803258132582325833258432585325863258732588325893259032591325923259332594325953259632597325983259932600326013260232603326043260532606326073260832609326103261132612326133261432615326163261732618326193262032621326223262332624326253262632627326283262932630326313263232633326343263532636326373263832639326403264132642326433264432645326463264732648326493265032651326523265332654326553265632657326583265932660326613266232663326643266532666326673266832669326703267132672326733267432675326763267732678326793268032681326823268332684326853268632687326883268932690326913269232693326943269532696326973269832699327003270132702327033270432705327063270732708327093271032711327123271332714327153271632717327183271932720327213272232723327243272532726327273272832729327303273132732327333273432735327363273732738327393274032741327423274332744327453274632747327483274932750327513275232753327543275532756327573275832759327603276132762327633276432765327663276732768327693277032771327723277332774327753277632777327783277932780327813278232783327843278532786327873278832789327903279132792327933279432795327963279732798327993280032801328023280332804328053280632807328083280932810328113281232813328143281532816328173281832819328203282132822328233282432825328263282732828328293283032831328323283332834328353283632837328383283932840328413284232843328443284532846328473284832849328503285132852328533285432855328563285732858328593286032861328623286332864328653286632867328683286932870328713287232873328743287532876328773287832879328803288132882328833288432885328863288732888328893289032891328923289332894328953289632897328983289932900329013290232903329043290532906329073290832909329103291132912329133291432915329163291732918329193292032921329223292332924329253292632927329283292932930329313293232933329343293532936329373293832939329403294132942329433294432945329463294732948329493295032951329523295332954329553295632957329583295932960329613296232963329643296532966329673296832969329703297132972329733297432975329763297732978329793298032981329823298332984329853298632987329883298932990329913299232993329943299532996329973299832999330003300133002330033300433005330063300733008330093301033011330123301333014330153301633017330183301933020330213302233023330243302533026330273302833029330303303133032330333303433035330363303733038330393304033041330423304333044330453304633047330483304933050330513305233053330543305533056330573305833059330603306133062330633306433065330663306733068330693307033071330723307333074330753307633077330783307933080330813308233083330843308533086330873308833089330903309133092330933309433095330963309733098330993310033101331023310333104331053310633107331083310933110331113311233113331143311533116331173311833119331203312133122331233312433125331263312733128331293313033131331323313333134331353313633137331383313933140331413314233143331443314533146331473314833149331503315133152331533315433155331563315733158331593316033161331623316333164331653316633167331683316933170331713317233173331743317533176331773317833179331803318133182331833318433185331863318733188331893319033191331923319333194331953319633197331983319933200332013320233203332043320533206332073320833209332103321133212332133321433215332163321733218332193322033221332223322333224332253322633227332283322933230332313323233233332343323533236332373323833239332403324133242332433324433245332463324733248332493325033251332523325333254332553325633257332583325933260332613326233263332643326533266332673326833269332703327133272332733327433275332763327733278332793328033281332823328333284332853328633287332883328933290332913329233293332943329533296332973329833299333003330133302333033330433305333063330733308333093331033311333123331333314333153331633317333183331933320333213332233323333243332533326333273332833329333303333133332333333333433335333363333733338333393334033341333423334333344333453334633347333483334933350333513335233353333543335533356333573335833359333603336133362333633336433365333663336733368333693337033371333723337333374333753337633377333783337933380333813338233383333843338533386333873338833389333903339133392333933339433395333963339733398333993340033401334023340333404334053340633407334083340933410334113341233413334143341533416334173341833419334203342133422334233342433425334263342733428334293343033431334323343333434334353343633437334383343933440334413344233443334443344533446334473344833449334503345133452334533345433455334563345733458334593346033461334623346333464334653346633467334683346933470334713347233473334743347533476334773347833479334803348133482334833348433485334863348733488334893349033491334923349333494334953349633497334983349933500335013350233503335043350533506335073350833509335103351133512335133351433515335163351733518335193352033521335223352333524335253352633527335283352933530335313353233533335343353533536335373353833539335403354133542335433354433545335463354733548335493355033551335523355333554335553355633557335583355933560335613356233563335643356533566335673356833569335703357133572335733357433575335763357733578335793358033581335823358333584335853358633587335883358933590335913359233593335943359533596335973359833599336003360133602336033360433605336063360733608336093361033611336123361333614336153361633617336183361933620336213362233623336243362533626336273362833629336303363133632336333363433635336363363733638336393364033641336423364333644336453364633647336483364933650336513365233653336543365533656336573365833659336603366133662336633366433665336663366733668336693367033671336723367333674336753367633677336783367933680336813368233683336843368533686336873368833689336903369133692336933369433695336963369733698336993370033701337023370333704337053370633707337083370933710337113371233713337143371533716337173371833719337203372133722337233372433725337263372733728337293373033731337323373333734337353373633737337383373933740337413374233743337443374533746337473374833749337503375133752337533375433755337563375733758337593376033761337623376333764337653376633767337683376933770337713377233773337743377533776337773377833779337803378133782337833378433785337863378733788337893379033791337923379333794337953379633797337983379933800338013380233803338043380533806338073380833809338103381133812338133381433815338163381733818338193382033821338223382333824338253382633827338283382933830338313383233833338343383533836338373383833839338403384133842338433384433845338463384733848338493385033851338523385333854338553385633857338583385933860338613386233863338643386533866338673386833869338703387133872338733387433875338763387733878338793388033881338823388333884338853388633887338883388933890338913389233893338943389533896338973389833899339003390133902339033390433905339063390733908339093391033911339123391333914339153391633917339183391933920339213392233923339243392533926339273392833929339303393133932339333393433935339363393733938339393394033941339423394333944339453394633947339483394933950339513395233953339543395533956339573395833959339603396133962339633396433965339663396733968339693397033971339723397333974339753397633977339783397933980339813398233983339843398533986339873398833989339903399133992339933399433995339963399733998339993400034001340023400334004340053400634007340083400934010340113401234013340143401534016340173401834019340203402134022340233402434025340263402734028340293403034031340323403334034340353403634037340383403934040340413404234043340443404534046340473404834049340503405134052340533405434055340563405734058340593406034061340623406334064340653406634067340683406934070340713407234073340743407534076340773407834079340803408134082340833408434085340863408734088340893409034091340923409334094340953409634097340983409934100341013410234103341043410534106341073410834109341103411134112341133411434115341163411734118341193412034121341223412334124341253412634127341283412934130341313413234133341343413534136341373413834139341403414134142341433414434145341463414734148341493415034151341523415334154341553415634157341583415934160341613416234163341643416534166341673416834169341703417134172341733417434175341763417734178341793418034181341823418334184341853418634187341883418934190341913419234193341943419534196341973419834199342003420134202342033420434205342063420734208342093421034211342123421334214342153421634217342183421934220342213422234223342243422534226342273422834229342303423134232342333423434235342363423734238342393424034241342423424334244342453424634247342483424934250342513425234253342543425534256342573425834259342603426134262342633426434265342663426734268342693427034271342723427334274342753427634277342783427934280342813428234283342843428534286342873428834289342903429134292342933429434295342963429734298342993430034301343023430334304343053430634307343083430934310343113431234313343143431534316343173431834319343203432134322343233432434325343263432734328343293433034331343323433334334343353433634337343383433934340343413434234343343443434534346343473434834349343503435134352343533435434355343563435734358343593436034361343623436334364343653436634367343683436934370343713437234373343743437534376343773437834379343803438134382343833438434385343863438734388343893439034391343923439334394343953439634397343983439934400344013440234403344043440534406344073440834409344103441134412344133441434415344163441734418344193442034421344223442334424344253442634427344283442934430344313443234433344343443534436344373443834439344403444134442344433444434445344463444734448344493445034451344523445334454344553445634457344583445934460344613446234463344643446534466344673446834469344703447134472344733447434475344763447734478344793448034481344823448334484344853448634487344883448934490344913449234493344943449534496344973449834499345003450134502345033450434505345063450734508345093451034511345123451334514345153451634517345183451934520345213452234523345243452534526345273452834529345303453134532345333453434535345363453734538345393454034541345423454334544345453454634547345483454934550345513455234553345543455534556345573455834559345603456134562345633456434565345663456734568345693457034571345723457334574345753457634577345783457934580345813458234583345843458534586345873458834589345903459134592345933459434595345963459734598345993460034601346023460334604346053460634607346083460934610346113461234613346143461534616346173461834619346203462134622346233462434625346263462734628346293463034631346323463334634346353463634637346383463934640346413464234643346443464534646346473464834649346503465134652346533465434655346563465734658346593466034661346623466334664346653466634667346683466934670346713467234673346743467534676346773467834679346803468134682346833468434685346863468734688346893469034691346923469334694346953469634697346983469934700347013470234703347043470534706347073470834709347103471134712347133471434715347163471734718347193472034721347223472334724347253472634727347283472934730347313473234733347343473534736347373473834739347403474134742347433474434745347463474734748347493475034751347523475334754347553475634757347583475934760347613476234763347643476534766347673476834769347703477134772347733477434775347763477734778347793478034781347823478334784347853478634787347883478934790347913479234793347943479534796347973479834799348003480134802348033480434805348063480734808348093481034811348123481334814348153481634817348183481934820348213482234823348243482534826348273482834829348303483134832348333483434835348363483734838348393484034841348423484334844348453484634847348483484934850348513485234853348543485534856348573485834859348603486134862348633486434865348663486734868348693487034871348723487334874348753487634877348783487934880348813488234883348843488534886348873488834889348903489134892348933489434895348963489734898348993490034901349023490334904349053490634907349083490934910349113491234913349143491534916349173491834919349203492134922349233492434925349263492734928349293493034931349323493334934349353493634937349383493934940349413494234943349443494534946349473494834949349503495134952349533495434955349563495734958349593496034961349623496334964349653496634967349683496934970349713497234973349743497534976349773497834979349803498134982349833498434985349863498734988349893499034991349923499334994349953499634997349983499935000350013500235003350043500535006350073500835009350103501135012350133501435015350163501735018350193502035021350223502335024350253502635027350283502935030350313503235033350343503535036350373503835039350403504135042350433504435045350463504735048350493505035051350523505335054350553505635057350583505935060350613506235063350643506535066350673506835069350703507135072350733507435075350763507735078350793508035081350823508335084350853508635087350883508935090350913509235093350943509535096350973509835099351003510135102351033510435105351063510735108351093511035111351123511335114351153511635117351183511935120351213512235123351243512535126351273512835129351303513135132351333513435135351363513735138351393514035141351423514335144351453514635147351483514935150351513515235153351543515535156351573515835159351603516135162351633516435165351663516735168351693517035171351723517335174351753517635177351783517935180351813518235183351843518535186351873518835189351903519135192351933519435195351963519735198351993520035201352023520335204352053520635207352083520935210352113521235213352143521535216352173521835219352203522135222352233522435225352263522735228352293523035231352323523335234352353523635237352383523935240352413524235243352443524535246352473524835249352503525135252352533525435255352563525735258352593526035261352623526335264352653526635267352683526935270352713527235273352743527535276352773527835279352803528135282352833528435285352863528735288352893529035291352923529335294352953529635297352983529935300353013530235303353043530535306353073530835309353103531135312353133531435315353163531735318353193532035321353223532335324353253532635327353283532935330353313533235333353343533535336353373533835339353403534135342353433534435345353463534735348353493535035351353523535335354353553535635357353583535935360353613536235363353643536535366353673536835369353703537135372353733537435375353763537735378353793538035381353823538335384353853538635387353883538935390353913539235393353943539535396353973539835399354003540135402354033540435405354063540735408354093541035411354123541335414354153541635417354183541935420354213542235423354243542535426354273542835429354303543135432354333543435435354363543735438354393544035441354423544335444354453544635447354483544935450354513545235453354543545535456354573545835459354603546135462354633546435465354663546735468354693547035471354723547335474354753547635477354783547935480354813548235483354843548535486354873548835489354903549135492354933549435495354963549735498354993550035501355023550335504355053550635507355083550935510355113551235513355143551535516355173551835519355203552135522355233552435525355263552735528355293553035531355323553335534355353553635537355383553935540355413554235543355443554535546355473554835549355503555135552355533555435555355563555735558355593556035561355623556335564355653556635567355683556935570355713557235573355743557535576355773557835579355803558135582355833558435585355863558735588355893559035591355923559335594355953559635597355983559935600356013560235603356043560535606356073560835609356103561135612356133561435615356163561735618356193562035621356223562335624356253562635627356283562935630356313563235633356343563535636356373563835639356403564135642356433564435645356463564735648356493565035651356523565335654356553565635657356583565935660356613566235663356643566535666356673566835669356703567135672356733567435675356763567735678356793568035681356823568335684356853568635687356883568935690356913569235693356943569535696356973569835699357003570135702357033570435705357063570735708357093571035711357123571335714357153571635717357183571935720357213572235723357243572535726357273572835729357303573135732357333573435735357363573735738357393574035741357423574335744357453574635747357483574935750357513575235753357543575535756357573575835759357603576135762357633576435765357663576735768357693577035771357723577335774357753577635777357783577935780357813578235783357843578535786357873578835789357903579135792357933579435795357963579735798357993580035801358023580335804358053580635807358083580935810358113581235813358143581535816358173581835819358203582135822358233582435825358263582735828358293583035831358323583335834358353583635837358383583935840358413584235843358443584535846358473584835849358503585135852358533585435855358563585735858358593586035861358623586335864358653586635867358683586935870358713587235873358743587535876358773587835879358803588135882358833588435885358863588735888358893589035891358923589335894358953589635897358983589935900359013590235903359043590535906359073590835909359103591135912359133591435915359163591735918359193592035921359223592335924359253592635927359283592935930359313593235933359343593535936359373593835939359403594135942359433594435945359463594735948359493595035951359523595335954359553595635957359583595935960359613596235963359643596535966359673596835969359703597135972359733597435975359763597735978359793598035981359823598335984359853598635987359883598935990359913599235993359943599535996359973599835999360003600136002360033600436005360063600736008360093601036011360123601336014360153601636017360183601936020360213602236023360243602536026360273602836029360303603136032360333603436035360363603736038360393604036041360423604336044360453604636047360483604936050360513605236053360543605536056360573605836059360603606136062360633606436065360663606736068360693607036071360723607336074360753607636077360783607936080360813608236083360843608536086360873608836089360903609136092360933609436095360963609736098360993610036101361023610336104361053610636107361083610936110361113611236113361143611536116361173611836119361203612136122361233612436125361263612736128361293613036131361323613336134361353613636137361383613936140361413614236143361443614536146361473614836149361503615136152361533615436155361563615736158361593616036161361623616336164361653616636167361683616936170361713617236173361743617536176361773617836179361803618136182361833618436185361863618736188361893619036191361923619336194361953619636197361983619936200362013620236203362043620536206362073620836209362103621136212362133621436215362163621736218362193622036221362223622336224362253622636227362283622936230362313623236233362343623536236362373623836239362403624136242362433624436245362463624736248362493625036251362523625336254362553625636257362583625936260362613626236263362643626536266362673626836269362703627136272362733627436275362763627736278362793628036281362823628336284362853628636287362883628936290362913629236293362943629536296362973629836299363003630136302363033630436305363063630736308363093631036311363123631336314363153631636317363183631936320363213632236323363243632536326363273632836329363303633136332363333633436335363363633736338363393634036341363423634336344363453634636347363483634936350363513635236353363543635536356363573635836359363603636136362363633636436365363663636736368363693637036371363723637336374363753637636377363783637936380363813638236383363843638536386363873638836389363903639136392363933639436395363963639736398363993640036401364023640336404364053640636407364083640936410364113641236413364143641536416364173641836419364203642136422364233642436425364263642736428364293643036431364323643336434364353643636437364383643936440364413644236443364443644536446364473644836449364503645136452364533645436455364563645736458364593646036461364623646336464364653646636467364683646936470364713647236473364743647536476364773647836479364803648136482364833648436485364863648736488364893649036491364923649336494364953649636497364983649936500365013650236503365043650536506365073650836509365103651136512365133651436515365163651736518365193652036521365223652336524365253652636527365283652936530365313653236533365343653536536365373653836539365403654136542365433654436545365463654736548365493655036551365523655336554365553655636557365583655936560365613656236563365643656536566365673656836569365703657136572365733657436575365763657736578365793658036581365823658336584365853658636587365883658936590365913659236593365943659536596365973659836599366003660136602366033660436605366063660736608366093661036611366123661336614366153661636617366183661936620366213662236623366243662536626366273662836629366303663136632366333663436635366363663736638366393664036641366423664336644366453664636647366483664936650366513665236653366543665536656366573665836659366603666136662366633666436665366663666736668366693667036671366723667336674366753667636677366783667936680366813668236683366843668536686366873668836689366903669136692366933669436695366963669736698366993670036701367023670336704367053670636707367083670936710367113671236713367143671536716367173671836719367203672136722367233672436725367263672736728367293673036731367323673336734367353673636737367383673936740367413674236743367443674536746367473674836749367503675136752367533675436755367563675736758367593676036761367623676336764367653676636767367683676936770367713677236773367743677536776367773677836779367803678136782367833678436785367863678736788367893679036791367923679336794367953679636797367983679936800368013680236803368043680536806368073680836809368103681136812368133681436815368163681736818368193682036821368223682336824368253682636827368283682936830368313683236833368343683536836368373683836839368403684136842368433684436845368463684736848368493685036851368523685336854368553685636857368583685936860368613686236863368643686536866368673686836869368703687136872368733687436875368763687736878368793688036881368823688336884368853688636887368883688936890368913689236893368943689536896368973689836899369003690136902369033690436905369063690736908369093691036911369123691336914369153691636917369183691936920369213692236923369243692536926369273692836929369303693136932369333693436935369363693736938369393694036941369423694336944369453694636947369483694936950369513695236953369543695536956369573695836959369603696136962369633696436965369663696736968369693697036971369723697336974369753697636977369783697936980369813698236983369843698536986369873698836989369903699136992369933699436995369963699736998369993700037001370023700337004370053700637007370083700937010370113701237013370143701537016370173701837019370203702137022370233702437025370263702737028370293703037031370323703337034370353703637037370383703937040370413704237043370443704537046370473704837049370503705137052370533705437055370563705737058370593706037061370623706337064370653706637067370683706937070370713707237073370743707537076370773707837079370803708137082370833708437085370863708737088370893709037091370923709337094370953709637097370983709937100371013710237103371043710537106371073710837109371103711137112371133711437115371163711737118371193712037121371223712337124371253712637127371283712937130371313713237133371343713537136371373713837139371403714137142371433714437145371463714737148371493715037151371523715337154371553715637157371583715937160371613716237163371643716537166371673716837169371703717137172371733717437175371763717737178371793718037181371823718337184371853718637187371883718937190371913719237193371943719537196371973719837199372003720137202372033720437205372063720737208372093721037211372123721337214372153721637217372183721937220372213722237223372243722537226372273722837229372303723137232372333723437235372363723737238372393724037241372423724337244372453724637247372483724937250372513725237253372543725537256372573725837259372603726137262372633726437265372663726737268372693727037271372723727337274372753727637277372783727937280372813728237283372843728537286372873728837289372903729137292372933729437295372963729737298372993730037301373023730337304373053730637307373083730937310373113731237313373143731537316373173731837319373203732137322373233732437325373263732737328373293733037331373323733337334373353733637337373383733937340373413734237343373443734537346373473734837349373503735137352373533735437355373563735737358373593736037361373623736337364373653736637367373683736937370373713737237373373743737537376373773737837379373803738137382373833738437385373863738737388373893739037391373923739337394373953739637397373983739937400374013740237403374043740537406374073740837409374103741137412374133741437415374163741737418374193742037421374223742337424374253742637427374283742937430374313743237433374343743537436374373743837439374403744137442374433744437445374463744737448374493745037451374523745337454374553745637457374583745937460374613746237463374643746537466374673746837469374703747137472374733747437475374763747737478374793748037481374823748337484374853748637487374883748937490374913749237493374943749537496374973749837499375003750137502375033750437505375063750737508375093751037511375123751337514375153751637517375183751937520375213752237523375243752537526375273752837529375303753137532375333753437535375363753737538375393754037541375423754337544375453754637547375483754937550375513755237553375543755537556375573755837559375603756137562375633756437565375663756737568375693757037571375723757337574375753757637577375783757937580375813758237583375843758537586375873758837589375903759137592375933759437595375963759737598375993760037601376023760337604376053760637607376083760937610376113761237613376143761537616376173761837619376203762137622376233762437625376263762737628376293763037631376323763337634376353763637637376383763937640376413764237643376443764537646376473764837649376503765137652376533765437655376563765737658376593766037661376623766337664376653766637667376683766937670376713767237673376743767537676376773767837679376803768137682376833768437685376863768737688376893769037691376923769337694376953769637697376983769937700377013770237703377043770537706377073770837709377103771137712377133771437715377163771737718377193772037721377223772337724377253772637727377283772937730377313773237733377343773537736377373773837739377403774137742377433774437745377463774737748377493775037751377523775337754377553775637757377583775937760377613776237763377643776537766377673776837769377703777137772377733777437775377763777737778377793778037781377823778337784377853778637787377883778937790377913779237793377943779537796377973779837799378003780137802378033780437805378063780737808378093781037811378123781337814378153781637817378183781937820378213782237823378243782537826378273782837829378303783137832378333783437835378363783737838378393784037841378423784337844378453784637847378483784937850378513785237853378543785537856378573785837859378603786137862378633786437865378663786737868378693787037871378723787337874378753787637877378783787937880378813788237883378843788537886378873788837889378903789137892378933789437895378963789737898378993790037901379023790337904379053790637907379083790937910379113791237913379143791537916379173791837919379203792137922379233792437925379263792737928379293793037931379323793337934379353793637937379383793937940379413794237943379443794537946379473794837949379503795137952379533795437955379563795737958379593796037961379623796337964379653796637967379683796937970379713797237973379743797537976379773797837979379803798137982379833798437985379863798737988379893799037991379923799337994379953799637997379983799938000380013800238003380043800538006380073800838009380103801138012380133801438015380163801738018380193802038021380223802338024380253802638027380283802938030380313803238033380343803538036380373803838039380403804138042380433804438045380463804738048380493805038051380523805338054380553805638057380583805938060380613806238063380643806538066380673806838069380703807138072380733807438075380763807738078380793808038081380823808338084380853808638087380883808938090380913809238093380943809538096380973809838099381003810138102381033810438105381063810738108381093811038111381123811338114381153811638117381183811938120381213812238123381243812538126381273812838129381303813138132381333813438135381363813738138381393814038141381423814338144381453814638147381483814938150381513815238153381543815538156381573815838159381603816138162381633816438165381663816738168381693817038171381723817338174381753817638177381783817938180381813818238183381843818538186381873818838189381903819138192381933819438195381963819738198381993820038201382023820338204382053820638207382083820938210382113821238213382143821538216382173821838219382203822138222382233822438225382263822738228382293823038231382323823338234382353823638237382383823938240382413824238243382443824538246382473824838249382503825138252382533825438255382563825738258382593826038261382623826338264382653826638267382683826938270382713827238273382743827538276382773827838279382803828138282382833828438285382863828738288382893829038291382923829338294382953829638297382983829938300383013830238303383043830538306383073830838309383103831138312383133831438315383163831738318383193832038321383223832338324383253832638327383283832938330383313833238333383343833538336383373833838339383403834138342383433834438345383463834738348383493835038351383523835338354383553835638357383583835938360383613836238363383643836538366383673836838369383703837138372383733837438375383763837738378383793838038381383823838338384383853838638387383883838938390383913839238393383943839538396383973839838399384003840138402384033840438405384063840738408384093841038411384123841338414384153841638417384183841938420384213842238423384243842538426384273842838429384303843138432384333843438435384363843738438384393844038441384423844338444384453844638447384483844938450384513845238453384543845538456384573845838459384603846138462384633846438465384663846738468384693847038471384723847338474384753847638477384783847938480384813848238483384843848538486384873848838489384903849138492384933849438495384963849738498384993850038501385023850338504385053850638507385083850938510385113851238513385143851538516385173851838519385203852138522385233852438525385263852738528385293853038531385323853338534385353853638537385383853938540385413854238543385443854538546385473854838549385503855138552385533855438555385563855738558385593856038561385623856338564385653856638567385683856938570385713857238573385743857538576385773857838579385803858138582385833858438585385863858738588385893859038591385923859338594385953859638597385983859938600386013860238603386043860538606386073860838609386103861138612386133861438615386163861738618386193862038621386223862338624386253862638627386283862938630386313863238633386343863538636386373863838639386403864138642386433864438645386463864738648386493865038651386523865338654386553865638657386583865938660386613866238663386643866538666386673866838669386703867138672386733867438675386763867738678386793868038681386823868338684386853868638687386883868938690386913869238693386943869538696386973869838699387003870138702387033870438705387063870738708387093871038711387123871338714387153871638717387183871938720387213872238723387243872538726387273872838729387303873138732387333873438735387363873738738387393874038741387423874338744387453874638747387483874938750387513875238753387543875538756387573875838759387603876138762387633876438765387663876738768387693877038771387723877338774387753877638777387783877938780387813878238783387843878538786387873878838789387903879138792387933879438795387963879738798387993880038801388023880338804388053880638807388083880938810388113881238813388143881538816388173881838819388203882138822388233882438825388263882738828388293883038831388323883338834388353883638837388383883938840388413884238843388443884538846388473884838849388503885138852388533885438855388563885738858388593886038861388623886338864388653886638867388683886938870388713887238873388743887538876388773887838879388803888138882388833888438885388863888738888388893889038891388923889338894388953889638897388983889938900389013890238903389043890538906389073890838909389103891138912389133891438915389163891738918389193892038921389223892338924389253892638927389283892938930389313893238933389343893538936389373893838939389403894138942389433894438945389463894738948389493895038951389523895338954389553895638957389583895938960389613896238963389643896538966389673896838969389703897138972389733897438975389763897738978389793898038981389823898338984389853898638987389883898938990389913899238993389943899538996389973899838999390003900139002390033900439005390063900739008390093901039011390123901339014390153901639017390183901939020390213902239023390243902539026390273902839029390303903139032390333903439035390363903739038390393904039041390423904339044390453904639047390483904939050390513905239053390543905539056390573905839059390603906139062390633906439065390663906739068390693907039071390723907339074390753907639077390783907939080390813908239083390843908539086390873908839089390903909139092390933909439095390963909739098390993910039101391023910339104391053910639107391083910939110391113911239113391143911539116391173911839119391203912139122391233912439125391263912739128391293913039131391323913339134391353913639137391383913939140391413914239143391443914539146391473914839149391503915139152391533915439155391563915739158391593916039161391623916339164391653916639167391683916939170391713917239173391743917539176391773917839179391803918139182391833918439185391863918739188391893919039191391923919339194391953919639197391983919939200392013920239203392043920539206392073920839209392103921139212392133921439215392163921739218392193922039221392223922339224392253922639227392283922939230392313923239233392343923539236392373923839239392403924139242392433924439245392463924739248392493925039251392523925339254392553925639257392583925939260392613926239263392643926539266392673926839269392703927139272392733927439275392763927739278392793928039281392823928339284392853928639287392883928939290392913929239293392943929539296392973929839299393003930139302393033930439305393063930739308393093931039311393123931339314393153931639317393183931939320393213932239323393243932539326393273932839329393303933139332393333933439335393363933739338393393934039341393423934339344393453934639347393483934939350393513935239353393543935539356393573935839359393603936139362393633936439365393663936739368393693937039371393723937339374393753937639377393783937939380393813938239383393843938539386393873938839389393903939139392393933939439395393963939739398393993940039401394023940339404394053940639407394083940939410394113941239413394143941539416394173941839419394203942139422394233942439425394263942739428394293943039431394323943339434394353943639437394383943939440394413944239443394443944539446394473944839449394503945139452394533945439455394563945739458394593946039461394623946339464394653946639467394683946939470394713947239473394743947539476394773947839479394803948139482394833948439485394863948739488394893949039491394923949339494394953949639497394983949939500395013950239503395043950539506395073950839509395103951139512395133951439515395163951739518395193952039521395223952339524395253952639527395283952939530395313953239533395343953539536395373953839539395403954139542395433954439545395463954739548395493955039551395523955339554395553955639557395583955939560395613956239563395643956539566395673956839569395703957139572395733957439575395763957739578395793958039581395823958339584395853958639587395883958939590395913959239593395943959539596395973959839599396003960139602396033960439605396063960739608396093961039611396123961339614396153961639617396183961939620396213962239623396243962539626396273962839629396303963139632396333963439635396363963739638396393964039641396423964339644396453964639647396483964939650396513965239653396543965539656396573965839659396603966139662396633966439665396663966739668396693967039671396723967339674396753967639677396783967939680396813968239683396843968539686396873968839689396903969139692396933969439695396963969739698396993970039701397023970339704397053970639707397083970939710397113971239713397143971539716397173971839719397203972139722397233972439725397263972739728397293973039731397323973339734397353973639737397383973939740397413974239743397443974539746397473974839749397503975139752397533975439755397563975739758397593976039761397623976339764397653976639767397683976939770397713977239773397743977539776397773977839779397803978139782397833978439785397863978739788397893979039791397923979339794397953979639797397983979939800398013980239803398043980539806398073980839809398103981139812398133981439815398163981739818398193982039821398223982339824398253982639827398283982939830398313983239833398343983539836398373983839839398403984139842398433984439845398463984739848398493985039851398523985339854398553985639857398583985939860398613986239863398643986539866398673986839869398703987139872398733987439875398763987739878398793988039881398823988339884398853988639887398883988939890398913989239893398943989539896398973989839899399003990139902399033990439905399063990739908399093991039911399123991339914399153991639917399183991939920399213992239923399243992539926399273992839929399303993139932399333993439935399363993739938399393994039941399423994339944399453994639947399483994939950399513995239953399543995539956399573995839959399603996139962399633996439965399663996739968399693997039971399723997339974399753997639977399783997939980399813998239983399843998539986399873998839989399903999139992399933999439995399963999739998399994000040001400024000340004400054000640007400084000940010400114001240013400144001540016400174001840019400204002140022400234002440025400264002740028400294003040031400324003340034400354003640037400384003940040400414004240043400444004540046400474004840049400504005140052400534005440055400564005740058400594006040061400624006340064400654006640067400684006940070400714007240073400744007540076400774007840079400804008140082400834008440085400864008740088400894009040091400924009340094400954009640097400984009940100401014010240103401044010540106401074010840109401104011140112401134011440115401164011740118401194012040121401224012340124401254012640127401284012940130401314013240133401344013540136401374013840139401404014140142401434014440145401464014740148401494015040151401524015340154401554015640157401584015940160401614016240163401644016540166401674016840169401704017140172401734017440175401764017740178401794018040181401824018340184401854018640187401884018940190401914019240193401944019540196401974019840199402004020140202402034020440205402064020740208402094021040211402124021340214402154021640217402184021940220402214022240223402244022540226402274022840229402304023140232402334023440235402364023740238402394024040241402424024340244402454024640247402484024940250402514025240253402544025540256402574025840259402604026140262402634026440265402664026740268402694027040271402724027340274402754027640277402784027940280402814028240283402844028540286402874028840289402904029140292402934029440295402964029740298402994030040301403024030340304403054030640307403084030940310403114031240313403144031540316403174031840319403204032140322403234032440325403264032740328403294033040331403324033340334403354033640337403384033940340403414034240343403444034540346403474034840349403504035140352403534035440355403564035740358403594036040361403624036340364403654036640367403684036940370403714037240373403744037540376403774037840379403804038140382403834038440385403864038740388403894039040391403924039340394403954039640397403984039940400404014040240403404044040540406404074040840409404104041140412404134041440415404164041740418404194042040421404224042340424404254042640427404284042940430404314043240433404344043540436404374043840439404404044140442404434044440445404464044740448404494045040451404524045340454404554045640457404584045940460404614046240463404644046540466404674046840469404704047140472404734047440475404764047740478404794048040481404824048340484404854048640487404884048940490404914049240493404944049540496404974049840499405004050140502405034050440505405064050740508405094051040511405124051340514405154051640517405184051940520405214052240523405244052540526405274052840529405304053140532405334053440535405364053740538405394054040541405424054340544405454054640547405484054940550405514055240553405544055540556405574055840559405604056140562405634056440565405664056740568405694057040571405724057340574405754057640577405784057940580405814058240583405844058540586405874058840589405904059140592405934059440595405964059740598405994060040601406024060340604406054060640607406084060940610406114061240613406144061540616406174061840619406204062140622406234062440625406264062740628406294063040631406324063340634406354063640637406384063940640406414064240643406444064540646406474064840649406504065140652406534065440655406564065740658406594066040661406624066340664406654066640667406684066940670406714067240673406744067540676406774067840679406804068140682406834068440685406864068740688406894069040691406924069340694406954069640697406984069940700407014070240703407044070540706407074070840709407104071140712407134071440715407164071740718407194072040721407224072340724407254072640727407284072940730407314073240733407344073540736407374073840739407404074140742407434074440745407464074740748407494075040751407524075340754407554075640757407584075940760407614076240763407644076540766407674076840769407704077140772407734077440775407764077740778407794078040781407824078340784407854078640787407884078940790407914079240793407944079540796407974079840799408004080140802408034080440805408064080740808408094081040811408124081340814408154081640817408184081940820408214082240823408244082540826408274082840829408304083140832408334083440835408364083740838408394084040841408424084340844408454084640847408484084940850408514085240853408544085540856408574085840859408604086140862408634086440865408664086740868408694087040871408724087340874408754087640877408784087940880408814088240883408844088540886408874088840889408904089140892408934089440895408964089740898408994090040901409024090340904409054090640907409084090940910409114091240913409144091540916409174091840919409204092140922409234092440925409264092740928409294093040931409324093340934409354093640937409384093940940409414094240943409444094540946409474094840949409504095140952409534095440955409564095740958409594096040961409624096340964409654096640967409684096940970409714097240973409744097540976409774097840979409804098140982409834098440985409864098740988409894099040991409924099340994409954099640997409984099941000410014100241003410044100541006410074100841009410104101141012410134101441015410164101741018410194102041021410224102341024410254102641027410284102941030410314103241033410344103541036410374103841039410404104141042410434104441045410464104741048410494105041051410524105341054410554105641057410584105941060410614106241063410644106541066410674106841069410704107141072410734107441075410764107741078410794108041081410824108341084410854108641087410884108941090410914109241093410944109541096410974109841099411004110141102411034110441105411064110741108411094111041111411124111341114411154111641117411184111941120411214112241123411244112541126411274112841129411304113141132411334113441135411364113741138411394114041141411424114341144411454114641147411484114941150411514115241153411544115541156411574115841159411604116141162411634116441165411664116741168411694117041171411724117341174411754117641177411784117941180411814118241183411844118541186411874118841189411904119141192411934119441195411964119741198411994120041201412024120341204412054120641207412084120941210412114121241213412144121541216412174121841219412204122141222412234122441225412264122741228412294123041231412324123341234412354123641237412384123941240412414124241243412444124541246412474124841249412504125141252412534125441255412564125741258412594126041261412624126341264412654126641267412684126941270412714127241273412744127541276412774127841279412804128141282412834128441285412864128741288412894129041291412924129341294412954129641297412984129941300413014130241303413044130541306413074130841309413104131141312413134131441315413164131741318413194132041321413224132341324413254132641327413284132941330413314133241333413344133541336413374133841339413404134141342413434134441345413464134741348413494135041351413524135341354413554135641357413584135941360413614136241363413644136541366413674136841369413704137141372413734137441375413764137741378413794138041381413824138341384413854138641387413884138941390413914139241393413944139541396413974139841399414004140141402414034140441405414064140741408414094141041411414124141341414414154141641417414184141941420414214142241423414244142541426414274142841429414304143141432414334143441435414364143741438414394144041441414424144341444414454144641447414484144941450414514145241453414544145541456414574145841459414604146141462414634146441465414664146741468414694147041471414724147341474414754147641477414784147941480414814148241483414844148541486414874148841489414904149141492414934149441495414964149741498414994150041501415024150341504415054150641507415084150941510415114151241513415144151541516415174151841519415204152141522415234152441525415264152741528415294153041531415324153341534415354153641537415384153941540415414154241543415444154541546415474154841549415504155141552415534155441555415564155741558415594156041561415624156341564415654156641567415684156941570415714157241573415744157541576415774157841579415804158141582415834158441585415864158741588415894159041591415924159341594415954159641597415984159941600416014160241603416044160541606416074160841609416104161141612416134161441615416164161741618416194162041621416224162341624416254162641627416284162941630416314163241633416344163541636416374163841639416404164141642416434164441645416464164741648416494165041651416524165341654416554165641657416584165941660416614166241663416644166541666416674166841669416704167141672416734167441675416764167741678416794168041681416824168341684416854168641687416884168941690416914169241693416944169541696416974169841699417004170141702417034170441705417064170741708417094171041711417124171341714417154171641717417184171941720417214172241723417244172541726417274172841729417304173141732417334173441735417364173741738417394174041741417424174341744417454174641747417484174941750417514175241753417544175541756417574175841759417604176141762417634176441765417664176741768417694177041771417724177341774417754177641777417784177941780417814178241783417844178541786417874178841789417904179141792417934179441795417964179741798417994180041801418024180341804418054180641807418084180941810418114181241813418144181541816418174181841819418204182141822418234182441825418264182741828418294183041831418324183341834418354183641837418384183941840418414184241843418444184541846418474184841849418504185141852418534185441855418564185741858418594186041861418624186341864418654186641867418684186941870418714187241873418744187541876418774187841879418804188141882418834188441885418864188741888418894189041891418924189341894418954189641897418984189941900419014190241903419044190541906419074190841909419104191141912419134191441915419164191741918419194192041921419224192341924419254192641927419284192941930419314193241933419344193541936419374193841939419404194141942419434194441945419464194741948419494195041951419524195341954419554195641957419584195941960419614196241963419644196541966419674196841969419704197141972419734197441975419764197741978419794198041981419824198341984419854198641987419884198941990419914199241993419944199541996419974199841999420004200142002420034200442005420064200742008420094201042011420124201342014420154201642017420184201942020420214202242023420244202542026420274202842029420304203142032420334203442035420364203742038420394204042041420424204342044420454204642047420484204942050420514205242053420544205542056420574205842059420604206142062420634206442065420664206742068420694207042071420724207342074420754207642077420784207942080420814208242083420844208542086420874208842089420904209142092420934209442095420964209742098420994210042101421024210342104421054210642107421084210942110421114211242113421144211542116421174211842119421204212142122421234212442125421264212742128421294213042131421324213342134421354213642137421384213942140421414214242143421444214542146421474214842149421504215142152421534215442155421564215742158421594216042161421624216342164421654216642167421684216942170421714217242173421744217542176421774217842179421804218142182421834218442185421864218742188421894219042191421924219342194421954219642197421984219942200422014220242203422044220542206422074220842209422104221142212422134221442215422164221742218422194222042221422224222342224422254222642227422284222942230422314223242233422344223542236422374223842239422404224142242422434224442245422464224742248422494225042251422524225342254422554225642257422584225942260422614226242263422644226542266422674226842269422704227142272422734227442275422764227742278422794228042281422824228342284422854228642287422884228942290422914229242293422944229542296422974229842299423004230142302423034230442305423064230742308423094231042311423124231342314423154231642317423184231942320423214232242323423244232542326423274232842329423304233142332423334233442335423364233742338423394234042341423424234342344423454234642347423484234942350423514235242353423544235542356423574235842359423604236142362423634236442365423664236742368423694237042371423724237342374423754237642377423784237942380423814238242383423844238542386423874238842389423904239142392423934239442395423964239742398423994240042401424024240342404424054240642407424084240942410424114241242413424144241542416424174241842419424204242142422424234242442425424264242742428424294243042431424324243342434424354243642437424384243942440424414244242443424444244542446424474244842449424504245142452424534245442455424564245742458424594246042461424624246342464424654246642467424684246942470424714247242473424744247542476424774247842479424804248142482424834248442485424864248742488424894249042491424924249342494424954249642497424984249942500425014250242503425044250542506425074250842509425104251142512425134251442515425164251742518425194252042521425224252342524425254252642527425284252942530425314253242533425344253542536425374253842539425404254142542425434254442545425464254742548425494255042551425524255342554425554255642557425584255942560425614256242563425644256542566425674256842569425704257142572425734257442575425764257742578425794258042581425824258342584425854258642587425884258942590425914259242593425944259542596425974259842599426004260142602426034260442605426064260742608426094261042611426124261342614426154261642617426184261942620426214262242623426244262542626426274262842629426304263142632426334263442635426364263742638426394264042641426424264342644426454264642647426484264942650426514265242653426544265542656426574265842659426604266142662426634266442665426664266742668426694267042671426724267342674426754267642677426784267942680426814268242683426844268542686426874268842689426904269142692426934269442695426964269742698426994270042701427024270342704427054270642707427084270942710427114271242713427144271542716427174271842719427204272142722427234272442725427264272742728427294273042731427324273342734427354273642737427384273942740427414274242743427444274542746427474274842749427504275142752427534275442755427564275742758427594276042761427624276342764427654276642767427684276942770427714277242773427744277542776427774277842779427804278142782427834278442785427864278742788427894279042791427924279342794427954279642797427984279942800428014280242803428044280542806428074280842809428104281142812428134281442815428164281742818428194282042821428224282342824428254282642827428284282942830428314283242833428344283542836428374283842839428404284142842428434284442845428464284742848428494285042851428524285342854428554285642857428584285942860428614286242863428644286542866428674286842869428704287142872428734287442875428764287742878428794288042881428824288342884428854288642887428884288942890428914289242893428944289542896428974289842899429004290142902429034290442905429064290742908429094291042911429124291342914429154291642917429184291942920429214292242923429244292542926429274292842929429304293142932429334293442935429364293742938429394294042941429424294342944429454294642947429484294942950429514295242953429544295542956429574295842959429604296142962429634296442965429664296742968429694297042971429724297342974429754297642977429784297942980429814298242983429844298542986429874298842989429904299142992429934299442995429964299742998429994300043001430024300343004430054300643007430084300943010430114301243013430144301543016430174301843019430204302143022430234302443025430264302743028430294303043031430324303343034430354303643037430384303943040430414304243043430444304543046430474304843049430504305143052430534305443055430564305743058430594306043061430624306343064430654306643067430684306943070430714307243073430744307543076430774307843079430804308143082430834308443085430864308743088430894309043091430924309343094430954309643097430984309943100431014310243103431044310543106431074310843109431104311143112431134311443115431164311743118431194312043121431224312343124431254312643127431284312943130431314313243133431344313543136431374313843139431404314143142431434314443145431464314743148431494315043151431524315343154431554315643157431584315943160431614316243163431644316543166431674316843169431704317143172431734317443175431764317743178431794318043181431824318343184431854318643187431884318943190431914319243193431944319543196431974319843199432004320143202432034320443205432064320743208432094321043211432124321343214432154321643217432184321943220432214322243223432244322543226432274322843229432304323143232432334323443235432364323743238432394324043241432424324343244432454324643247432484324943250432514325243253432544325543256432574325843259432604326143262432634326443265432664326743268432694327043271432724327343274432754327643277432784327943280432814328243283432844328543286432874328843289432904329143292432934329443295432964329743298432994330043301433024330343304433054330643307433084330943310433114331243313433144331543316433174331843319433204332143322433234332443325433264332743328433294333043331433324333343334433354333643337433384333943340433414334243343433444334543346433474334843349433504335143352433534335443355433564335743358433594336043361433624336343364433654336643367433684336943370433714337243373433744337543376433774337843379433804338143382433834338443385433864338743388433894339043391433924339343394433954339643397433984339943400434014340243403434044340543406434074340843409434104341143412434134341443415434164341743418434194342043421434224342343424434254342643427434284342943430434314343243433434344343543436434374343843439434404344143442434434344443445434464344743448434494345043451434524345343454434554345643457434584345943460434614346243463434644346543466434674346843469434704347143472434734347443475434764347743478434794348043481434824348343484434854348643487434884348943490434914349243493434944349543496434974349843499435004350143502435034350443505435064350743508435094351043511435124351343514435154351643517435184351943520435214352243523435244352543526435274352843529435304353143532435334353443535435364353743538435394354043541435424354343544435454354643547435484354943550435514355243553435544355543556435574355843559435604356143562435634356443565435664356743568435694357043571435724357343574435754357643577435784357943580435814358243583435844358543586435874358843589435904359143592435934359443595435964359743598435994360043601436024360343604436054360643607436084360943610436114361243613436144361543616436174361843619436204362143622436234362443625436264362743628436294363043631436324363343634436354363643637436384363943640436414364243643436444364543646436474364843649436504365143652436534365443655436564365743658436594366043661436624366343664436654366643667436684366943670436714367243673436744367543676436774367843679436804368143682436834368443685436864368743688436894369043691436924369343694436954369643697436984369943700437014370243703437044370543706437074370843709437104371143712437134371443715437164371743718437194372043721437224372343724437254372643727437284372943730437314373243733437344373543736437374373843739437404374143742437434374443745437464374743748437494375043751437524375343754437554375643757437584375943760437614376243763437644376543766437674376843769437704377143772437734377443775437764377743778437794378043781437824378343784437854378643787437884378943790437914379243793437944379543796437974379843799438004380143802438034380443805438064380743808438094381043811438124381343814438154381643817438184381943820438214382243823438244382543826438274382843829438304383143832438334383443835438364383743838438394384043841438424384343844438454384643847438484384943850438514385243853438544385543856438574385843859438604386143862438634386443865438664386743868438694387043871438724387343874438754387643877438784387943880438814388243883438844388543886438874388843889438904389143892438934389443895438964389743898438994390043901439024390343904439054390643907439084390943910439114391243913439144391543916439174391843919439204392143922439234392443925439264392743928439294393043931439324393343934439354393643937439384393943940439414394243943439444394543946439474394843949439504395143952439534395443955439564395743958439594396043961439624396343964439654396643967439684396943970439714397243973439744397543976439774397843979439804398143982439834398443985439864398743988439894399043991439924399343994439954399643997439984399944000440014400244003440044400544006440074400844009440104401144012440134401444015440164401744018440194402044021440224402344024440254402644027440284402944030440314403244033440344403544036440374403844039440404404144042440434404444045440464404744048440494405044051440524405344054440554405644057440584405944060440614406244063440644406544066440674406844069440704407144072440734407444075440764407744078440794408044081440824408344084440854408644087440884408944090440914409244093440944409544096440974409844099441004410144102441034410444105441064410744108441094411044111441124411344114441154411644117441184411944120441214412244123441244412544126441274412844129441304413144132441334413444135441364413744138441394414044141441424414344144441454414644147441484414944150441514415244153441544415544156441574415844159441604416144162441634416444165441664416744168441694417044171441724417344174441754417644177441784417944180441814418244183441844418544186441874418844189441904419144192441934419444195441964419744198441994420044201442024420344204442054420644207442084420944210442114421244213442144421544216442174421844219442204422144222442234422444225442264422744228442294423044231442324423344234442354423644237442384423944240442414424244243442444424544246442474424844249442504425144252442534425444255442564425744258442594426044261442624426344264442654426644267442684426944270442714427244273442744427544276442774427844279442804428144282442834428444285442864428744288442894429044291442924429344294442954429644297442984429944300443014430244303443044430544306443074430844309443104431144312443134431444315443164431744318443194432044321443224432344324443254432644327443284432944330443314433244333443344433544336443374433844339443404434144342443434434444345443464434744348443494435044351443524435344354443554435644357443584435944360443614436244363443644436544366443674436844369443704437144372443734437444375443764437744378443794438044381443824438344384443854438644387443884438944390443914439244393443944439544396443974439844399444004440144402444034440444405444064440744408444094441044411444124441344414444154441644417444184441944420444214442244423444244442544426444274442844429444304443144432444334443444435444364443744438444394444044441444424444344444444454444644447444484444944450444514445244453444544445544456444574445844459444604446144462444634446444465444664446744468444694447044471444724447344474444754447644477444784447944480444814448244483444844448544486444874448844489444904449144492444934449444495444964449744498444994450044501445024450344504445054450644507445084450944510445114451244513445144451544516445174451844519445204452144522445234452444525445264452744528445294453044531445324453344534445354453644537445384453944540445414454244543445444454544546445474454844549445504455144552445534455444555445564455744558445594456044561445624456344564445654456644567445684456944570445714457244573445744457544576445774457844579445804458144582445834458444585445864458744588445894459044591445924459344594445954459644597445984459944600446014460244603446044460544606446074460844609446104461144612446134461444615446164461744618446194462044621446224462344624446254462644627446284462944630446314463244633446344463544636446374463844639446404464144642446434464444645446464464744648446494465044651446524465344654446554465644657446584465944660446614466244663446644466544666446674466844669446704467144672446734467444675446764467744678446794468044681446824468344684446854468644687446884468944690446914469244693446944469544696446974469844699447004470144702447034470444705447064470744708447094471044711447124471344714447154471644717447184471944720447214472244723447244472544726447274472844729447304473144732447334473444735447364473744738447394474044741447424474344744447454474644747447484474944750447514475244753447544475544756447574475844759447604476144762447634476444765447664476744768447694477044771447724477344774447754477644777447784477944780447814478244783447844478544786447874478844789447904479144792447934479444795447964479744798447994480044801448024480344804448054480644807448084480944810448114481244813448144481544816448174481844819448204482144822448234482444825448264482744828448294483044831448324483344834448354483644837448384483944840448414484244843448444484544846448474484844849448504485144852448534485444855448564485744858448594486044861448624486344864448654486644867448684486944870448714487244873448744487544876448774487844879448804488144882448834488444885448864488744888448894489044891448924489344894448954489644897448984489944900449014490244903449044490544906449074490844909449104491144912449134491444915449164491744918449194492044921449224492344924449254492644927449284492944930449314493244933449344493544936449374493844939449404494144942449434494444945449464494744948449494495044951449524495344954449554495644957449584495944960449614496244963449644496544966449674496844969449704497144972449734497444975449764497744978449794498044981449824498344984449854498644987449884498944990449914499244993449944499544996449974499844999450004500145002450034500445005450064500745008450094501045011450124501345014450154501645017450184501945020450214502245023450244502545026450274502845029450304503145032450334503445035450364503745038450394504045041450424504345044450454504645047450484504945050450514505245053450544505545056450574505845059450604506145062450634506445065450664506745068450694507045071450724507345074450754507645077450784507945080450814508245083450844508545086450874508845089450904509145092450934509445095450964509745098450994510045101451024510345104451054510645107451084510945110451114511245113451144511545116451174511845119451204512145122451234512445125451264512745128451294513045131451324513345134451354513645137451384513945140451414514245143451444514545146451474514845149451504515145152451534515445155451564515745158451594516045161451624516345164451654516645167451684516945170451714517245173451744517545176451774517845179451804518145182451834518445185451864518745188451894519045191451924519345194451954519645197451984519945200452014520245203452044520545206452074520845209452104521145212452134521445215452164521745218452194522045221452224522345224452254522645227452284522945230452314523245233452344523545236452374523845239452404524145242452434524445245452464524745248452494525045251452524525345254452554525645257452584525945260452614526245263452644526545266452674526845269452704527145272452734527445275452764527745278452794528045281452824528345284452854528645287452884528945290452914529245293452944529545296452974529845299453004530145302453034530445305453064530745308453094531045311453124531345314453154531645317453184531945320453214532245323453244532545326453274532845329453304533145332453334533445335453364533745338453394534045341453424534345344453454534645347453484534945350453514535245353453544535545356453574535845359453604536145362453634536445365453664536745368453694537045371453724537345374453754537645377453784537945380453814538245383453844538545386453874538845389453904539145392453934539445395453964539745398453994540045401454024540345404454054540645407454084540945410454114541245413454144541545416454174541845419454204542145422454234542445425454264542745428454294543045431454324543345434454354543645437454384543945440454414544245443454444544545446454474544845449454504545145452454534545445455454564545745458454594546045461454624546345464454654546645467454684546945470454714547245473454744547545476454774547845479454804548145482454834548445485454864548745488454894549045491454924549345494454954549645497454984549945500455014550245503455044550545506455074550845509455104551145512455134551445515455164551745518455194552045521455224552345524455254552645527455284552945530455314553245533455344553545536455374553845539455404554145542455434554445545455464554745548455494555045551455524555345554455554555645557455584555945560455614556245563455644556545566455674556845569455704557145572455734557445575455764557745578455794558045581455824558345584455854558645587455884558945590455914559245593455944559545596455974559845599456004560145602456034560445605456064560745608456094561045611456124561345614456154561645617456184561945620456214562245623456244562545626456274562845629456304563145632456334563445635456364563745638456394564045641456424564345644456454564645647456484564945650456514565245653456544565545656456574565845659456604566145662456634566445665456664566745668456694567045671456724567345674456754567645677456784567945680456814568245683456844568545686456874568845689456904569145692456934569445695456964569745698456994570045701457024570345704457054570645707457084570945710457114571245713457144571545716457174571845719457204572145722457234572445725457264572745728457294573045731457324573345734457354573645737457384573945740457414574245743457444574545746457474574845749457504575145752457534575445755457564575745758457594576045761457624576345764457654576645767457684576945770457714577245773457744577545776457774577845779457804578145782457834578445785457864578745788457894579045791457924579345794457954579645797457984579945800458014580245803458044580545806458074580845809458104581145812458134581445815458164581745818458194582045821458224582345824458254582645827458284582945830458314583245833458344583545836458374583845839458404584145842458434584445845458464584745848458494585045851458524585345854458554585645857458584585945860458614586245863458644586545866458674586845869458704587145872458734587445875458764587745878458794588045881458824588345884458854588645887458884588945890458914589245893458944589545896458974589845899459004590145902459034590445905459064590745908459094591045911459124591345914459154591645917459184591945920459214592245923459244592545926459274592845929459304593145932459334593445935459364593745938459394594045941459424594345944459454594645947459484594945950459514595245953459544595545956459574595845959459604596145962459634596445965459664596745968459694597045971459724597345974459754597645977459784597945980459814598245983459844598545986459874598845989459904599145992459934599445995459964599745998459994600046001460024600346004460054600646007460084600946010460114601246013460144601546016460174601846019460204602146022460234602446025460264602746028460294603046031460324603346034460354603646037460384603946040460414604246043460444604546046460474604846049460504605146052460534605446055460564605746058460594606046061460624606346064460654606646067460684606946070460714607246073460744607546076460774607846079460804608146082460834608446085460864608746088460894609046091460924609346094460954609646097460984609946100461014610246103461044610546106461074610846109461104611146112461134611446115461164611746118461194612046121461224612346124461254612646127461284612946130461314613246133461344613546136461374613846139461404614146142461434614446145461464614746148461494615046151461524615346154461554615646157461584615946160461614616246163461644616546166461674616846169461704617146172461734617446175461764617746178461794618046181461824618346184461854618646187461884618946190461914619246193461944619546196 |
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('af');
- test('parse', function (assert) {
- var tests = 'Januarie Jan_Februarie Feb_Maart Mar_April Apr_Mei Mei_Junie Jun_Julie Jul_Augustus Aug_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sondag, Februarie 14de 2010, 3:25:50 nm'],
- ['ddd, hA', 'Son, 3NM'],
- ['M Mo MM MMMM MMM', '2 2de 02 Februarie Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14de 14'],
- ['d do dddd ddd dd', '0 0de Sondag Son So'],
- ['DDD DDDo DDDD', '45 45ste 045'],
- ['w wo ww', '6 6de 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'nm NM'],
- ['[the] DDDo [day of the year]', 'the 45ste day of the year'],
- ['LT', '15:25'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 Februarie 2010'],
- ['LLL', '14 Februarie 2010 15:25'],
- ['LLLL', 'Sondag, 14 Februarie 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 15:25'],
- ['llll', 'Son, 14 Feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1ste', '1ste');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2de', '2de');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3de', '3de');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4de', '4de');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5de', '5de');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6de', '6de');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7de', '7de');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8ste', '8ste');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9de', '9de');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10de', '10de');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11de', '11de');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12de', '12de');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13de', '13de');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14de', '14de');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15de', '15de');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16de', '16de');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17de', '17de');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18de', '18de');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19de', '19de');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20ste', '20ste');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ste', '21ste');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ste', '22ste');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ste', '23ste');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ste', '24ste');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ste', '25ste');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ste', '26ste');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ste', '27ste');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ste', '28ste');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ste', '29ste');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ste', '30ste');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ste', '31ste');
- });
- test('format month', function (assert) {
- var expected = 'Januarie Jan_Februarie Feb_Maart Mar_April Apr_Mei Mei_Junie Jun_Julie Jul_Augustus Aug_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sondag Son So_Maandag Maa Ma_Dinsdag Din Di_Woensdag Woe Wo_Donderdag Don Do_Vrydag Vry Vr_Saterdag Sat Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '\'n paar sekondes', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '\'n minuut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '\'n minuut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minute', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '\'n uur', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '\'n uur', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ure', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ure', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ure', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '\'n dag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '\'n dag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dae', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '\'n dag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dae', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dae', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '\'n maand', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '\'n maand', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '\'n maand', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 maande', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 maande', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 maande', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '\'n maand', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 maande', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '\'n jaar', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jaar', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '\'n jaar', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jaar', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'oor \'n paar sekondes', 'prefix');
- assert.equal(moment(0).from(30000), '\'n paar sekondes gelede', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), '\'n paar sekondes gelede', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'oor \'n paar sekondes', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'oor 5 dae', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Vandag om 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Vandag om 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Vandag om 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Môre om 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Vandag om 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Gister om 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Laas] dddd [om] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Laas] dddd [om] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Laas] dddd [om] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ste', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1ste', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1ste', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2de', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2de', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ar-ma');
- test('parse', function (assert) {
- var tests = 'يناير:يناير_فبراير:فبراير_مارس:مارس_أبريل:أبريل_ماي:ماي_يونيو:يونيو_يوليوز:يوليوز_غشت:غشت_شتنبر:شتنبر_أكتوبر:أكتوبر_نونبر:نونبر_دجنبر:دجنبر'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(':');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد, فبراير 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'احد, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 فبراير فبراير'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 الأحد احد ح'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LT', '15:25'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 فبراير 2010'],
- ['LLL', '14 فبراير 2010 15:25'],
- ['LLLL', 'الأحد 14 فبراير 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 فبراير 2010'],
- ['lll', '14 فبراير 2010 15:25'],
- ['llll', 'احد 14 فبراير 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'يناير يناير_فبراير فبراير_مارس مارس_أبريل أبريل_ماي ماي_يونيو يونيو_يوليوز يوليوز_غشت غشت_شتنبر شتنبر_أكتوبر أكتوبر_نونبر نونبر_دجنبر دجنبر'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'الأحد احد ح_الإتنين اتنين ن_الثلاثاء ثلاثاء ث_الأربعاء اربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ثوان', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 دقائق', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 دقائق', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ساعات', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ساعات', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ساعات', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 أيام', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 أيام', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 أيام', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 أشهر', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 أشهر', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 أشهر', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 أشهر', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'سنة', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 سنوات', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'سنة', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 سنوات', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'في ثوان', 'prefix');
- assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'في ثوان', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'في 5 أيام', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'اليوم على الساعة 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم على الساعة 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم على الساعة 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'غدا على الساعة 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم على الساعة 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس على الساعة 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 31]).week(), 1, 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).week(), 1, 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).week(), 2, 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 30]).week(), 1, 'Dec 30 2006 should be week 1');
- assert.equal(moment([2007, 0, 5]).week(), 1, 'Jan 5 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 2, 'Jan 6 2007 should be week 2');
- assert.equal(moment([2007, 0, 12]).week(), 2, 'Jan 12 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 3, 'Jan 13 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 1, 'Dec 29 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 4]).week(), 1, 'Jan 4 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 2, 'Jan 5 2008 should be week 2');
- assert.equal(moment([2008, 0, 11]).week(), 2, 'Jan 11 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 3, 'Jan 12 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 28]).week(), 1, 'Dec 28 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 3]).week(), 1, 'Jan 3 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 2, 'Jan 4 2003 should be week 2');
- assert.equal(moment([2003, 0, 10]).week(), 2, 'Jan 10 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 3, 'Jan 11 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 27]).week(), 1, 'Dec 27 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 2]).week(), 1, 'Jan 2 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 2, 'Jan 3 2009 should be week 2');
- assert.equal(moment([2009, 0, 9]).week(), 2, 'Jan 9 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 3, 'Jan 10 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 26]).week(), 1, 'Dec 26 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 2, 'Jan 2 2010 should be week 2');
- assert.equal(moment([2010, 0, 8]).week(), 2, 'Jan 8 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 3, 'Jan 9 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 7]).week(), 1, 'Jan 7 2011 should be week 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 14]).week(), 2, 'Jan 14 2011 should be week 2');
- assert.equal(moment([2011, 0, 15]).week(), 3, 'Jan 15 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ar-sa');
- test('parse', function (assert) {
- var tests = 'يناير:يناير_فبراير:فبراير_مارس:مارس_أبريل:أبريل_مايو:مايو_يونيو:يونيو_يوليو:يوليو_أغسطس:أغسطس_سبتمبر:سبتمبر_أكتوبر:أكتوبر_نوفمبر:نوفمبر_ديسمبر:ديسمبر'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month());
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(':');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد، فبراير ١٤ ٢٠١٠، ٣:٢٥:٥٠ م'],
- ['ddd, hA', 'أحد، ٣م'],
- ['M Mo MM MMMM MMM', '٢ ٢ ٠٢ فبراير فبراير'],
- ['YYYY YY', '٢٠١٠ ١٠'],
- ['D Do DD', '١٤ ١٤ ١٤'],
- ['d do dddd ddd dd', '٠ ٠ الأحد أحد ح'],
- ['DDD DDDo DDDD', '٤٥ ٤٥ ٠٤٥'],
- ['w wo ww', '٨ ٨ ٠٨'],
- ['h hh', '٣ ٠٣'],
- ['H HH', '١٥ ١٥'],
- ['m mm', '٢٥ ٢٥'],
- ['s ss', '٥٠ ٥٠'],
- ['a A', 'م م'],
- ['[the] DDDo [day of the year]', 'the ٤٥ day of the year'],
- ['LT', '١٥:٢٥'],
- ['LTS', '١٥:٢٥:٥٠'],
- ['L', '١٤/٠٢/٢٠١٠'],
- ['LL', '١٤ فبراير ٢٠١٠'],
- ['LLL', '١٤ فبراير ٢٠١٠ ١٥:٢٥'],
- ['LLLL', 'الأحد ١٤ فبراير ٢٠١٠ ١٥:٢٥'],
- ['l', '١٤/٢/٢٠١٠'],
- ['ll', '١٤ فبراير ٢٠١٠'],
- ['lll', '١٤ فبراير ٢٠١٠ ١٥:٢٥'],
- ['llll', 'أحد ١٤ فبراير ٢٠١٠ ١٥:٢٥']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '١', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '٢', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '٣', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '٤', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '٥', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '٦', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '٧', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '٨', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '٩', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '١٠', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '١١', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '١٢', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '١٣', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '١٤', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '١٥', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '١٦', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '١٧', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '١٨', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '١٩', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '٢٠', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '٢١', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '٢٢', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '٢٣', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '٢٤', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '٢٥', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '٢٦', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '٢٧', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '٢٨', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '٢٩', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '٣٠', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '٣١', '31');
- });
- test('format month', function (assert) {
- var expected = 'يناير يناير_فبراير فبراير_مارس مارس_أبريل أبريل_مايو مايو_يونيو يونيو_يوليو يوليو_أغسطس أغسطس_سبتمبر سبتمبر_أكتوبر أكتوبر_نوفمبر نوفمبر_ديسمبر ديسمبر'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ثوان', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '٢ دقائق', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '٤٤ دقائق', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '٢ ساعات', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '٥ ساعات', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '٢١ ساعات', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '٢ أيام', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '٥ أيام', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '٢٥ أيام', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '٢ أشهر', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '٢ أشهر', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '٣ أشهر', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '٥ أشهر', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'سنة', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '٢ سنوات', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'سنة', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '٥ سنوات', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'في ثوان', 'prefix');
- assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'في ثوان', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'في ٥ أيام', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'اليوم على الساعة ٠٢:٠٠', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم على الساعة ٠٢:٢٥', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم على الساعة ٠٣:٠٠', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'غدا على الساعة ٠٢:٠٠', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم على الساعة ٠١:٠٠', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس على الساعة ٠٢:٠٠', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 31]).week(), 1, 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).week(), 1, 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).week(), 2, 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 30]).week(), 1, 'Dec 30 2006 should be week 1');
- assert.equal(moment([2007, 0, 5]).week(), 1, 'Jan 5 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 2, 'Jan 6 2007 should be week 2');
- assert.equal(moment([2007, 0, 12]).week(), 2, 'Jan 12 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 3, 'Jan 13 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 1, 'Dec 29 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 4]).week(), 1, 'Jan 4 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 2, 'Jan 5 2008 should be week 2');
- assert.equal(moment([2008, 0, 11]).week(), 2, 'Jan 11 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 3, 'Jan 12 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 28]).week(), 1, 'Dec 28 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 3]).week(), 1, 'Jan 3 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 2, 'Jan 4 2003 should be week 2');
- assert.equal(moment([2003, 0, 10]).week(), 2, 'Jan 10 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 3, 'Jan 11 2003 should be week 3');
- assert.equal(moment('2003 1 6', 'gggg w d').format('YYYY-MM-DD'), '٢٠٠٢-١٢-٢٨', 'Week 1 of 2003 should be Dec 28 2002');
- assert.equal(moment('2003 1 0', 'gggg w e').format('YYYY-MM-DD'), '٢٠٠٢-١٢-٢٨', 'Week 1 of 2003 should be Dec 28 2002');
- assert.equal(moment('2003 1 6', 'gggg w d').format('gggg w d'), '٢٠٠٣ ١ ٦', 'Saturday of week 1 of 2003 parsed should be formatted as 2003 1 6');
- assert.equal(moment('2003 1 0', 'gggg w e').format('gggg w e'), '٢٠٠٣ ١ ٠', '1st day of week 1 of 2003 parsed should be formatted as 2003 1 0');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 27]).week(), 1, 'Dec 27 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 2]).week(), 1, 'Jan 2 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 2, 'Jan 3 2009 should be week 2');
- assert.equal(moment([2009, 0, 9]).week(), 2, 'Jan 9 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 3, 'Jan 10 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 26]).week(), 1, 'Dec 26 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 2, 'Jan 2 2010 should be week 2');
- assert.equal(moment([2010, 0, 8]).week(), 2, 'Jan 8 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 3, 'Jan 9 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 7]).week(), 1, 'Jan 7 2011 should be week 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 14]).week(), 2, 'Jan 14 2011 should be week 2');
- assert.equal(moment([2011, 0, 15]).week(), 3, 'Jan 15 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 31]).format('w ww wo'), '١ ٠١ ١', 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).format('w ww wo'), '١ ٠١ ١', 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '٢ ٠٢ ٢', 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).format('w ww wo'), '٢ ٠٢ ٢', 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '٣ ٠٣ ٣', 'Jan 14 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ar-tn');
- test('parse', function (assert) {
- var tests = 'جانفي:جانفي_فيفري:فيفري_مارس:مارس_أفريل:أفريل_ماي:ماي_جوان:جوان_جويلية:جويلية_أوت:أوت_سبتمبر:سبتمبر_أكتوبر:أكتوبر_نوفمبر:نوفمبر_ديسمبر:ديسمبر'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(':');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد, فيفري 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'أحد, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 فيفري فيفري'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 الأحد أحد ح'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '6 6 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LT', '15:25'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 فيفري 2010'],
- ['LLL', '14 فيفري 2010 15:25'],
- ['LLLL', 'الأحد 14 فيفري 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 فيفري 2010'],
- ['lll', '14 فيفري 2010 15:25'],
- ['llll', 'أحد 14 فيفري 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'جانفي جانفي_فيفري فيفري_مارس مارس_أفريل أفريل_ماي ماي_جوان جوان_جويلية جويلية_أوت أوت_سبتمبر سبتمبر_أكتوبر أكتوبر_نوفمبر نوفمبر_ديسمبر ديسمبر'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 44
- }), true), 'ثوان', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 45
- }), true), 'دقيقة', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 89
- }), true), 'دقيقة', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 90
- }), true), '2 دقائق', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 44
- }), true), '44 دقائق', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 45
- }), true), 'ساعة', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 89
- }), true), 'ساعة', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 90
- }), true), '2 ساعات', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 5
- }), true), '5 ساعات', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 21
- }), true), '21 ساعات', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 22
- }), true), 'يوم', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 35
- }), true), 'يوم', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 36
- }), true), '2 أيام', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 1
- }), true), 'يوم', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 5
- }), true), '5 أيام', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 25
- }), true), '25 أيام', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 26
- }), true), 'شهر', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 30
- }), true), 'شهر', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 43
- }), true), 'شهر', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 46
- }), true), '2 أشهر', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 74
- }), true), '2 أشهر', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 76
- }), true), '3 أشهر', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- M: 1
- }), true), 'شهر', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- M: 5
- }), true), '5 أشهر', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 345
- }), true), 'سنة', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 548
- }), true), '2 سنوات', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- y: 1
- }), true), 'سنة', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- y: 5
- }), true), '5 سنوات', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'في ثوان', 'prefix');
- assert.equal(moment(0).from(30000), 'منذ ثوان', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'منذ ثوان', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({
- s: 30
- }).fromNow(), 'في ثوان', 'in a few seconds');
- assert.equal(moment().add({
- d: 5
- }).fromNow(), 'في 5 أيام', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'اليوم على الساعة 02:00', 'today at the same time');
- assert.equal(moment(a).add({
- m: 25
- }).calendar(), 'اليوم على الساعة 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({
- h: 1
- }).calendar(), 'اليوم على الساعة 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({
- d: 1
- }).calendar(), 'غدا على الساعة 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({
- h: 1
- }).calendar(), 'اليوم على الساعة 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({
- d: 1
- }).calendar(), 'أمس على الساعة 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({
- d: i
- });
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({
- d: i
- });
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [على الساعة] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({
- w: 1
- }),
- weeksFromNow = moment().add({
- w: 1
- });
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({
- w: 2
- });
- weeksFromNow = moment().add({
- w: 2
- });
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ar');
- var months = [
- 'كانون الثاني يناير',
- 'شباط فبراير',
- 'آذار مارس',
- 'نيسان أبريل',
- 'أيار مايو',
- 'حزيران يونيو',
- 'تموز يوليو',
- 'آب أغسطس',
- 'أيلول سبتمبر',
- 'تشرين الأول أكتوبر',
- 'تشرين الثاني نوفمبر',
- 'كانون الأول ديسمبر'
- ];
- test('parse', function (assert) {
- var tests = months, i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month());
- }
- for (i = 0; i < 12; i++) {
- equalTest(tests[i], 'MMM', i);
- equalTest(tests[i], 'MMM', i);
- equalTest(tests[i], 'MMMM', i);
- equalTest(tests[i], 'MMMM', i);
- equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد، شباط فبراير ١٤ ٢٠١٠، ٣:٢٥:٥٠ م'],
- ['ddd, hA', 'أحد، ٣م'],
- ['M Mo MM MMMM MMM', '٢ ٢ ٠٢ شباط فبراير شباط فبراير'],
- ['YYYY YY', '٢٠١٠ ١٠'],
- ['D Do DD', '١٤ ١٤ ١٤'],
- ['d do dddd ddd dd', '٠ ٠ الأحد أحد ح'],
- ['DDD DDDo DDDD', '٤٥ ٤٥ ٠٤٥'],
- ['w wo ww', '٨ ٨ ٠٨'],
- ['h hh', '٣ ٠٣'],
- ['H HH', '١٥ ١٥'],
- ['m mm', '٢٥ ٢٥'],
- ['s ss', '٥٠ ٥٠'],
- ['a A', 'م م'],
- ['[the] DDDo [day of the year]', 'the ٤٥ day of the year'],
- ['LT', '١٥:٢٥'],
- ['LTS', '١٥:٢٥:٥٠'],
- ['L', '١٤/\u200f٢/\u200f٢٠١٠'],
- ['LL', '١٤ شباط فبراير ٢٠١٠'],
- ['LLL', '١٤ شباط فبراير ٢٠١٠ ١٥:٢٥'],
- ['LLLL', 'الأحد ١٤ شباط فبراير ٢٠١٠ ١٥:٢٥'],
- ['l', '١٤/\u200f٢/\u200f٢٠١٠'],
- ['ll', '١٤ شباط فبراير ٢٠١٠'],
- ['lll', '١٤ شباط فبراير ٢٠١٠ ١٥:٢٥'],
- ['llll', 'أحد ١٤ شباط فبراير ٢٠١٠ ١٥:٢٥']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '١', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '٢', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '٣', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '٤', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '٥', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '٦', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '٧', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '٨', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '٩', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '١٠', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '١١', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '١٢', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '١٣', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '١٤', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '١٥', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '١٦', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '١٧', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '١٨', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '١٩', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '٢٠', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '٢١', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '٢٢', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '٢٣', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '٢٤', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '٢٥', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '٢٦', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '٢٧', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '٢٨', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '٢٩', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '٣٠', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '٣١', '31');
- });
- test('format month', function (assert) {
- var expected = months, i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM'), expected[i], expected[i]);
- assert.equal(moment([2011, i, 1]).format('MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '٤٤ ثانية', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'دقيقة واحدة', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'دقيقة واحدة', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'دقيقتان', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '٤٤ دقيقة', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ساعة واحدة', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ساعة واحدة', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'ساعتان', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '٥ ساعات', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '٢١ ساعة', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'يوم واحد', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'يوم واحد', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'يومان', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'يوم واحد', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '٥ أيام', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '٢٥ يومًا', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'شهر واحد', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'شهر واحد', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'شهر واحد', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'شهران', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'شهران', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '٣ أشهر', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'شهر واحد', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '٥ أشهر', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'عام واحد', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'عامان', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'عام واحد', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '٥ أعوام', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'بعد ٣٠ ثانية', 'prefix');
- assert.equal(moment(0).from(30000), 'منذ ٣٠ ثانية', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'منذ ثانية واحدة', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'بعد ٣٠ ثانية', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'بعد ٥ أيام', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'اليوم عند الساعة ٠٢:٠٠', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'اليوم عند الساعة ٠٢:٢٥', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'اليوم عند الساعة ٠٣:٠٠', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'غدًا عند الساعة ٠٢:٠٠', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'اليوم عند الساعة ٠١:٠٠', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'أمس عند الساعة ٠٢:٠٠', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 31]).week(), 1, 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).week(), 1, 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).week(), 2, 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 30]).week(), 1, 'Dec 30 2006 should be week 1');
- assert.equal(moment([2007, 0, 5]).week(), 1, 'Jan 5 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 2, 'Jan 6 2007 should be week 2');
- assert.equal(moment([2007, 0, 12]).week(), 2, 'Jan 12 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 3, 'Jan 13 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 1, 'Dec 29 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 4]).week(), 1, 'Jan 4 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 2, 'Jan 5 2008 should be week 2');
- assert.equal(moment([2008, 0, 11]).week(), 2, 'Jan 11 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 3, 'Jan 12 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 28]).week(), 1, 'Dec 28 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 3]).week(), 1, 'Jan 3 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 2, 'Jan 4 2003 should be week 2');
- assert.equal(moment([2003, 0, 10]).week(), 2, 'Jan 10 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 3, 'Jan 11 2003 should be week 3');
- assert.equal(moment('2003 1 6', 'gggg w d').format('YYYY-MM-DD'), '٢٠٠٢-١٢-٢٨', 'Week 1 of 2003 should be Dec 28 2002');
- assert.equal(moment('2003 1 0', 'gggg w e').format('YYYY-MM-DD'), '٢٠٠٢-١٢-٢٨', 'Week 1 of 2003 should be Dec 28 2002');
- assert.equal(moment('2003 1 6', 'gggg w d').format('gggg w d'), '٢٠٠٣ ١ ٦', 'Saturday of week 1 of 2003 parsed should be formatted as 2003 1 6');
- assert.equal(moment('2003 1 0', 'gggg w e').format('gggg w e'), '٢٠٠٣ ١ ٠', '1st day of week 1 of 2003 parsed should be formatted as 2003 1 0');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 27]).week(), 1, 'Dec 27 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 2]).week(), 1, 'Jan 2 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 2, 'Jan 3 2009 should be week 2');
- assert.equal(moment([2009, 0, 9]).week(), 2, 'Jan 9 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 3, 'Jan 10 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 26]).week(), 1, 'Dec 26 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 2, 'Jan 2 2010 should be week 2');
- assert.equal(moment([2010, 0, 8]).week(), 2, 'Jan 8 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 3, 'Jan 9 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 7]).week(), 1, 'Jan 7 2011 should be week 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 14]).week(), 2, 'Jan 14 2011 should be week 2');
- assert.equal(moment([2011, 0, 15]).week(), 3, 'Jan 15 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 31]).format('w ww wo'), '١ ٠١ ١', 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).format('w ww wo'), '١ ٠١ ١', 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '٢ ٠٢ ٢', 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).format('w ww wo'), '٢ ٠٢ ٢', 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '٣ ٠٣ ٣', 'Jan 14 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- test('no leading zeros in long date formats', function (assert) {
- var i, j, longDateStr, shortDateStr;
- for (i = 1; i <= 9; ++i) {
- for (j = 1; j <= 9; ++j) {
- longDateStr = moment([2014, i, j]).format('L');
- shortDateStr = moment([2014, i, j]).format('l');
- assert.equal(longDateStr, shortDateStr, 'should not have leading zeros in month or day');
- }
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('az');
- test('parse', function (assert) {
- var tests = 'yanvar yan_fevral fev_mart mar_Aprel apr_may may_iyun iyn_iyul iyl_Avqust avq_sentyabr sen_oktyabr okt_noyabr noy_dekabr dek'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, D MMMM YYYY, HH:mm:ss', 'Bazar, 14 fevral 2010, 15:25:50'],
- ['ddd, A h', 'Baz, gündüz 3'],
- ['M Mo MM MMMM MMM', '2 2-nci 02 fevral fev'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-üncü 14'],
- ['d do dddd ddd dd', '0 0-ıncı Bazar Baz Bz'],
- ['DDD DDDo DDDD', '45 45-inci 045'],
- ['w wo ww', '7 7-nci 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'gündüz gündüz'],
- ['[ilin] DDDo [günü]', 'ilin 45-inci günü'],
- ['LT', '15:25'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 fevral 2010'],
- ['LLL', '14 fevral 2010 15:25'],
- ['LLLL', 'Bazar, 14 fevral 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 fev 2010'],
- ['lll', '14 fev 2010 15:25'],
- ['llll', 'Baz, 14 fev 2010 15:25']
- ],
- DDDo = [
- [359, '360-ıncı'],
- [199, '200-üncü'],
- [149, '150-nci']
- ],
- dt = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- DDDoDt,
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(dt.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- for (i = 0; i < DDDo.length; i++) {
- DDDoDt = moment([2010]);
- assert.equal(DDDoDt.add(DDDo[i][0], 'days').format('DDDo'), DDDo[i][1], DDDo[i][0] + ' ---> ' + DDDo[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-inci', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-nci', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-üncü', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-üncü', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-inci', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ncı', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-nci', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-inci', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-uncu', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-uncu', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-inci', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-nci', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-üncü', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-üncü', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-inci', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ncı', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-nci', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-inci', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-uncu', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-nci', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-inci', '21th');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-nci', '22th');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-üncü', '23th');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-üncü', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-inci', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ncı', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-nci', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-inci', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-uncu', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-uncu', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-inci', '31st');
- });
- test('format month', function (assert) {
- var expected = 'yanvar yan_fevral fev_mart mar_aprel apr_may may_iyun iyn_iyul iyl_avqust avq_sentyabr sen_oktyabr okt_noyabr noy_dekabr dek'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Bazar Baz Bz_Bazar ertəsi BzE BE_Çərşənbə axşamı ÇAx ÇA_Çərşənbə Çər Çə_Cümə axşamı CAx CA_Cümə Cüm Cü_Şənbə Şən Şə'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'birneçə saniyyə', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'bir dəqiqə', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'bir dəqiqə', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 dəqiqə', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 dəqiqə', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'bir saat', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'bir saat', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 saat', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 saat', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 saat', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'bir gün', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'bir gün', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 gün', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'bir gün', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 gün', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 gün', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'bir ay', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'bir ay', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ay', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ay', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ay', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'bir ay', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ay', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'bir il', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 il', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'bir il', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 il', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'birneçə saniyyə sonra', 'prefix');
- assert.equal(moment(0).from(30000), 'birneçə saniyyə əvvəl', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'birneçə saniyyə əvvəl', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'birneçə saniyyə sonra', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 gün sonra', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'bugün saat 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'bugün saat 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'bugün saat 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'sabah saat 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'bugün saat 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'dünən 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[gələn həftə] dddd [saat] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[gələn həftə] dddd [saat] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[gələn həftə] dddd [saat] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[keçən həftə] dddd [saat] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[keçən həftə] dddd [saat] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[keçən həftə] dddd [saat] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-inci', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-inci', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-nci', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-nci', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-üncü', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('be');
- test('parse', function (assert) {
- var tests = 'студзень студ_люты лют_сакавік сак_красавік крас_травень трав_чэрвень чэрв_ліпень ліп_жнівень жнів_верасень вер_кастрычнік каст_лістапад ліст_снежань снеж'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, HH:mm:ss', 'нядзеля, 14-га лютага 2010, 15:25:50'],
- ['ddd, h A', 'нд, 3 дня'],
- ['M Mo MM MMMM MMM', '2 2-і 02 люты лют'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-га 14'],
- ['d do dddd ddd dd', '0 0-ы нядзеля нд нд'],
- ['DDD DDDo DDDD', '45 45-ы 045'],
- ['w wo ww', '7 7-ы 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'дня дня'],
- ['DDDo [дзень года]', '45-ы дзень года'],
- ['LT', '15:25'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 лютага 2010 г.'],
- ['LLL', '14 лютага 2010 г., 15:25'],
- ['LLLL', 'нядзеля, 14 лютага 2010 г., 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 лют 2010 г.'],
- ['lll', '14 лют 2010 г., 15:25'],
- ['llll', 'нд, 14 лют 2010 г., 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format meridiem', function (assert) {
- assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'ночы', 'night');
- assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'ночы', 'night');
- assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'раніцы', 'morning');
- assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'раніцы', 'morning');
- assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'дня', 'afternoon');
- assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'дня', 'afternoon');
- assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'вечара', 'evening');
- assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'вечара', 'evening');
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ы', '1-ы');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-і', '2-і');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-і', '3-і');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ы', '4-ы');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ы', '5-ы');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ы', '6-ы');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ы', '7-ы');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ы', '8-ы');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-ы', '9-ы');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-ы', '10-ы');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ы', '11-ы');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ы', '12-ы');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ы', '13-ы');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ы', '14-ы');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ы', '15-ы');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ы', '16-ы');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ы', '17-ы');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ы', '18-ы');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-ы', '19-ы');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-ы', '20-ы');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ы', '21-ы');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-і', '22-і');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-і', '23-і');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ы', '24-ы');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ы', '25-ы');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ы', '26-ы');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ы', '27-ы');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ы', '28-ы');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ы', '29-ы');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ы', '30-ы');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ы', '31-ы');
- });
- test('format month', function (assert) {
- var expected = 'студзень студ_люты лют_сакавік сак_красавік крас_травень трав_чэрвень чэрв_ліпень ліп_жнівень жнів_верасень вер_кастрычнік каст_лістапад ліст_снежань снеж'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format month case', function (assert) {
- var months = {
- 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
- 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]);
- assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]);
- }
- });
- test('format month case with escaped symbols', function (assert) {
- var months = {
- 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
- 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2013, i, 1]).format('D[] MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMMM[</b>]'), '<i>1</i> <b>' + months.accusative[i] + '</b>', '1 <b>' + months.accusative[i] + '</b>');
- assert.equal(moment([2013, i, 1]).format('D[-ы дзень] MMMM'), '1-ы дзень ' + months.accusative[i], '1-ы дзень ' + months.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('D, MMMM'), '1, ' + months.nominative[i], '1, ' + months.nominative[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'нядзеля нд нд_панядзелак пн пн_аўторак ат ат_серада ср ср_чацвер чц чц_пятніца пт пт_субота сб сб'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'некалькі секунд', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'хвіліна', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'хвіліна', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 хвіліны', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 31}), true), '31 хвіліна', '31 minutes = 31 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 хвіліны', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'гадзіна', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'гадзіна', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 гадзіны', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 гадзін', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 гадзіна', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'дзень', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'дзень', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дні', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'дзень', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дзён', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 дзён', '11 days = 11 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 дзень', '21 days = 21 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дзён', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месяц', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месяц', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месяц', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месяцы', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месяцы', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месяцы', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месяц', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месяцаў', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'год', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 гады', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'год', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 гадоў', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'праз некалькі секунд', 'prefix');
- assert.equal(moment(0).from(30000), 'некалькі секунд таму', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'праз некалькі секунд', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'праз 5 дзён', 'in 5 days');
- assert.equal(moment().add({m: 31}).fromNow(), 'праз 31 хвіліну', 'in 31 minutes = in 31 minutes');
- assert.equal(moment().subtract({m: 31}).fromNow(), '31 хвіліну таму', '31 minutes ago = 31 minutes ago');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Сёння ў 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Сёння ў 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Сёння ў 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Заўтра ў 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Сёння ў 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Учора ў 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- return '[У] dddd [ў] LT';
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- case 3:
- case 5:
- case 6:
- return '[У мінулую] dddd [ў] LT';
- case 1:
- case 2:
- case 4:
- return '[У мінулы] dddd [ў] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ы', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ы', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-і', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-і', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-і', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('bg');
- test('parse', function (assert) {
- var tests = 'януари янр_февруари фев_март мар_април апр_май май_юни юни_юли юли_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, H:mm:ss', 'неделя, февруари 14-ти 2010, 15:25:50'],
- ['ddd, hA', 'нед, 3PM'],
- ['M Mo MM MMMM MMM', '2 2-ри 02 февруари фев'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-ти 14'],
- ['d do dddd ddd dd', '0 0-ев неделя нед нд'],
- ['DDD DDDo DDDD', '45 45-ти 045'],
- ['w wo ww', '7 7-ми 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45-ти day of the year'],
- ['LT', '15:25'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 февруари 2010'],
- ['LLL', '14 февруари 2010 15:25'],
- ['LLLL', 'неделя, 14 февруари 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 фев 2010'],
- ['lll', '14 фев 2010 15:25'],
- ['llll', 'нед, 14 фев 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ви', '1-ви');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-ри', '2-ри');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-ти', '3-ти');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ти', '4-ти');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ти', '5-ти');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ти', '6-ти');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ми', '7-ми');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ми', '8-ми');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-ти', '9-ти');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-ти', '10-ти');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ти', '11-ти');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ти', '12-ти');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ти', '13-ти');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ти', '14-ти');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ти', '15-ти');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ти', '16-ти');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ти', '17-ти');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ти', '18-ти');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-ти', '19-ти');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-ти', '20-ти');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ви', '21-ви');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ри', '22-ри');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ти', '23-ти');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ти', '24-ти');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ти', '25-ти');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ти', '26-ти');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ми', '27-ми');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ми', '28-ми');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ти', '29-ти');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ти', '30-ти');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ви', '31-ви');
- });
- test('format month', function (assert) {
- var expected = 'януари янр_февруари фев_март мар_април апр_май май_юни юни_юли юли_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'неделя нед нд_понеделник пон пн_вторник вто вт_сряда сря ср_четвъртък чет чт_петък пет пт_събота съб сб'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'няколко секунди', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'минута', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'минута', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минути', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минути', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'час', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'час', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 часа', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 часа', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 часа', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ден', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ден', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дни', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ден', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дни', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дни', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месец', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месец', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месец', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месеца', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месеца', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месеца', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месец', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месеца', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'година', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 години', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'година', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 години', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'след няколко секунди', 'prefix');
- assert.equal(moment(0).from(30000), 'преди няколко секунди', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'преди няколко секунди', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'след няколко секунди', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'след 5 дни', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Днес в 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Днес в 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Днес в 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Утре в 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Днес в 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчера в 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [в] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [в] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [в] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- case 3:
- case 6:
- return '[В изминалата] dddd [в] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[В изминалия] dddd [в] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ви', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ви', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-ри', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-ри', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-ти', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('bn');
- test('parse', function (assert) {
- var tests = 'জানুয়ারী জানু_ফেবুয়ারী ফেব_মার্চ মার্চ_এপ্রিল এপর_মে মে_জুন জুন_জুলাই জুল_অগাস্ট অগ_সেপ্টেম্বর সেপ্ট_অক্টোবর অক্টো_নভেম্বর নভ_ডিসেম্বর ডিসেম্'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, a h:mm:ss সময়', 'রবিবার, ১৪ ফেবুয়ারী ২০১০, দুপুর ৩:২৫:৫০ সময়'],
- ['ddd, a h সময়', 'রবি, দুপুর ৩ সময়'],
- ['M Mo MM MMMM MMM', '২ ২ ০২ ফেবুয়ারী ফেব'],
- ['YYYY YY', '২০১০ ১০'],
- ['D Do DD', '১৪ ১৪ ১৪'],
- ['d do dddd ddd dd', '০ ০ রবিবার রবি রব'],
- ['DDD DDDo DDDD', '৪৫ ৪৫ ০৪৫'],
- ['w wo ww', '৮ ৮ ০৮'],
- ['h hh', '৩ ০৩'],
- ['H HH', '১৫ ১৫'],
- ['m mm', '২৫ ২৫'],
- ['s ss', '৫০ ৫০'],
- ['a A', 'দুপুর দুপুর'],
- ['LT', 'দুপুর ৩:২৫ সময়'],
- ['LTS', 'দুপুর ৩:২৫:৫০ সময়'],
- ['L', '১৪/০২/২০১০'],
- ['LL', '১৪ ফেবুয়ারী ২০১০'],
- ['LLL', '১৪ ফেবুয়ারী ২০১০, দুপুর ৩:২৫ সময়'],
- ['LLLL', 'রবিবার, ১৪ ফেবুয়ারী ২০১০, দুপুর ৩:২৫ সময়'],
- ['l', '১৪/২/২০১০'],
- ['ll', '১৪ ফেব ২০১০'],
- ['lll', '১৪ ফেব ২০১০, দুপুর ৩:২৫ সময়'],
- ['llll', 'রবি, ১৪ ফেব ২০১০, দুপুর ৩:২৫ সময়']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '১', '১');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '২', '২');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '৩', '৩');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '৪', '৪');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '৫', '৫');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '৬', '৬');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '৭', '৭');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '৮', '৮');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '৯', '৯');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '১০', '১০');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '১১', '১১');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '১২', '১২');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '১৩', '১৩');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '১৪', '১৪');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '১৫', '১৫');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '১৬', '১৬');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '১৭', '১৭');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '১৮', '১৮');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '১৯', '১৯');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '২০', '২০');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '২১', '২১');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '২২', '২২');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '২৩', '২৩');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '২৪', '২৪');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '২৫', '২৫');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '২৬', '২৬');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '২৭', '২৭');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '২৮', '२৮');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '২৯', '২৯');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '৩০', '৩০');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '৩১', '৩১');
- });
- test('format month', function (assert) {
- var expected = 'জানুয়ারী জানু_ফেবুয়ারী ফেব_মার্চ মার্চ_এপ্রিল এপর_মে মে_জুন জুন_জুলাই জুল_অগাস্ট অগ_সেপ্টেম্বর সেপ্ট_অক্টোবর অক্টো_নভেম্বর নভ_ডিসেম্বর ডিসেম্'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'রবিবার রবি রব_সোমবার সোম সম_মঙ্গলবার মঙ্গল মঙ্গ_বুধবার বুধ বু_বৃহস্পত্তিবার বৃহস্পত্তি ব্রিহ_শুক্রবার শুক্র শু_শনিবার শনি শনি'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'কয়েক সেকেন্ড', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'এক মিনিট', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'এক মিনিট', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '২ মিনিট', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '৪৪ মিনিট', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'এক ঘন্টা', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'এক ঘন্টা', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '২ ঘন্টা', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '৫ ঘন্টা', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '২১ ঘন্টা', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'এক দিন', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'এক দিন', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '২ দিন', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'এক দিন', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '৫ দিন', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '২৫ দিন', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'এক মাস', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'এক মাস', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '২ মাস', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '২ মাস', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '৩ মাস', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'এক মাস', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '৫ মাস', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'এক বছর', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '২ বছর', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'এক বছর', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '৫ বছর', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'কয়েক সেকেন্ড পরে', 'prefix');
- assert.equal(moment(0).from(30000), 'কয়েক সেকেন্ড আগে', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'কয়েক সেকেন্ড আগে', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'কয়েক সেকেন্ড পরে', 'কয়েক সেকেন্ড পরে');
- assert.equal(moment().add({d: 5}).fromNow(), '৫ দিন পরে', '৫ দিন পরে');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'আজ রাত ২:০০ সময়', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'আজ রাত ২:২৫ সময়', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 3}).calendar(), 'আজ সকাল ৫:০০ সময়', 'Now plus 3 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'আগামীকাল রাত ২:০০ সময়', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'আজ রাত ১:০০ সময়', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'গতকাল রাত ২:০০ সময়', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[গত] dddd[,] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[গত] dddd[,] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[গত] dddd[,] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'রাত', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'সকাল', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'দুপুর', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'বিকাল', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'বিকাল', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'রাত', 'night');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'রাত', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'সকাল', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'দুপুর', ' during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'বিকাল', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'বিকাল', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'রাত', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '১ ০১ ১', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '১ ০১ ১', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '২ ০২ ২', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '২ ০২ ২', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '৩ ০৩ ৩', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('bo');
- test('parse', function (assert) {
- var tests = 'ཟླ་བ་དང་པོ ཟླ་བ་དང་པོ._ཟླ་བ་གཉིས་པ ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, a h:mm:ss ལ་', 'གཟའ་ཉི་མ་, ༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥:༥༠ ལ་'],
- ['ddd, a h ལ་', 'ཉི་མ་, ཉིན་གུང ༣ ལ་'],
- ['M Mo MM MMMM MMM', '༢ ༢ ༠༢ ཟླ་བ་གཉིས་པ ཟླ་བ་གཉིས་པ'],
- ['YYYY YY', '༢༠༡༠ ༡༠'],
- ['D Do DD', '༡༤ ༡༤ ༡༤'],
- ['d do dddd ddd dd', '༠ ༠ གཟའ་ཉི་མ་ ཉི་མ་ ཉི་མ་'],
- ['DDD DDDo DDDD', '༤༥ ༤༥ ༠༤༥'],
- ['w wo ww', '༨ ༨ ༠༨'],
- ['h hh', '༣ ༠༣'],
- ['H HH', '༡༥ ༡༥'],
- ['m mm', '༢༥ ༢༥'],
- ['s ss', '༥༠ ༥༠'],
- ['a A', 'ཉིན་གུང ཉིན་གུང'],
- ['LT', 'ཉིན་གུང ༣:༢༥'],
- ['LTS', 'ཉིན་གུང ༣:༢༥:༥༠'],
- ['L', '༡༤/༠༢/༢༠༡༠'],
- ['LL', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠'],
- ['LLL', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥'],
- ['LLLL', 'གཟའ་ཉི་མ་, ༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥'],
- ['l', '༡༤/༢/༢༠༡༠'],
- ['ll', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠'],
- ['lll', '༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥'],
- ['llll', 'ཉི་མ་, ༡༤ ཟླ་བ་གཉིས་པ ༢༠༡༠, ཉིན་གུང ༣:༢༥']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '༡', '༡');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '༢', '༢');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '༣', '༣');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '༤', '༤');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '༥', '༥');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '༦', '༦');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '༧', '༧');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '༨', '༨');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '༩', '༩');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '༡༠', '༡༠');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '༡༡', '༡༡');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '༡༢', '༡༢');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '༡༣', '༡༣');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '༡༤', '༡༤');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '༡༥', '༡༥');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '༡༦', '༡༦');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '༡༧', '༡༧');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '༡༨', '༡༨');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '༡༩', '༡༩');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '༢༠', '༢༠');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '༢༡', '༢༡');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '༢༢', '༢༢');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '༢༣', '༢༣');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '༢༤', '༢༤');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '༢༥', '༢༥');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '༢༦', '༢༦');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '༢༧', '༢༧');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '༢༨', '༢༨');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '༢༩', '༢༩');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '༣༠', '༣༠');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '༣༡', '༣༡');
- });
- test('format month', function (assert) {
- var expected = 'ཟླ་བ་དང་པོ ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'གཟའ་ཉི་མ་ ཉི་མ་ ཉི་མ་_གཟའ་ཟླ་བ་ ཟླ་བ་ ཟླ་བ་_གཟའ་མིག་དམར་ མིག་དམར་ མིག་དམར་_གཟའ་ལྷག་པ་ ལྷག་པ་ ལྷག་པ་_གཟའ་ཕུར་བུ ཕུར་བུ ཕུར་བུ_གཟའ་པ་སངས་ པ་སངས་ པ་སངས་_གཟའ་སྤེན་པ་ སྤེན་པ་ སྤེན་པ་'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ལམ་སང', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'སྐར་མ་གཅིག', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'སྐར་མ་གཅིག', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '༢ སྐར་མ', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '༤༤ སྐར་མ', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ཆུ་ཚོད་གཅིག', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ཆུ་ཚོད་གཅིག', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '༢ ཆུ་ཚོད', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '༥ ཆུ་ཚོད', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '༢༡ ཆུ་ཚོད', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ཉིན་གཅིག', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ཉིན་གཅིག', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '༢ ཉིན་', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ཉིན་གཅིག', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '༥ ཉིན་', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '༢༥ ཉིན་', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ཟླ་བ་གཅིག', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ཟླ་བ་གཅིག', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ཟླ་བ་གཅིག', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '༢ ཟླ་བ', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '༢ ཟླ་བ', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '༣ ཟླ་བ', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ཟླ་བ་གཅིག', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '༥ ཟླ་བ', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ལོ་གཅིག', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '༢ ལོ', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ལོ་གཅིག', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '༥ ལོ', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'ལམ་སང ལ་', 'prefix');
- assert.equal(moment(0).from(30000), 'ལམ་སང སྔན་ལ', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'ལམ་སང སྔན་ལ', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'ལམ་སང ལ་', 'ལམ་སང ལ་');
- assert.equal(moment().add({d: 5}).fromNow(), '༥ ཉིན་ ལ་', '༥ ཉིན་ ལ་');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'དི་རིང མཚན་མོ ༢:༠༠', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'དི་རིང མཚན་མོ ༢:༢༥', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 3}).calendar(), 'དི་རིང ཞོགས་ཀས ༥:༠༠', 'Now plus 3 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'སང་ཉིན མཚན་མོ ༢:༠༠', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'དི་རིང མཚན་མོ ༡:༠༠', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ཁ་སང མཚན་མོ ༢:༠༠', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་རྗེས་མ][,] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་རྗེས་མ][,] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་རྗེས་མ][,] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་མཐའ་མ] dddd[,] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་མཐའ་མ] dddd[,] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[བདུན་ཕྲག་མཐའ་མ] dddd[,] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'མཚན་མོ', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'ཞོགས་ཀས', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'ཉིན་གུང', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'དགོང་དག', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'དགོང་དག', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'མཚན་མོ', 'night');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'མཚན་མོ', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'ཞོགས་ཀས', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'ཉིན་གུང', ' during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'དགོང་དག', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'དགོང་དག', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'མཚན་མོ', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '༡ ༠༡ ༡', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '༡ ༠༡ ༡', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '༢ ༠༢ ༢', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '༢ ༠༢ ༢', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '༣ ༠༣ ༣', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('br');
- test('parse', function (assert) {
- var tests = 'Genver Gen_C\'hwevrer C\'hwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- moment.locale('br');
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sul, C\'hwevrer 14vet 2010, 3:25:50 pm'],
- ['ddd, h A', 'Sul, 3 PM'],
- ['M Mo MM MMMM MMM', '2 2vet 02 C\'hwevrer C\'hwe'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14vet 14'],
- ['d do dddd ddd dd', '0 0vet Sul Sul Su'],
- ['DDD DDDo DDDD', '45 45vet 045'],
- ['w wo ww', '6 6vet 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['DDDo [devezh] [ar] [vloaz]', '45vet devezh ar vloaz'],
- ['L', '14/02/2010'],
- ['LL', '14 a viz C\'hwevrer 2010'],
- ['LLL', '14 a viz C\'hwevrer 2010 3e25 PM'],
- ['LLLL', 'Sul, 14 a viz C\'hwevrer 2010 3e25 PM']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- moment.locale('br');
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1añ', '1añ');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2vet', '2vet');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3vet', '3vet');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4vet', '4vet');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5vet', '5vet');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6vet', '6vet');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7vet', '7vet');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8vet', '8vet');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9vet', '9vet');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10vet', '10vet');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11vet', '11vet');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12vet', '12vet');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13vet', '13vet');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14vet', '14vet');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15vet', '15vet');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16vet', '16vet');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17vet', '17vet');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18vet', '18vet');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19vet', '19vet');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20vet', '20vet');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21vet', '21vet');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22vet', '22vet');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23vet', '23vet');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24vet', '24vet');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25vet', '25vet');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26vet', '26vet');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27vet', '27vet');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28vet', '28vet');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29vet', '29vet');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30vet', '30vet');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31vet', '31vet');
- });
- test('format month', function (assert) {
- moment.locale('br');
- var expected = 'Genver Gen_C\'hwevrer C\'hwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- moment.locale('br');
- var expected = 'Sul Sul Su_Lun Lun Lu_Meurzh Meu Me_Merc\'her Mer Mer_Yaou Yao Ya_Gwener Gwe Gw_Sadorn Sad Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- moment.locale('br');
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'un nebeud segondennoù', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ur vunutenn', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ur vunutenn', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 vunutenn', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 munutenn', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'un eur', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'un eur', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 eur', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 eur', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 eur', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un devezh', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un devezh', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 zevezh', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un devezh', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 devezh', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 devezh', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ur miz', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ur miz', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ur miz', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 viz', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 viz', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 miz', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ur miz', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 miz', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ur bloaz', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 vloaz', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ur bloaz', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 bloaz', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- moment.locale('br');
- assert.equal(moment(30000).from(0), 'a-benn un nebeud segondennoù', 'prefix');
- assert.equal(moment(0).from(30000), 'un nebeud segondennoù \'zo', 'suffix');
- });
- test('now from now', function (assert) {
- moment.locale('br');
- assert.equal(moment().fromNow(), 'un nebeud segondennoù \'zo', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- moment.locale('br');
- assert.equal(moment().add({s: 30}).fromNow(), 'a-benn un nebeud segondennoù', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'a-benn 5 devezh', 'in 5 days');
- });
- test('calendar day', function (assert) {
- moment.locale('br');
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hiziv da 2e00 AM', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hiziv da 2e25 AM', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hiziv da 3e00 AM', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Warc\'hoazh da 2e00 AM', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hiziv da 1e00 AM', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Dec\'h da 2e00 AM', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- moment.locale('br');
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [da] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [da] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [da] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- moment.locale('br');
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [paset da] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [paset da] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [paset da] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- moment.locale('br');
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('special mutations for years', function (assert) {
- moment.locale('br');
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ur bloaz', 'mutation 1 year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 2}), true), '2 vloaz', 'mutation 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 3}), true), '3 bloaz', 'mutation 3 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 4}), true), '4 bloaz', 'mutation 4 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 bloaz', 'mutation 5 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 9}), true), '9 bloaz', 'mutation 9 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 10}), true), '10 vloaz', 'mutation 10 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 21}), true), '21 bloaz', 'mutation 21 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 22}), true), '22 vloaz', 'mutation 22 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 133}), true), '133 bloaz', 'mutation 133 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 148}), true), '148 vloaz', 'mutation 148 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 261}), true), '261 bloaz', 'mutation 261 years');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('bs');
- test('parse', function (assert) {
- var tests = 'januar jan._februar feb._mart mar._april apr._maj maj._juni jun._juli jul._august aug._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedjelja, 14. februar 2010, 3:25:50 pm'],
- ['ddd, hA', 'ned., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. nedjelja ned. ne'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14. 02. 2010'],
- ['LL', '14. februar 2010'],
- ['LLL', '14. februar 2010 15:25'],
- ['LLLL', 'nedjelja, 14. februar 2010 15:25'],
- ['l', '14. 2. 2010'],
- ['ll', '14. feb. 2010'],
- ['lll', '14. feb. 2010 15:25'],
- ['llll', 'ned., 14. feb. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan._februar feb._mart mar._april apr._maj maj._juni jun._juli jul._august aug._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'nedjelja ned. ne_ponedjeljak pon. po_utorak uto. ut_srijeda sri. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'par sekundi', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedna minuta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedna minuta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mjesec', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mjesec', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mjesec', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mjeseca', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mjeseca', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mjeseca', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mjesec', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mjeseci', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'za par sekundi', 'prefix');
- assert.equal(moment(0).from(30000), 'prije par sekundi', 'prefix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'prije par sekundi', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'za par sekundi', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'danas u 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'sutra u 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'jučer u 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[u] [nedjelju] [u] LT';
- case 3:
- return '[u] [srijedu] [u] LT';
- case 6:
- return '[u] [subotu] [u] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[u] dddd [u] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- case 3:
- return '[prošlu] dddd [u] LT';
- case 6:
- return '[prošle] [subote] [u] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[prošli] dddd [u] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ca');
- test('parse', function (assert) {
- var tests = 'gener gen._febrer febr._març mar._abril abr._maig mai._juny jun._juliol jul._agost ag._setembre set._octubre oct._novembre nov._desembre des.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'diumenge, 14è febrer 2010, 3:25:50 pm'],
- ['ddd, hA', 'dg., 3PM'],
- ['M Mo MM MMMM MMM', '2 2n 02 febrer febr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14è 14'],
- ['d do dddd ddd dd', '0 0è diumenge dg. Dg'],
- ['DDD DDDo DDDD', '45 45è 045'],
- ['w wo ww', '6 6a 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45è day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 febrer 2010'],
- ['LLL', '14 febrer 2010 15:25'],
- ['LLLL', 'diumenge 14 febrer 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 febr. 2010'],
- ['lll', '14 febr. 2010 15:25'],
- ['llll', 'dg. 14 febr. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1r', '1r');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2n', '2n');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3r', '3r');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4t', '4t');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5è', '5è');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6è', '6è');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7è', '7è');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8è', '8è');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9è', '9è');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10è', '10è');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11è', '11è');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12è', '12è');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13è', '13è');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14è', '14è');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15è', '15è');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16è', '16è');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17è', '17è');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18è', '18è');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19è', '19è');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20è', '20è');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21è', '21è');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22è', '22è');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23è', '23è');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24è', '24è');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25è', '25è');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26è', '26è');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27è', '27è');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28è', '28è');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29è', '29è');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30è', '30è');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31è', '31è');
- });
- test('format month', function (assert) {
- var expected = 'gener gen._febrer febr._març mar._abril abr._maig mai._juny jun._juliol jul._agost ag._setembre set._octubre oct._novembre nov._desembre des.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'diumenge dg. Dg_dilluns dl. Dl_dimarts dt. Dt_dimecres dc. Dc_dijous dj. Dj_divendres dv. Dv_dissabte ds. Ds'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'uns segons', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuts', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuts', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'una hora', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'una hora', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hores', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hores', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hores', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un dia', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un dia', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dies', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un dia', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dies', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dies', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mes', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mes', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mes', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesos', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesos', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesos', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mes', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesos', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un any', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anys', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un any', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anys', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'en uns segons', 'prefix');
- assert.equal(moment(0).from(30000), 'fa uns segons', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'fa uns segons', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'en uns segons', 'en uns segons');
- assert.equal(moment().add({d: 5}).fromNow(), 'en 5 dies', 'en 5 dies');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'avui a les 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'avui a les 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'avui a les 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'demà a les 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).add({d: 1, h : -1}).calendar(), 'demà a la 1:00', 'tomorrow minus 1 hour');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'avui a la 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ahir a les 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[el] dddd [passat a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[el] dddd [passat a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[el] dddd [passat a ' + ((m.hours() !== 1) ? 'les' : 'la') + '] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52a', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1a', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1a', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2a', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2a', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('cs');
- test('parse', function (assert) {
- var tests = 'leden led_únor úno_březen bře_duben dub_květen kvě_červen čvn_červenec čvc_srpen srp_září zář_říjen říj_listopad lis_prosinec pro'.split('_'), i;
- function equalTest(input, mmm, monthIndex) {
- assert.equal(moment(input, mmm).month(), monthIndex, input + ' ' + mmm + ' should be month ' + (monthIndex + 1));
- }
- function equalTestStrict(input, mmm, monthIndex) {
- assert.equal(moment(input, mmm, true).month(), monthIndex, input + ' ' + mmm + ' should be strict month ' + (monthIndex + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- equalTestStrict(tests[i][1], 'MMM', i);
- equalTestStrict(tests[i][0], 'MMMM', i);
- equalTestStrict(tests[i][1].toLocaleLowerCase(), 'MMM', i);
- equalTestStrict(tests[i][1].toLocaleUpperCase(), 'MMM', i);
- equalTestStrict(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTestStrict(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss', 'neděle, únor 14. 2010, 3:25:50'],
- ['ddd, h', 'ne, 3'],
- ['M Mo MM MMMM MMM', '2 2. 02 únor úno'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. neděle ne ne'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['DDDo [den v roce]', '45. den v roce'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14. únor 2010'],
- ['LLL', '14. únor 2010 15:25'],
- ['LLLL', 'neděle 14. únor 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14. úno 2010'],
- ['lll', '14. úno 2010 15:25'],
- ['llll', 'ne 14. úno 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'leden led_únor úno_březen bře_duben dub_květen kvě_červen čvn_červenec čvc_srpen srp_září zář_říjen říj_listopad lis_prosinec pro'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'neděle ne ne_pondělí po po_úterý út út_středa st st_čtvrtek čt čt_pátek pá pá_sobota so so'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'pár sekund', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuty', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minut', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'hodina', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'hodina', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hodiny', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hodin', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hodin', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'den', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'den', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dny', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'den', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dní', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dní', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'měsíc', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'měsíc', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'měsíc', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 měsíce', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 měsíce', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 měsíce', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'měsíc', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 měsíců', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'rok', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 roky', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'rok', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 let', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'za pár sekund', 'prefix');
- assert.equal(moment(0).from(30000), 'před pár sekundami', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'před pár sekundami', 'now from now should display as in the past');
- });
- test('fromNow (future)', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'za pár sekund', 'in a few seconds');
- assert.equal(moment().add({m: 1}).fromNow(), 'za minutu', 'in a minute');
- assert.equal(moment().add({m: 3}).fromNow(), 'za 3 minuty', 'in 3 minutes');
- assert.equal(moment().add({m: 10}).fromNow(), 'za 10 minut', 'in 10 minutes');
- assert.equal(moment().add({h: 1}).fromNow(), 'za hodinu', 'in an hour');
- assert.equal(moment().add({h: 3}).fromNow(), 'za 3 hodiny', 'in 3 hours');
- assert.equal(moment().add({h: 10}).fromNow(), 'za 10 hodin', 'in 10 hours');
- assert.equal(moment().add({d: 1}).fromNow(), 'za den', 'in a day');
- assert.equal(moment().add({d: 3}).fromNow(), 'za 3 dny', 'in 3 days');
- assert.equal(moment().add({d: 10}).fromNow(), 'za 10 dní', 'in 10 days');
- assert.equal(moment().add({M: 1}).fromNow(), 'za měsíc', 'in a month');
- assert.equal(moment().add({M: 3}).fromNow(), 'za 3 měsíce', 'in 3 months');
- assert.equal(moment().add({M: 10}).fromNow(), 'za 10 měsíců', 'in 10 months');
- assert.equal(moment().add({y: 1}).fromNow(), 'za rok', 'in a year');
- assert.equal(moment().add({y: 3}).fromNow(), 'za 3 roky', 'in 3 years');
- assert.equal(moment().add({y: 10}).fromNow(), 'za 10 let', 'in 10 years');
- });
- test('fromNow (past)', function (assert) {
- assert.equal(moment().subtract({s: 30}).fromNow(), 'před pár sekundami', 'a few seconds ago');
- assert.equal(moment().subtract({m: 1}).fromNow(), 'před minutou', 'a minute ago');
- assert.equal(moment().subtract({m: 3}).fromNow(), 'před 3 minutami', '3 minutes ago');
- assert.equal(moment().subtract({m: 10}).fromNow(), 'před 10 minutami', '10 minutes ago');
- assert.equal(moment().subtract({h: 1}).fromNow(), 'před hodinou', 'an hour ago');
- assert.equal(moment().subtract({h: 3}).fromNow(), 'před 3 hodinami', '3 hours ago');
- assert.equal(moment().subtract({h: 10}).fromNow(), 'před 10 hodinami', '10 hours ago');
- assert.equal(moment().subtract({d: 1}).fromNow(), 'před dnem', 'a day ago');
- assert.equal(moment().subtract({d: 3}).fromNow(), 'před 3 dny', '3 days ago');
- assert.equal(moment().subtract({d: 10}).fromNow(), 'před 10 dny', '10 days ago');
- assert.equal(moment().subtract({M: 1}).fromNow(), 'před měsícem', 'a month ago');
- assert.equal(moment().subtract({M: 3}).fromNow(), 'před 3 měsíci', '3 months ago');
- assert.equal(moment().subtract({M: 10}).fromNow(), 'před 10 měsíci', '10 months ago');
- assert.equal(moment().subtract({y: 1}).fromNow(), 'před rokem', 'a year ago');
- assert.equal(moment().subtract({y: 3}).fromNow(), 'před 3 lety', '3 years ago');
- assert.equal(moment().subtract({y: 10}).fromNow(), 'před 10 lety', '10 years ago');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'dnes v 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'dnes v 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'dnes v 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'zítra v 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'dnes v 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'včera v 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m, nextDay;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- nextDay = '';
- switch (m.day()) {
- case 0:
- nextDay = 'v neděli';
- break;
- case 1:
- nextDay = 'v pondělí';
- break;
- case 2:
- nextDay = 'v úterý';
- break;
- case 3:
- nextDay = 've středu';
- break;
- case 4:
- nextDay = 've čtvrtek';
- break;
- case 5:
- nextDay = 'v pátek';
- break;
- case 6:
- nextDay = 'v sobotu';
- break;
- }
- assert.equal(m.calendar(), m.format('[' + nextDay + '] [v] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[' + nextDay + '] [v] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[' + nextDay + '] [v] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m, lastDay;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- lastDay = '';
- switch (m.day()) {
- case 0:
- lastDay = 'minulou neděli';
- break;
- case 1:
- lastDay = 'minulé pondělí';
- break;
- case 2:
- lastDay = 'minulé úterý';
- break;
- case 3:
- lastDay = 'minulou středu';
- break;
- case 4:
- lastDay = 'minulý čtvrtek';
- break;
- case 5:
- lastDay = 'minulý pátek';
- break;
- case 6:
- lastDay = 'minulou sobotu';
- break;
- }
- assert.equal(m.calendar(), m.format('[' + lastDay + '] [v] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[' + lastDay + '] [v] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[' + lastDay + '] [v] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('humanize duration', function (assert) {
- assert.equal(moment.duration(1, 'minutes').humanize(), 'minuta', 'a minute (future)');
- assert.equal(moment.duration(1, 'minutes').humanize(true), 'za minutu', 'in a minute');
- assert.equal(moment.duration(-1, 'minutes').humanize(), 'minuta', 'a minute (past)');
- assert.equal(moment.duration(-1, 'minutes').humanize(true), 'před minutou', 'a minute ago');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('cv');
- test('parse', function (assert) {
- var tests = 'кӑрлач кӑр_нарӑс нар_пуш пуш_ака ака_май май_ҫӗртме ҫӗр_утӑ утӑ_ҫурла ҫур_авӑн авн_юпа юпа_чӳк чӳк_раштав раш'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'вырсарникун, нарӑс 14-мӗш 2010, 3:25:50 pm'],
- ['ddd, hA', 'выр, 3PM'],
- ['M Mo MM MMMM MMM', '2 2-мӗш 02 нарӑс нар'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-мӗш 14'],
- ['d do dddd ddd dd', '0 0-мӗш вырсарникун выр вр'],
- ['DDD DDDo DDDD', '45 45-мӗш 045'],
- ['w wo ww', '7 7-мӗш 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['Ҫулӑн DDDo кунӗ', 'Ҫулӑн 45-мӗш кунӗ'],
- ['LTS', '15:25:50'],
- ['L', '14-02-2010'],
- ['LL', '2010 ҫулхи нарӑс уйӑхӗн 14-мӗшӗ'],
- ['LLL', '2010 ҫулхи нарӑс уйӑхӗн 14-мӗшӗ, 15:25'],
- ['LLLL', 'вырсарникун, 2010 ҫулхи нарӑс уйӑхӗн 14-мӗшӗ, 15:25'],
- ['l', '14-2-2010'],
- ['ll', '2010 ҫулхи нар уйӑхӗн 14-мӗшӗ'],
- ['lll', '2010 ҫулхи нар уйӑхӗн 14-мӗшӗ, 15:25'],
- ['llll', 'выр, 2010 ҫулхи нар уйӑхӗн 14-мӗшӗ, 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-мӗш', '1-мӗш');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-мӗш', '2-мӗш');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-мӗш', '3-мӗш');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-мӗш', '4-мӗш');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-мӗш', '5-мӗш');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-мӗш', '6-мӗш');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-мӗш', '7-мӗш');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-мӗш', '8-мӗш');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-мӗш', '9-мӗш');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-мӗш', '10-мӗш');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-мӗш', '11-мӗш');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-мӗш', '12-мӗш');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-мӗш', '13-мӗш');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-мӗш', '14-мӗш');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-мӗш', '15-мӗш');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-мӗш', '16-мӗш');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-мӗш', '17-мӗш');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-мӗш', '18-мӗш');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-мӗш', '19-мӗш');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-мӗш', '20-мӗш');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-мӗш', '21-мӗш');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-мӗш', '22-мӗш');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-мӗш', '23-мӗш');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-мӗш', '24-мӗш');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-мӗш', '25-мӗш');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-мӗш', '26-мӗш');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-мӗш', '27-мӗш');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-мӗш', '28-мӗш');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-мӗш', '29-мӗш');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-мӗш', '30-мӗш');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-мӗш', '31-мӗш');
- });
- test('format month', function (assert) {
- var expected = 'кӑрлач кӑр_нарӑс нар_пуш пуш_ака ака_май май_ҫӗртме ҫӗр_утӑ утӑ_ҫурла ҫур_авӑн авн_юпа юпа_чӳк чӳк_раштав раш'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'вырсарникун выр вр_тунтикун тун тн_ытларикун ытл ыт_юнкун юн юн_кӗҫнерникун кӗҫ кҫ_эрнекун эрн эр_шӑматкун шӑм шм'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'пӗр-ик ҫеккунт', '44 sekunder = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'пӗр минут', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'пӗр минут', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минут', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минут', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'пӗр сехет', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'пӗр сехет', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 сехет', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 сехет', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 сехет', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'пӗр кун', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'пӗр кун', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 кун', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'пӗр кун', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 кун', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 кун', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'пӗр уйӑх', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'пӗр уйӑх', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'пӗр уйӑх', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 уйӑх', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 уйӑх', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 уйӑх', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'пӗр уйӑх', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 уйӑх', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'пӗр ҫул', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ҫул', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'пӗр ҫул', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ҫул', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'пӗр-ик ҫеккунтран', 'prefix');
- assert.equal(moment(0).from(30000), 'пӗр-ик ҫеккунт каялла', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'пӗр-ик ҫеккунт каялла', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'пӗр-ик ҫеккунтран', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 кунран', 'in 5 days');
- assert.equal(moment().add({h: 2}).fromNow(), '2 сехетрен', 'in 2 hours, the right suffix!');
- assert.equal(moment().add({y: 3}).fromNow(), '3 ҫултан', 'in 3 years, the right suffix!');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Паян 02:00 сехетре', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Паян 02:25 сехетре', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Паян 03:00 сехетре', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Ыран 02:00 сехетре', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Паян 01:00 сехетре', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ӗнер 02:00 сехетре', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[Ҫитес] dddd LT [сехетре]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Ҫитес] dddd LT [сехетре]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Ҫитес] dddd LT [сехетре]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Иртнӗ] dddd LT [сехетре]'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Иртнӗ] dddd LT [сехетре]'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Иртнӗ] dddd LT [сехетре]'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- // Monday is the first day of the week.
- // The week that contains Jan 1st is the first week of the year.
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-мӗш', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-мӗш', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-мӗш', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-мӗш', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-мӗш', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('cy');
- test('parse', function (assert) {
- var tests = 'Ionawr Ion_Chwefror Chwe_Mawrth Maw_Ebrill Ebr_Mai Mai_Mehefin Meh_Gorffennaf Gor_Awst Aws_Medi Med_Hydref Hyd_Tachwedd Tach_Rhagfyr Rhag'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Dydd Sul, Chwefror 14eg 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sul, 3PM'],
- ['M Mo MM MMMM MMM', '2 2il 02 Chwefror Chwe'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14eg 14'],
- ['d do dddd ddd dd', '0 0 Dydd Sul Sul Su'],
- ['DDD DDDo DDDD', '45 45ain 045'],
- ['w wo ww', '6 6ed 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45ain day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 Chwefror 2010'],
- ['LLL', '14 Chwefror 2010 15:25'],
- ['LLLL', 'Dydd Sul, 14 Chwefror 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 Chwe 2010'],
- ['lll', '14 Chwe 2010 15:25'],
- ['llll', 'Sul, 14 Chwe 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1af', '1af');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2il', '2il');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3ydd', '3ydd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4ydd', '4ydd');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5ed', '5ed');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6ed', '6ed');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7ed', '7ed');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8fed', '8fed');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9fed', '9fed');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10fed', '10fed');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11eg', '11eg');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12fed', '12fed');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13eg', '13eg');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14eg', '14eg');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15fed', '15fed');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16eg', '16eg');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17eg', '17eg');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18fed', '18fed');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19eg', '19eg');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20fed', '20fed');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ain', '21ain');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ain', '22ain');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ain', '23ain');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ain', '24ain');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ain', '25ain');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ain', '26ain');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ain', '27ain');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ain', '28ain');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ain', '29ain');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ain', '30ain');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ain', '31ain');
- });
- test('format month', function (assert) {
- var expected = 'Ionawr Ion_Chwefror Chwe_Mawrth Maw_Ebrill Ebr_Mai Mai_Mehefin Meh_Gorffennaf Gor_Awst Aws_Medi Med_Hydref Hyd_Tachwedd Tach_Rhagfyr Rhag'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Dydd Sul Sul Su_Dydd Llun Llun Ll_Dydd Mawrth Maw Ma_Dydd Mercher Mer Me_Dydd Iau Iau Ia_Dydd Gwener Gwe Gw_Dydd Sadwrn Sad Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ychydig eiliadau', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'munud', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'munud', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 munud', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 munud', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'awr', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'awr', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 awr', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 awr', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 awr', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'diwrnod', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'diwrnod', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 diwrnod', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'diwrnod', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 diwrnod', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 diwrnod', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mis', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mis', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mis', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mis', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mis', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mis', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mis', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mis', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'blwyddyn', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 flynedd', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'blwyddyn', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 flynedd', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'mewn ychydig eiliadau', 'prefix');
- assert.equal(moment(0).from(30000), 'ychydig eiliadau yn ôl', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'mewn ychydig eiliadau', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'mewn 5 diwrnod', 'in 5 days');
- });
- test('same day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Heddiw am 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Heddiw am 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Heddiw am 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Yfory am 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Heddiw am 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ddoe am 02:00', 'yesterday at the same time');
- });
- test('same next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [am] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [am] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [am] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('same last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [diwethaf am] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [diwethaf am] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [diwethaf am] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('same all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ain', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1af', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1af', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2il', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2il', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('da');
- test('parse', function (assert) {
- var tests = 'januar jan_februar feb_marts mar_april apr_maj maj_juni jun_juli jul_august aug_september sep_oktober okt_november nov_december dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd [den] Do MMMM YYYY, h:mm:ss a', 'søndag den 14. februar 2010, 3:25:50 pm'],
- ['ddd hA', 'søn 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. søndag søn sø'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[den] DDDo [dag på året]', 'den 45. dag på året'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14. februar 2010'],
- ['LLL', '14. februar 2010 15:25'],
- ['LLLL', 'søndag d. 14. februar 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14. feb 2010'],
- ['lll', '14. feb 2010 15:25'],
- ['llll', 'søn d. 14. feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan_februar feb_marts mar_april apr_maj maj_juni jun_juli jul_august aug_september sep_oktober okt_november nov_december dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'søndag søn sø_mandag man ma_tirsdag tir ti_onsdag ons on_torsdag tor to_fredag fre fr_lørdag lør lø'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'få sekunder', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'et minut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'et minut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutter', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutter', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'en time', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'en time', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timer', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timer', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timer', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dage', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dage', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dage', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en måned', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en måned', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en måned', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 måneder', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 måneder', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 måneder', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en måned', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 måneder', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'et år', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'et år', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'om få sekunder', 'prefix');
- assert.equal(moment(0).from(30000), 'få sekunder siden', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'få sekunder siden', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'om få sekunder', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dage', 'in 5 days');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('de-at');
- test('parse', function (assert) {
- var tests = 'Jänner Jän._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'Sonntag, 14. Februar 2010, 3:25:50 pm'],
- ['ddd, hA', 'So., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 Februar Febr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. Sonntag So. So'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14. Februar 2010'],
- ['LLL', '14. Februar 2010 15:25'],
- ['LLLL', 'Sonntag, 14. Februar 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14. Febr. 2010'],
- ['lll', '14. Febr. 2010 15:25'],
- ['llll', 'So., 14. Febr. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'Jänner Jän._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sonntag So. So_Montag Mo. Mo_Dienstag Di. Di_Mittwoch Mi. Mi_Donnerstag Do. Do_Freitag Fr. Fr_Samstag Sa. Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ein paar Sekunden', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eine Minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eine Minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 Minuten', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 Minuten', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eine Stunde', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eine Stunde', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 Stunden', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 Stunden', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 Stunden', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein Tag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein Tag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 Tage', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein Tag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 Tage', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 Tage', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein Monat', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein Monat', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 Monate', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 Monate', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 Monate', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein Monat', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 Monate', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ein Jahr', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 Jahre', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ein Jahr', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 Jahre', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in ein paar Sekunden', 'prefix');
- assert.equal(moment(0).from(30000), 'vor ein paar Sekunden', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in ein paar Sekunden', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 Tagen', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'heute um 02:00 Uhr', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'heute um 02:25 Uhr', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'heute um 03:00 Uhr', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'morgen um 02:00 Uhr', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'heute um 01:00 Uhr', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'gestern um 02:00 Uhr', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('de');
- test('parse', function (assert) {
- var tests = 'Januar Jan._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'Sonntag, 14. Februar 2010, 3:25:50 pm'],
- ['ddd, hA', 'So., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 Februar Febr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. Sonntag So. So'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14. Februar 2010'],
- ['LLL', '14. Februar 2010 15:25'],
- ['LLLL', 'Sonntag, 14. Februar 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14. Febr. 2010'],
- ['lll', '14. Febr. 2010 15:25'],
- ['llll', 'So., 14. Febr. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'Januar Jan._Februar Febr._März Mrz._April Apr._Mai Mai_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sonntag So. So_Montag Mo. Mo_Dienstag Di. Di_Mittwoch Mi. Mi_Donnerstag Do. Do_Freitag Fr. Fr_Samstag Sa. Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ein paar Sekunden', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eine Minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eine Minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 Minuten', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 Minuten', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eine Stunde', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eine Stunde', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 Stunden', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 Stunden', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 Stunden', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein Tag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein Tag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 Tage', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein Tag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 Tage', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 Tage', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein Monat', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein Monat', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ein Monat', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 Monate', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 Monate', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 Monate', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein Monat', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 Monate', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ein Jahr', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 Jahre', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ein Jahr', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 Jahre', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in ein paar Sekunden', 'prefix');
- assert.equal(moment(0).from(30000), 'vor ein paar Sekunden', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in ein paar Sekunden', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 Tagen', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'heute um 02:00 Uhr', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'heute um 02:25 Uhr', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'heute um 03:00 Uhr', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'morgen um 02:00 Uhr', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'heute um 01:00 Uhr', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'gestern um 02:00 Uhr', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[letzten] dddd [um] LT [Uhr]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('dv');
- test('parse', function (assert) {
- var i,
- tests = [
- 'ޖެނުއަރީ',
- 'ފެބްރުއަރީ',
- 'މާރިޗު',
- 'އޭޕްރީލު',
- 'މޭ',
- 'ޖޫން',
- 'ޖުލައި',
- 'އޯގަސްޓު',
- 'ސެޕްޓެމްބަރު',
- 'އޮކްޓޯބަރު',
- 'ނޮވެމްބަރު',
- 'ޑިސެމްބަރު'
- ];
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- equalTest(tests[i], 'MMM', i);
- equalTest(tests[i], 'MMMM', i);
- equalTest(tests[i].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'އާދިއްތަ، ފެބްރުއަރީ 14 2010، 3:25:50 މފ'],
- ['ddd, hA', 'އާދިއްތަ، 3މފ'],
- ['M Mo MM MMMM MMM', '2 2 02 ފެބްރުއަރީ ފެބްރުއަރީ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 އާދިއްތަ އާދިއްތަ އާދި'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'މފ މފ'],
- ['LTS', '15:25:50'],
- ['L', '14/2/2010'],
- ['LL', '14 ފެބްރުއަރީ 2010'],
- ['LLL', '14 ފެބްރުއަރީ 2010 15:25'],
- ['LLLL', 'އާދިއްތަ 14 ފެބްރުއަރީ 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 ފެބްރުއަރީ 2010'],
- ['lll', '14 ފެބްރުއަރީ 2010 15:25'],
- ['llll', 'އާދިއްތަ 14 ފެބްރުއަރީ 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var i,
- expected = [
- 'ޖެނުއަރީ',
- 'ފެބްރުއަރީ',
- 'މާރިޗު',
- 'އޭޕްރީލު',
- 'މޭ',
- 'ޖޫން',
- 'ޖުލައި',
- 'އޯގަސްޓު',
- 'ސެޕްޓެމްބަރު',
- 'އޮކްޓޯބަރު',
- 'ނޮވެމްބަރު',
- 'ޑިސެމްބަރު'
- ];
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM'), expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = [
- 'އާދިއްތަ',
- 'ހޯމަ',
- 'އަންގާރަ',
- 'ބުދަ',
- 'ބުރާސްފަތި',
- 'ހުކުރު',
- 'ހޮނިހިރު'
- ];
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd'), expected[i]);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('el');
- test('parse', function (assert) {
- var i,
- tests = 'Ιανουάριος Ιαν_Φεβρουάριος Φεβ_Μάρτιος Μαρ_Απρίλιος Απρ_Μάιος Μαϊ_Ιούνιος Ιουν_Ιούλιος Ιουλ_Αύγουστος Αυγ_Σεπτέμβριος Σεπ_Οκτώβριος Οκτ_Νοέμβριος Νοε_Δεκέμβριος Δεκ'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('parse meridiem', function (assert) {
- var i,
- b = moment(),
- meridiemTests = [
- // h a patterns, expected hours, isValid
- ['10 πμ', 10, true],
- ['10 μμ', 22, true],
- ['10 π.μ.', 10, true],
- ['10 μ.μ.', 22, true],
- ['10 π', 10, true],
- ['10 μ', 22, true],
- ['10 ΠΜ', 10, true],
- ['10 ΜΜ', 22, true],
- ['10 Π.Μ.', 10, true],
- ['10 Μ.Μ.', 22, true],
- ['10 Π', 10, true],
- ['10 Μ', 22, true],
- ['10 am', 10, false],
- ['10 pm', 10, false]
- ],
- parsed;
- // test that a formatted moment including meridiem string can be parsed back to the same moment
- assert.ok(b.isSame(moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'el', true), 'seconds'), b.format('h:mm:ss a') + ' should be equal to ' + moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'el', true).format('h:mm:ss a'));
- // test that a formatted moment having a meridiem string can be parsed with strict flag
- assert.ok(moment(b.format('h:mm:ss a'), 'h:mm:ss a', 'el', true).isValid(), b.format('h:mm:ss a') + ' should be parsed as valid');
- for (i = 0; i < meridiemTests.length; i++) {
- parsed = moment(meridiemTests[i][0], 'h a', 'el', true);
- assert.equal(parsed.isValid(), meridiemTests[i][2], 'validity for ' + meridiemTests[i][0]);
- if (parsed.isValid()) {
- assert.equal(parsed.hours(), meridiemTests[i][1], 'hours for ' + meridiemTests[i][0]);
- }
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Κυριακή, Φεβρουάριος 14η 2010, 3:25:50 μμ'],
- ['dddd, D MMMM YYYY, h:mm:ss a', 'Κυριακή, 14 Φεβρουαρίου 2010, 3:25:50 μμ'],
- ['ddd, hA', 'Κυρ, 3ΜΜ'],
- ['dddd, MMMM YYYY', 'Κυριακή, Φεβρουάριος 2010'],
- ['M Mo MM MMMM MMM', '2 2η 02 Φεβρουάριος Φεβ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14η 14'],
- ['d do dddd ddd dd', '0 0η Κυριακή Κυρ Κυ'],
- ['DDD DDDo DDDD', '45 45η 045'],
- ['w wo ww', '6 6η 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'μμ ΜΜ'],
- ['[the] DDDo [day of the year]', 'the 45η day of the year'],
- ['LTS', '3:25:50 ΜΜ'],
- ['L', '14/02/2010'],
- ['LL', '14 Φεβρουαρίου 2010'],
- ['LLL', '14 Φεβρουαρίου 2010 3:25 ΜΜ'],
- ['LLLL', 'Κυριακή, 14 Φεβρουαρίου 2010 3:25 ΜΜ'],
- ['l', '14/2/2010'],
- ['ll', '14 Φεβ 2010'],
- ['lll', '14 Φεβ 2010 3:25 ΜΜ'],
- ['llll', 'Κυρ, 14 Φεβ 2010 3:25 ΜΜ']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1η', '1η');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2η', '2η');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3η', '3η');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4η', '4η');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5η', '5η');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6η', '6η');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7η', '7η');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8η', '8η');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9η', '9η');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10η', '10η');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11η', '11η');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12η', '12η');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13η', '13η');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14η', '14η');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15η', '15η');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16η', '16η');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17η', '17η');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18η', '18η');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19η', '19η');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20η', '20η');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21η', '21η');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22η', '22η');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23η', '23η');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24η', '24η');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25η', '25η');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26η', '26η');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27η', '27η');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28η', '28η');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29η', '29η');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30η', '30η');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31η', '31η');
- });
- test('format month', function (assert) {
- var i,
- expected = 'Ιανουάριος Ιαν_Φεβρουάριος Φεβ_Μάρτιος Μαρ_Απρίλιος Απρ_Μάιος Μαϊ_Ιούνιος Ιουν_Ιούλιος Ιουλ_Αύγουστος Αυγ_Σεπτέμβριος Σεπ_Οκτώβριος Οκτ_Νοέμβριος Νοε_Δεκέμβριος Δεκ'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'Κυριακή Κυρ Κυ_Δευτέρα Δευ Δε_Τρίτη Τρι Τρ_Τετάρτη Τετ Τε_Πέμπτη Πεμ Πε_Παρασκευή Παρ Πα_Σάββατο Σαβ Σα'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'λίγα δευτερόλεπτα', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ένα λεπτό', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ένα λεπτό', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 λεπτά', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 λεπτά', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'μία ώρα', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'μία ώρα', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ώρες', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ώρες', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ώρες', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'μία μέρα', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'μία μέρα', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 μέρες', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'μία μέρα', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 μέρες', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 μέρες', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ένας μήνας', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ένας μήνας', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ένας μήνας', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 μήνες', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 μήνες', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 μήνες', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ένας μήνας', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 μήνες', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ένας χρόνος', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 χρόνια', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ένας χρόνος', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 χρόνια', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'σε λίγα δευτερόλεπτα', 'prefix');
- assert.equal(moment(0).from(30000), 'λίγα δευτερόλεπτα πριν', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'λίγα δευτερόλεπτα πριν', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'σε λίγα δευτερόλεπτα', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'σε 5 μέρες', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Σήμερα στις 2:00 ΠΜ', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Σήμερα στις 2:25 ΠΜ', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Σήμερα στις 3:00 ΠΜ', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Αύριο στις 2:00 ΠΜ', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Σήμερα στη 1:00 ΠΜ', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Χθες στις 2:00 ΠΜ', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [' + (m.hours() % 12 === 1 ? 'στη' : 'στις') + '] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [στις] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [στις] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m, dayString;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- dayString = m.day() === 6 ? '[το προηγούμενο Σάββατο]' : '[την προηγούμενη] dddd';
- assert.equal(m.calendar(), m.format(dayString + ' [' + (m.hours() % 12 === 1 ? 'στη' : 'στις') + '] LT'), 'Today - ' + i + ' days current time');
- m.hours(1).minutes(30).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(dayString + ' [στη] LT'), 'Today - ' + i + ' days one o clock');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(dayString + ' [στις] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(dayString + ' [στις] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 52, 'Dec 31 2006 should be week 52');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 30]).week(), 52, 'Dec 30 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 52, 'Dec 29 2002 should be week 52');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 52, 'Dec 28 2008 should be week 52');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 52, 'Dec 27 2009 should be week 52');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 2]).week(), 53, 'Jan 2 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 9]).week(), 1, 'Jan 9 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 51, 'Dec 26 2010 should be week 51');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 8]).week(), 1, 'Jan 8 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52η', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1η', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1η', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2η', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2η', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('en-au');
- test('parse', function (assert) {
- var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14th 14'],
- ['d do dddd ddd dd', '0 0th Sunday Sun Su'],
- ['DDD DDDo DDDD', '45 45th 045'],
- ['w wo ww', '6 6th 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45th day of the year'],
- ['LTS', '3:25:50 PM'],
- ['L', '14/02/2010'],
- ['LL', '14 February 2010'],
- ['LLL', '14 February 2010 3:25 PM'],
- ['LLLL', 'Sunday, 14 February 2010 3:25 PM'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 3:25 PM'],
- ['llll', 'Sun, 14 Feb 2010 3:25 PM']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st');
- });
- test('format month', function (assert) {
- var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix');
- assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Today at 2:00 AM', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 2:25 AM', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 3:00 AM', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 2:00 AM', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 1:00 AM', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 2:00 AM', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testStr;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testStr = moment(ordinalStr, 'YYYY MM Do').format('YYYY MM D');
- assert.equal(testStr, '2014 01 ' + i, 'lenient ordinal parsing ' + i);
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testStr;
- for (i = 1; i <= 31; ++i) {
- testStr = moment('2014 01 ' + i, 'YYYY MM Do').format('YYYY MM D');
- assert.equal(testStr, '2014 01 ' + i,
- 'lenient ordinal parsing of number ' + i);
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MMM Do');
- testMoment = moment(ordinalStr, 'YYYY MMM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('en-ca');
- test('parse', function (assert) {
- var i,
- tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14th 14'],
- ['d do dddd ddd dd', '0 0th Sunday Sun Su'],
- ['DDD DDDo DDDD', '45 45th 045'],
- ['w wo ww', '8 8th 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45th day of the year'],
- ['L', '2010-02-14'],
- ['LTS', '3:25:50 PM'],
- ['LL', '14 February, 2010'],
- ['LLL', '14 February, 2010 3:25 PM'],
- ['LLLL', 'Sunday, 14 February, 2010 3:25 PM'],
- ['l', '2010-2-14'],
- ['ll', '14 Feb, 2010'],
- ['lll', '14 Feb, 2010 3:25 PM'],
- ['llll', 'Sun, 14 Feb, 2010 3:25 PM']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st');
- });
- test('format month', function (assert) {
- var i,
- expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix');
- assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Today at 2:00 AM', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 2:25 AM', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 3:00 AM', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 2:00 AM', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 1:00 AM', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 2:00 AM', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1st', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1st', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2nd', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2nd', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3rd', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('en-gb');
- test('parse', function (assert) {
- var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14th 14'],
- ['d do dddd ddd dd', '0 0th Sunday Sun Su'],
- ['DDD DDDo DDDD', '45 45th 045'],
- ['w wo ww', '6 6th 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45th day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 February 2010'],
- ['LLL', '14 February 2010 15:25'],
- ['LLLL', 'Sunday, 14 February 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 15:25'],
- ['llll', 'Sun, 14 Feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st');
- });
- test('format month', function (assert) {
- var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix');
- assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Today at 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('en-ie');
- test('parse', function (assert) {
- var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14th 14'],
- ['d do dddd ddd dd', '0 0th Sunday Sun Su'],
- ['DDD DDDo DDDD', '45 45th 045'],
- ['w wo ww', '6 6th 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45th day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14-02-2010'],
- ['LL', '14 February 2010'],
- ['LLL', '14 February 2010 15:25'],
- ['LLLL', 'Sunday 14 February 2010 15:25'],
- ['l', '14-2-2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 15:25'],
- ['llll', 'Sun 14 Feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st');
- });
- test('format month', function (assert) {
- var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix');
- assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Today at 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('en-nz');
- test('parse', function (assert) {
- var tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14th 14'],
- ['d do dddd ddd dd', '0 0th Sunday Sun Su'],
- ['DDD DDDo DDDD', '45 45th 045'],
- ['w wo ww', '6 6th 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45th day of the year'],
- ['LTS', '3:25:50 PM'],
- ['L', '14/02/2010'],
- ['LL', '14 February 2010'],
- ['LLL', '14 February 2010 3:25 PM'],
- ['LLLL', 'Sunday, 14 February 2010 3:25 PM'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 3:25 PM'],
- ['llll', 'Sun, 14 Feb 2010 3:25 PM']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st');
- });
- test('format month', function (assert) {
- var expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix');
- assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Today at 2:00 AM', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 2:25 AM', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 3:00 AM', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 2:00 AM', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 1:00 AM', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 2:00 AM', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52nd', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1st', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1st', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2nd', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2nd', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testStr;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testStr = moment(ordinalStr, 'YYYY MM Do').format('YYYY MM D');
- assert.equal(testStr, '2014 01 ' + i, 'lenient ordinal parsing ' + i);
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testStr;
- for (i = 1; i <= 31; ++i) {
- testStr = moment('2014 01 ' + i, 'YYYY MM Do').format('YYYY MM D');
- assert.equal(testStr, '2014 01 ' + i,
- 'lenient ordinal parsing of number ' + i);
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MMM Do');
- testMoment = moment(ordinalStr, 'YYYY MMM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('en');
- test('parse', function (assert) {
- var i,
- tests = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Sunday, February 14th 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2nd 02 February Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14th 14'],
- ['d do dddd ddd dd', '0 0th Sunday Sun Su'],
- ['DDD DDDo DDDD', '45 45th 045'],
- ['w wo ww', '8 8th 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45th day of the year'],
- ['LTS', '3:25:50 PM'],
- ['L', '02/14/2010'],
- ['LL', 'February 14, 2010'],
- ['LLL', 'February 14, 2010 3:25 PM'],
- ['LLLL', 'Sunday, February 14, 2010 3:25 PM'],
- ['l', '2/14/2010'],
- ['ll', 'Feb 14, 2010'],
- ['lll', 'Feb 14, 2010 3:25 PM'],
- ['llll', 'Sun, Feb 14, 2010 3:25 PM']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1st', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2nd', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3rd', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4th', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5th', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6th', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7th', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8th', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9th', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10th', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11th', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12th', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13th', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14th', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15th', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16th', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17th', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18th', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19th', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20th', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21st', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22nd', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23rd', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24th', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25th', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26th', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27th', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28th', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29th', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30th', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31st', '31st');
- });
- test('format month', function (assert) {
- var i,
- expected = 'January Jan_February Feb_March Mar_April Apr_May May_June Jun_July Jul_August Aug_September Sep_October Oct_November Nov_December Dec'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'Sunday Sun Su_Monday Mon Mo_Tuesday Tue Tu_Wednesday Wed We_Thursday Thu Th_Friday Fri Fr_Saturday Sat Sa'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'a few seconds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'a minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'a minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'an hour', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'an hour', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hours', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hours', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hours', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'a day', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'a day', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 days', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'a day', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 days', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 days', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'a month', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'a month', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'a month', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 months', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 months', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 months', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'a month', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 months', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'a year', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 years', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'a year', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 years', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in a few seconds', 'prefix');
- assert.equal(moment(0).from(30000), 'a few seconds ago', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'a few seconds ago', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in a few seconds', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'in 5 days', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Today at 2:00 AM', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Today at 2:25 AM', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Today at 3:00 AM', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at 2:00 AM', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at 1:00 AM', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at 2:00 AM', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [at] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Last] dddd [at] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1st', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1st', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2nd', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2nd', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3rd', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('weekdays strict parsing', function (assert) {
- var m = moment('2015-01-01T12', moment.ISO_8601, true),
- enLocale = moment.localeData('en');
- for (var i = 0; i < 7; ++i) {
- assert.equal(moment(enLocale.weekdays(m.day(i), ''), 'dddd', true).isValid(), true, 'parse weekday ' + i);
- assert.equal(moment(enLocale.weekdaysShort(m.day(i), ''), 'ddd', true).isValid(), true, 'parse short weekday ' + i);
- assert.equal(moment(enLocale.weekdaysMin(m.day(i), ''), 'dd', true).isValid(), true, 'parse min weekday ' + i);
- // negative tests
- assert.equal(moment(enLocale.weekdaysMin(m.day(i), ''), 'ddd', true).isValid(), false, 'parse short weekday ' + i);
- assert.equal(moment(enLocale.weekdaysShort(m.day(i), ''), 'dd', true).isValid(), false, 'parse min weekday ' + i);
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('eo');
- test('parse', function (assert) {
- var tests = 'januaro jan_februaro feb_marto mar_aprilo apr_majo maj_junio jun_julio jul_aŭgusto aŭg_septembro sep_oktobro okt_novembro nov_decembro dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Dimanĉo, februaro 14a 2010, 3:25:50 p.t.m.'],
- ['ddd, hA', 'Dim, 3P.T.M.'],
- ['M Mo MM MMMM MMM', '2 2a 02 februaro feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14a 14'],
- ['d do dddd ddd dd', '0 0a Dimanĉo Dim Di'],
- ['DDD DDDo DDDD', '45 45a 045'],
- ['w wo ww', '7 7a 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'p.t.m. P.T.M.'],
- ['[la] DDDo [tago] [de] [la] [jaro]', 'la 45a tago de la jaro'],
- ['LTS', '15:25:50'],
- ['L', '2010-02-14'],
- ['LL', '14-an de februaro, 2010'],
- ['LLL', '14-an de februaro, 2010 15:25'],
- ['LLLL', 'Dimanĉo, la 14-an de februaro, 2010 15:25'],
- ['l', '2010-2-14'],
- ['ll', '14-an de feb, 2010'],
- ['lll', '14-an de feb, 2010 15:25'],
- ['llll', 'Dim, la 14-an de feb, 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1a', '1a');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2a', '2a');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3a', '3a');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4a', '4a');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5a', '5a');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6a', '6a');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7a', '7a');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8a', '8a');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9a', '9a');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10a', '10a');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11a', '11a');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12a', '12a');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13a', '13a');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14a', '14a');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15a', '15a');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16a', '16a');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17a', '17a');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18a', '18a');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19a', '19a');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20a', '20a');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21a', '21a');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22a', '22a');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23a', '23a');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24a', '24a');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25a', '25a');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26a', '26a');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27a', '27a');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28a', '28a');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29a', '29a');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30a', '30a');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31a', '31a');
- });
- test('format month', function (assert) {
- var expected = 'januaro jan_februaro feb_marto mar_aprilo apr_majo maj_junio jun_julio jul_aŭgusto aŭg_septembro sep_oktobro okt_novembro nov_decembro dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Dimanĉo Dim Di_Lundo Lun Lu_Mardo Mard Ma_Merkredo Merk Me_Ĵaŭdo Ĵaŭ Ĵa_Vendredo Ven Ve_Sabato Sab Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'sekundoj', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuto', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuto', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutoj', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutoj', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'horo', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'horo', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horoj', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horoj', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horoj', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'tago', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'tago', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 tagoj', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'tago', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 tagoj', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 tagoj', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'monato', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'monato', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'monato', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 monatoj', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 monatoj', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 monatoj', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'monato', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 monatoj', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'jaro', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jaroj', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'jaro', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jaroj', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'je sekundoj', 'je prefix');
- assert.equal(moment(0).from(30000), 'antaŭ sekundoj', 'antaŭ prefix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'antaŭ sekundoj', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'je sekundoj', 'je sekundoj');
- assert.equal(moment().add({d: 5}).fromNow(), 'je 5 tagoj', 'je 5 tagoj');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hodiaŭ je 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hodiaŭ je 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hodiaŭ je 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Morgaŭ je 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hodiaŭ je 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hieraŭ je 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [je] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [je] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [je] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[pasinta] dddd [je] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[pasinta] dddd [je] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[pasinta] dddd [je] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1a', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1a', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2a', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2a', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3a', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('es');
- test('parse', function (assert) {
- var tests = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'domingo, febrero 14º 2010, 3:25:50 pm'],
- ['ddd, hA', 'dom., 3PM'],
- ['M Mo MM MMMM MMM', '2 2º 02 febrero feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14º 14'],
- ['d do dddd ddd dd', '0 0º domingo dom. do'],
- ['DDD DDDo DDDD', '45 45º 045'],
- ['w wo ww', '6 6º 06'],
- ['YYYY-MMM-DD', '2010-feb-14'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45º day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 de febrero de 2010'],
- ['LLL', '14 de febrero de 2010 15:25'],
- ['LLLL', 'domingo, 14 de febrero de 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 de feb. de 2010'],
- ['lll', '14 de feb. de 2010 15:25'],
- ['llll', 'dom., 14 de feb. de 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º');
- });
- test('format month', function (assert) {
- var expected = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'domingo dom. do_lunes lun. lu_martes mar. ma_miércoles mié. mi_jueves jue. ju_viernes vie. vi_sábado sáb. sá'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'unos segundos', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minuto', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minuto', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'una hora', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'una hora', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un día', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un día', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 días', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un día', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 días', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 días', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mes', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mes', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mes', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mes', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un año', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 años', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un año', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 años', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'en unos segundos', 'prefix');
- assert.equal(moment(0).from(30000), 'hace unos segundos', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'hace unos segundos', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'en unos segundos', 'en unos segundos');
- assert.equal(moment().add({d: 5}).fromNow(), 'en 5 días', 'en 5 días');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'hoy a las 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'hoy a las 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'hoy a las 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'mañana a las 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).add({d: 1, h : -1}).calendar(), 'mañana a la 1:00', 'tomorrow minus 1 hour');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'hoy a la 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ayer a las 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[el] dddd [pasado a la' + ((m.hours() !== 1) ? 's' : '') + '] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('et');
- test('parse', function (assert) {
- var tests = 'jaanuar jaan_veebruar veebr_märts märts_aprill apr_mai mai_juuni juuni_juuli juuli_august aug_september sept_oktoober okt_november nov_detsember dets'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' peaks olema kuu ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, H:mm:ss', 'pühapäev, 14. veebruar 2010, 15:25:50'],
- ['ddd, h', 'P, 3'],
- ['M Mo MM MMMM MMM', '2 2. 02 veebruar veebr'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. pühapäev P P'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[aasta] DDDo [päev]', 'aasta 45. päev'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14. veebruar 2010'],
- ['LLL', '14. veebruar 2010 15:25'],
- ['LLLL', 'pühapäev, 14. veebruar 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14. veebr 2010'],
- ['lll', '14. veebr 2010 15:25'],
- ['llll', 'P, 14. veebr 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'jaanuar jaan_veebruar veebr_märts märts_aprill apr_mai mai_juuni juuni_juuli juuli_august aug_september sept_oktoober okt_november nov_detsember dets'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'pühapäev P P_esmaspäev E E_teisipäev T T_kolmapäev K K_neljapäev N N_reede R R_laupäev L L'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'paar sekundit', '44 seconds = paar sekundit');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'üks minut', '45 seconds = üks minut');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'üks minut', '89 seconds = üks minut');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutit', '90 seconds = 2 minutit');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutit', '44 minutes = 44 minutit');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'üks tund', '45 minutes = tund aega');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'üks tund', '89 minutes = üks tund');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 tundi', '90 minutes = 2 tundi');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 tundi', '5 hours = 5 tundi');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tundi', '21 hours = 21 tundi');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'üks päev', '22 hours = üks päev');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'üks päev', '35 hours = üks päev');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 päeva', '36 hours = 2 päeva');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'üks päev', '1 day = üks päev');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 päeva', '5 days = 5 päeva');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 päeva', '25 days = 25 päeva');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'üks kuu', '26 days = üks kuu');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'üks kuu', '30 days = üks kuu');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'üks kuu', '43 days = üks kuu');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 kuud', '46 days = 2 kuud');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 kuud', '75 days = 2 kuud');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 kuud', '76 days = 3 kuud');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'üks kuu', '1 month = üks kuu');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 kuud', '5 months = 5 kuud');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'üks aasta', '345 days = üks aasta');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 aastat', '548 days = 2 aastat');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'üks aasta', '1 year = üks aasta');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 aastat', '5 years = 5 aastat');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'mõne sekundi pärast', 'prefix');
- assert.equal(moment(0).from(30000), 'mõni sekund tagasi', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'mõni sekund tagasi', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'mõne sekundi pärast', 'in a few seconds');
- assert.equal(moment().subtract({s: 30}).fromNow(), 'mõni sekund tagasi', 'a few seconds ago');
- assert.equal(moment().add({m: 1}).fromNow(), 'ühe minuti pärast', 'in a minute');
- assert.equal(moment().subtract({m: 1}).fromNow(), 'üks minut tagasi', 'a minute ago');
- assert.equal(moment().add({m: 5}).fromNow(), '5 minuti pärast', 'in 5 minutes');
- assert.equal(moment().subtract({m: 5}).fromNow(), '5 minutit tagasi', '5 minutes ago');
- assert.equal(moment().add({d: 1}).fromNow(), 'ühe päeva pärast', 'in one day');
- assert.equal(moment().subtract({d: 1}).fromNow(), 'üks päev tagasi', 'one day ago');
- assert.equal(moment().add({d: 5}).fromNow(), '5 päeva pärast', 'in 5 days');
- assert.equal(moment().subtract({d: 5}).fromNow(), '5 päeva tagasi', '5 days ago');
- assert.equal(moment().add({M: 1}).fromNow(), 'kuu aja pärast', 'in a month');
- assert.equal(moment().subtract({M: 1}).fromNow(), 'kuu aega tagasi', 'a month ago');
- assert.equal(moment().add({M: 5}).fromNow(), '5 kuu pärast', 'in 5 months');
- assert.equal(moment().subtract({M: 5}).fromNow(), '5 kuud tagasi', '5 months ago');
- assert.equal(moment().add({y: 1}).fromNow(), 'ühe aasta pärast', 'in a year');
- assert.equal(moment().subtract({y: 1}).fromNow(), 'aasta tagasi', 'a year ago');
- assert.equal(moment().add({y: 5}).fromNow(), '5 aasta pärast', 'in 5 years');
- assert.equal(moment().subtract({y: 5}).fromNow(), '5 aastat tagasi', '5 years ago');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Täna, 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Täna, 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Täna, 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Homme, 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Täna, 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Eile, 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[Järgmine] dddd LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Järgmine] dddd LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Järgmine] dddd LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Eelmine] dddd LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Eelmine] dddd LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Eelmine] dddd LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 nädal tagasi');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '1 nädala pärast');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 nädalat tagasi');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '2 nädala pärast');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('eu');
- test('parse', function (assert) {
- var tests = 'urtarrila urt._otsaila ots._martxoa mar._apirila api._maiatza mai._ekaina eka._uztaila uzt._abuztua abu._iraila ira._urria urr._azaroa aza._abendua abe.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'igandea, otsaila 14. 2010, 3:25:50 pm'],
- ['ddd, hA', 'ig., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 otsaila ots.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. igandea ig. ig'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '2010-02-14'],
- ['LL', '2010ko otsailaren 14a'],
- ['LLL', '2010ko otsailaren 14a 15:25'],
- ['LLLL', 'igandea, 2010ko otsailaren 14a 15:25'],
- ['l', '2010-2-14'],
- ['ll', '2010ko ots. 14a'],
- ['lll', '2010ko ots. 14a 15:25'],
- ['llll', 'ig., 2010ko ots. 14a 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'urtarrila urt._otsaila ots._martxoa mar._apirila api._maiatza mai._ekaina eka._uztaila uzt._abuztua abu._iraila ira._urria urr._azaroa aza._abendua abe.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'igandea ig. ig_astelehena al. al_asteartea ar. ar_asteazkena az. az_osteguna og. og_ostirala ol. ol_larunbata lr. lr'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'segundo batzuk', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minutu bat', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minutu bat', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutu', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutu', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ordu bat', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ordu bat', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ordu', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ordu', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ordu', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'egun bat', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'egun bat', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 egun', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'egun bat', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 egun', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 egun', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'hilabete bat', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'hilabete bat', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'hilabete bat', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 hilabete', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 hilabete', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 hilabete', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'hilabete bat', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 hilabete', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'urte bat', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 urte', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'urte bat', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 urte', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'segundo batzuk barru', 'prefix');
- assert.equal(moment(0).from(30000), 'duela segundo batzuk', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'duela segundo batzuk', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'segundo batzuk barru', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 egun barru', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'gaur 02:00etan', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'gaur 02:25etan', 'now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'gaur 03:00etan', 'now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'bihar 02:00etan', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'gaur 01:00etan', 'now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'atzo 02:00etan', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd LT[etan]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd LT[etan]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd LT[etan]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[aurreko] dddd LT[etan]'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[aurreko] dddd LT[etan]'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[aurreko] dddd LT[etan]'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('fa');
- test('parse', function (assert) {
- var tests = 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month());
- }
- for (i = 0; i < 12; i++) {
- equalTest(tests[i], 'MMM', i);
- equalTest(tests[i], 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'یک\u200cشنبه، فوریه ۱۴م ۲۰۱۰، ۳:۲۵:۵۰ بعد از ظهر'],
- ['ddd, hA', 'یک\u200cشنبه، ۳بعد از ظهر'],
- ['M Mo MM MMMM MMM', '۲ ۲م ۰۲ فوریه فوریه'],
- ['YYYY YY', '۲۰۱۰ ۱۰'],
- ['D Do DD', '۱۴ ۱۴م ۱۴'],
- ['d do dddd ddd dd', '۰ ۰م یک\u200cشنبه یک\u200cشنبه ی'],
- ['DDD DDDo DDDD', '۴۵ ۴۵م ۰۴۵'],
- ['w wo ww', '۸ ۸م ۰۸'],
- ['h hh', '۳ ۰۳'],
- ['H HH', '۱۵ ۱۵'],
- ['m mm', '۲۵ ۲۵'],
- ['s ss', '۵۰ ۵۰'],
- ['a A', 'بعد از ظهر بعد از ظهر'],
- ['DDDo [روز سال]', '۴۵م روز سال'],
- ['LTS', '۱۵:۲۵:۵۰'],
- ['L', '۱۴/۰۲/۲۰۱۰'],
- ['LL', '۱۴ فوریه ۲۰۱۰'],
- ['LLL', '۱۴ فوریه ۲۰۱۰ ۱۵:۲۵'],
- ['LLLL', 'یک\u200cشنبه، ۱۴ فوریه ۲۰۱۰ ۱۵:۲۵'],
- ['l', '۱۴/۲/۲۰۱۰'],
- ['ll', '۱۴ فوریه ۲۰۱۰'],
- ['lll', '۱۴ فوریه ۲۰۱۰ ۱۵:۲۵'],
- ['llll', 'یک\u200cشنبه، ۱۴ فوریه ۲۰۱۰ ۱۵:۲۵']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '۱م', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '۲م', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '۳م', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '۴م', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '۵م', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '۶م', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '۷م', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '۸م', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '۹م', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '۱۰م', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '۱۱م', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '۱۲م', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '۱۳م', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '۱۴م', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '۱۵م', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '۱۶م', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '۱۷م', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '۱۸م', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '۱۹م', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '۲۰م', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '۲۱م', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '۲۲م', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '۲۳م', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '۲۴م', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '۲۵م', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '۲۶م', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '۲۷م', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '۲۸م', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '۲۹م', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '۳۰م', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '۳۱م', '31');
- });
- test('format month', function (assert) {
- var expected = 'ژانویه ژانویه_فوریه فوریه_مارس مارس_آوریل آوریل_مه مه_ژوئن ژوئن_ژوئیه ژوئیه_اوت اوت_سپتامبر سپتامبر_اکتبر اکتبر_نوامبر نوامبر_دسامبر دسامبر'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'یک\u200cشنبه یک\u200cشنبه ی_دوشنبه دوشنبه د_سه\u200cشنبه سه\u200cشنبه س_چهارشنبه چهارشنبه چ_پنج\u200cشنبه پنج\u200cشنبه پ_جمعه جمعه ج_شنبه شنبه ش'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'چندین ثانیه', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'یک دقیقه', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'یک دقیقه', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '۲ دقیقه', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '۴۴ دقیقه', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'یک ساعت', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'یک ساعت', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '۲ ساعت', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '۵ ساعت', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '۲۱ ساعت', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'یک روز', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'یک روز', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '۲ روز', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'یک روز', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '۵ روز', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '۲۵ روز', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'یک ماه', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'یک ماه', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'یک ماه', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '۲ ماه', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '۲ ماه', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '۳ ماه', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'یک ماه', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '۵ ماه', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'یک سال', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '۲ سال', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'یک سال', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '۵ سال', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'در چندین ثانیه', 'prefix');
- assert.equal(moment(0).from(30000), 'چندین ثانیه پیش', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'چندین ثانیه پیش', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'در چندین ثانیه', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'در ۵ روز', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'امروز ساعت ۰۲:۰۰', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'امروز ساعت ۰۲:۲۵', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'امروز ساعت ۰۳:۰۰', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'فردا ساعت ۰۲:۰۰', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'امروز ساعت ۰۱:۰۰', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'دیروز ساعت ۰۲:۰۰', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [ساعت] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [ساعت] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [ساعت] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [پیش ساعت] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [پیش ساعت] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [پیش ساعت] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 31]).week(), 1, 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).week(), 1, 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).week(), 2, 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 30]).week(), 1, 'Dec 30 2006 should be week 1');
- assert.equal(moment([2007, 0, 5]).week(), 1, 'Jan 5 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 2, 'Jan 6 2007 should be week 2');
- assert.equal(moment([2007, 0, 12]).week(), 2, 'Jan 12 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 3, 'Jan 13 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 1, 'Dec 29 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 4]).week(), 1, 'Jan 4 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 2, 'Jan 5 2008 should be week 2');
- assert.equal(moment([2008, 0, 11]).week(), 2, 'Jan 11 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 3, 'Jan 12 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 28]).week(), 1, 'Dec 28 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 3]).week(), 1, 'Jan 3 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 2, 'Jan 4 2003 should be week 2');
- assert.equal(moment([2003, 0, 10]).week(), 2, 'Jan 10 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 3, 'Jan 11 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 27]).week(), 1, 'Dec 27 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 2]).week(), 1, 'Jan 2 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 2, 'Jan 3 2009 should be week 2');
- assert.equal(moment([2009, 0, 9]).week(), 2, 'Jan 9 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 3, 'Jan 10 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 26]).week(), 1, 'Dec 26 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 2, 'Jan 2 2010 should be week 2');
- assert.equal(moment([2010, 0, 8]).week(), 2, 'Jan 8 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 3, 'Jan 9 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 7]).week(), 1, 'Jan 7 2011 should be week 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 14]).week(), 2, 'Jan 14 2011 should be week 2');
- assert.equal(moment([2011, 0, 15]).week(), 3, 'Jan 15 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 31]).format('w ww wo'), '۱ ۰۱ ۱م', 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).format('w ww wo'), '۱ ۰۱ ۱م', 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '۲ ۰۲ ۲م', 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).format('w ww wo'), '۲ ۰۲ ۲م', 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '۳ ۰۳ ۳م', 'Jan 14 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('fi');
- test('parse', function (assert) {
- var tests = 'tammikuu tammi_helmikuu helmi_maaliskuu maalis_huhtikuu huhti_toukokuu touko_kesäkuu kesä_heinäkuu heinä_elokuu elo_syyskuu syys_lokakuu loka_marraskuu marras_joulukuu joulu'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'sunnuntai, helmikuu 14. 2010, 3:25:50 pm'],
- ['ddd, hA', 'su, 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 helmikuu helmi'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. sunnuntai su su'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[vuoden] DDDo [päivä]', 'vuoden 45. päivä'],
- ['LTS', '15.25.50'],
- ['L', '14.02.2010'],
- ['LL', '14. helmikuuta 2010'],
- ['LLL', '14. helmikuuta 2010, klo 15.25'],
- ['LLLL', 'sunnuntai, 14. helmikuuta 2010, klo 15.25'],
- ['l', '14.2.2010'],
- ['ll', '14. helmi 2010'],
- ['lll', '14. helmi 2010, klo 15.25'],
- ['llll', 'su, 14. helmi 2010, klo 15.25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31st');
- });
- test('format month', function (assert) {
- var expected = 'tammikuu tammi_helmikuu helmi_maaliskuu maalis_huhtikuu huhti_toukokuu touko_kesäkuu kesä_heinäkuu heinä_elokuu elo_syyskuu syys_lokakuu loka_marraskuu marras_joulukuu joulu'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'sunnuntai su su_maanantai ma ma_tiistai ti ti_keskiviikko ke ke_torstai to to_perjantai pe pe_lauantai la la'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'muutama sekunti', '44 seconds = few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuutti', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuutti', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'kaksi minuuttia', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuuttia', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'tunti', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'tunti', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'kaksi tuntia', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'viisi tuntia', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tuntia', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'päivä', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'päivä', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'kaksi päivää', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'päivä', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'viisi päivää', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 päivää', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'kuukausi', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'kuukausi', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'kuukausi', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'kaksi kuukautta', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'kaksi kuukautta', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'kolme kuukautta', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'kuukausi', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'viisi kuukautta', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'vuosi', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'kaksi vuotta', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'vuosi', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'viisi vuotta', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'muutaman sekunnin päästä', 'prefix');
- assert.equal(moment(0).from(30000), 'muutama sekunti sitten', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'muutama sekunti sitten', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'muutaman sekunnin päästä', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'viiden päivän päästä', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'tänään klo 02.00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'tänään klo 02.25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'tänään klo 03.00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'huomenna klo 02.00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'tänään klo 01.00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'eilen klo 02.00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [klo] LT'), 'today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [klo] LT'), 'today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [klo] LT'), 'today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[viime] dddd[na] [klo] LT'), 'today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[viime] dddd[na] [klo] LT'), 'today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[viime] dddd[na] [klo] LT'), 'today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'yksi viikko sitten');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'yhden viikon päästä');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'kaksi viikkoa sitten');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'kaden viikon päästä');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('fo');
- test('parse', function (assert) {
- var tests = 'januar jan_februar feb_mars mar_apríl apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd [tann] Do MMMM YYYY, h:mm:ss a', 'sunnudagur tann 14. februar 2010, 3:25:50 pm'],
- ['ddd hA', 'sun 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. sunnudagur sun su'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[tann] DDDo [dagin á árinum]', 'tann 45. dagin á árinum'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 februar 2010'],
- ['LLL', '14 februar 2010 15:25'],
- ['LLLL', 'sunnudagur 14. februar, 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 feb 2010'],
- ['lll', '14 feb 2010 15:25'],
- ['llll', 'sun 14. feb, 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan_februar feb_mars mar_apríl apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'sunnudagur sun su_mánadagur mán má_týsdagur týs tý_mikudagur mik mi_hósdagur hós hó_fríggjadagur frí fr_leygardagur ley le'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'fá sekund', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ein minutt', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ein minutt', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuttir', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuttir', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ein tími', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ein tími', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 tímar', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 tímar', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tímar', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein dagur', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein dagur', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein dagur', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein mánaði', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein mánaði', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ein mánaði', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mánaðir', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mánaðir', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mánaðir', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein mánaði', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mánaðir', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'eitt ár', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ár', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eitt ár', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ár', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'um fá sekund', 'prefix');
- assert.equal(moment(0).from(30000), 'fá sekund síðani', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'fá sekund síðani', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'um fá sekund', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'um 5 dagar', 'in 5 days');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('fr-ca');
- test('parse', function (assert) {
- var i,
- tests = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'dimanche, février 14e 2010, 3:25:50 pm'],
- ['ddd, hA', 'dim., 3PM'],
- ['M Mo MM MMMM MMM', '2 2e 02 février févr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14e 14'],
- ['d do dddd ddd dd', '0 0e dimanche dim. Di'],
- ['DDD DDDo DDDD', '45 45e 045'],
- ['w wo ww', '8 8e 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45e day of the year'],
- ['LTS', '15:25:50'],
- ['L', '2010-02-14'],
- ['LL', '14 février 2010'],
- ['LLL', '14 février 2010 15:25'],
- ['LLLL', 'dimanche 14 février 2010 15:25'],
- ['l', '2010-2-14'],
- ['ll', '14 févr. 2010'],
- ['lll', '14 févr. 2010 15:25'],
- ['llll', 'dim. 14 févr. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1er', '1er');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2e', '2e');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3e', '3e');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4e', '4e');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5e', '5e');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6e', '6e');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7e', '7e');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8e', '8e');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9e', '9e');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10e', '10e');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11e', '11e');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12e', '12e');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13e', '13e');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14e', '14e');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15e', '15e');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16e', '16e');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17e', '17e');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18e', '18e');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19e', '19e');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20e', '20e');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21e', '21e');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22e', '22e');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23e', '23e');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24e', '24e');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25e', '25e');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26e', '26e');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27e', '27e');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28e', '28e');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29e', '29e');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30e', '30e');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31e', '31e');
- });
- test('format month', function (assert) {
- var i,
- expected = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'dimanche dim. Di_lundi lun. Lu_mardi mar. Ma_mercredi mer. Me_jeudi jeu. Je_vendredi ven. Ve_samedi sam. Sa'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'quelques secondes', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'une minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'une minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'une heure', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'une heure', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 heures', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 heures', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 heures', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un jour', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un jour', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 jours', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un jour', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 jours', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 jours', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mois', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mois', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mois', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mois', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mois', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mois', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mois', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mois', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ans', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ans', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'dans quelques secondes', 'prefix');
- assert.equal(moment(0).from(30000), 'il y a quelques secondes', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'dans quelques secondes', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'dans 5 jours', 'in 5 days');
- });
- test('same day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Aujourd\'hui à 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Aujourd\'hui à 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Aujourd\'hui à 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Demain à 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Aujourd\'hui à 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hier à 02:00', 'yesterday at the same time');
- });
- test('same next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('same last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('same all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1er', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1er', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2e', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2e', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3e', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('fr-ch');
- test('parse', function (assert) {
- var i,
- tests = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'dimanche, février 14e 2010, 3:25:50 pm'],
- ['ddd, hA', 'dim., 3PM'],
- ['M Mo MM MMMM MMM', '2 2e 02 février févr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14e 14'],
- ['d do dddd ddd dd', '0 0e dimanche dim. Di'],
- ['DDD DDDo DDDD', '45 45e 045'],
- ['w wo ww', '6 6e 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45e day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 février 2010'],
- ['LLL', '14 février 2010 15:25'],
- ['LLLL', 'dimanche 14 février 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 févr. 2010'],
- ['lll', '14 févr. 2010 15:25'],
- ['llll', 'dim. 14 févr. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1er', '1er');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2e', '2e');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3e', '3e');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4e', '4e');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5e', '5e');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6e', '6e');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7e', '7e');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8e', '8e');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9e', '9e');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10e', '10e');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11e', '11e');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12e', '12e');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13e', '13e');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14e', '14e');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15e', '15e');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16e', '16e');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17e', '17e');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18e', '18e');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19e', '19e');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20e', '20e');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21e', '21e');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22e', '22e');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23e', '23e');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24e', '24e');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25e', '25e');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26e', '26e');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27e', '27e');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28e', '28e');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29e', '29e');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30e', '30e');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31e', '31e');
- });
- test('format month', function (assert) {
- var i,
- expected = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'dimanche dim. Di_lundi lun. Lu_mardi mar. Ma_mercredi mer. Me_jeudi jeu. Je_vendredi ven. Ve_samedi sam. Sa'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'quelques secondes', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'une minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'une minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'une heure', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'une heure', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 heures', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 heures', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 heures', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un jour', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un jour', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 jours', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un jour', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 jours', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 jours', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mois', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mois', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mois', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mois', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mois', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mois', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mois', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mois', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ans', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ans', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'dans quelques secondes', 'prefix');
- assert.equal(moment(0).from(30000), 'il y a quelques secondes', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'dans quelques secondes', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'dans 5 jours', 'in 5 days');
- });
- test('same day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Aujourd\'hui à 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Aujourd\'hui à 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Aujourd\'hui à 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Demain à 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Aujourd\'hui à 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hier à 02:00', 'yesterday at the same time');
- });
- test('same next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('same last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('same all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52e', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1er', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1er', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2e', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2e', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('fr');
- test('parse', function (assert) {
- var tests = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'dimanche, février 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'dim., 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 février févr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 dimanche dim. Di'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '6 6 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 février 2010'],
- ['LLL', '14 février 2010 15:25'],
- ['LLLL', 'dimanche 14 février 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 févr. 2010'],
- ['lll', '14 févr. 2010 15:25'],
- ['llll', 'dim. 14 févr. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1er', '1er');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'janvier janv._février févr._mars mars_avril avr._mai mai_juin juin_juillet juil._août août_septembre sept._octobre oct._novembre nov._décembre déc.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'dimanche dim. Di_lundi lun. Lu_mardi mar. Ma_mercredi mer. Me_jeudi jeu. Je_vendredi ven. Ve_samedi sam. Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'quelques secondes', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'une minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'une minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'une heure', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'une heure', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 heures', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 heures', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 heures', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un jour', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un jour', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 jours', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un jour', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 jours', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 jours', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mois', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mois', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mois', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mois', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mois', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mois', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mois', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mois', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ans', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ans', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'dans quelques secondes', 'prefix');
- assert.equal(moment(0).from(30000), 'il y a quelques secondes', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'dans quelques secondes', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'dans 5 jours', 'in 5 days');
- });
- test('same day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Aujourd\'hui à 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Aujourd\'hui à 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Aujourd\'hui à 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Demain à 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Aujourd\'hui à 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hier à 02:00', 'yesterday at the same time');
- });
- test('same next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('same last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [dernier à] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('same all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1er', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1er', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('fy');
- test('parse', function (assert) {
- var tests = 'jannewaris jan._febrewaris feb._maart mrt._april apr._maaie mai._juny jun._july jul._augustus aug._septimber sep._oktober okt._novimber nov._desimber des.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, HH:mm:ss', 'snein, febrewaris 14de 2010, 15:25:50'],
- ['ddd, HH', 'si., 15'],
- ['M Mo MM MMMM MMM', '2 2de 02 febrewaris feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14de 14'],
- ['d do dddd ddd dd', '0 0de snein si. Si'],
- ['DDD DDDo DDDD', '45 45ste 045'],
- ['w wo ww', '6 6de 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45ste day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14-02-2010'],
- ['LL', '14 febrewaris 2010'],
- ['LLL', '14 febrewaris 2010 15:25'],
- ['LLLL', 'snein 14 febrewaris 2010 15:25'],
- ['l', '14-2-2010'],
- ['ll', '14 feb. 2010'],
- ['lll', '14 feb. 2010 15:25'],
- ['llll', 'si. 14 feb. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1ste', '1ste');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2de', '2de');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3de', '3de');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4de', '4de');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5de', '5de');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6de', '6de');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7de', '7de');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8ste', '8ste');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9de', '9de');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10de', '10de');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11de', '11de');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12de', '12de');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13de', '13de');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14de', '14de');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15de', '15de');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16de', '16de');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17de', '17de');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18de', '18de');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19de', '19de');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20ste', '20ste');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ste', '21ste');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ste', '22ste');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ste', '23ste');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ste', '24ste');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ste', '25ste');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ste', '26ste');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ste', '27ste');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ste', '28ste');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ste', '29ste');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ste', '30ste');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ste', '31ste');
- });
- test('format month', function (assert) {
- var expected = 'jannewaris jan._febrewaris feb._maart mrt._april apr._maaie mai_juny jun._july jul._augustus aug._septimber sep._oktober okt._novimber nov._desimber des.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'snein si. Si_moandei mo. Mo_tiisdei ti. Ti_woansdei wo. Wo_tongersdei to. To_freed fr. Fr_sneon so. So'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'in pear sekonden', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ien minút', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ien minút', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuten', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuten', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ien oere', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ien oere', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 oeren', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 oeren', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 oeren', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ien dei', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ien dei', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagen', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ien dei', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagen', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagen', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ien moanne', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ien moanne', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ien moanne', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 moannen', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 moannen', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 moannen', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ien moanne', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 moannen', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ien jier', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jierren', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ien jier', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jierren', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'oer in pear sekonden', 'prefix');
- assert.equal(moment(0).from(30000), 'in pear sekonden lyn', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'in pear sekonden lyn', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'oer in pear sekonden', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'oer 5 dagen', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'hjoed om 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'hjoed om 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'hjoed om 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'moarn om 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'hjoed om 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'juster om 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[ôfrûne] dddd [om] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[ôfrûne] dddd [om] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[ôfrûne] dddd [om] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('month abbreviation', function (assert) {
- assert.equal(moment([2012, 5, 23]).format('D-MMM-YYYY'), '23-jun-2012', 'format month abbreviation surrounded by dashes should not include a dot');
- assert.equal(moment([2012, 5, 23]).format('D MMM YYYY'), '23 jun. 2012', 'format month abbreviation not surrounded by dashes should include a dot');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ste', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1ste', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1ste', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2de', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2de', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('gd');
- var months = [
- 'Am Faoilleach,Faoi',
- 'An Gearran,Gear',
- 'Am Màrt,Màrt',
- 'An Giblean,Gibl',
- 'An Cèitean,Cèit',
- 'An t-Ògmhios,Ògmh',
- 'An t-Iuchar,Iuch',
- 'An Lùnastal,Lùn',
- 'An t-Sultain,Sult',
- 'An Dàmhair,Dàmh',
- 'An t-Samhain,Samh',
- 'An Dùbhlachd,Dùbh'
- ];
- test('parse', function (assert) {
- function equalTest(monthName, monthFormat, monthNum) {
- assert.equal(moment(monthName, monthFormat).month(), monthNum, monthName + ' should be month ' + (monthNum + 1));
- }
- for (var i = 0; i < 12; i++) {
- var testMonth = months[i].split(',');
- equalTest(testMonth[0], 'MMM', i);
- equalTest(testMonth[1], 'MMM', i);
- equalTest(testMonth[0], 'MMMM', i);
- equalTest(testMonth[1], 'MMMM', i);
- equalTest(testMonth[0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(testMonth[1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(testMonth[0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(testMonth[1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Didòmhnaich, An Gearran 14mh 2010, 3:25:50 pm'],
- ['ddd, hA', 'Did, 3PM'],
- ['M Mo MM MMMM MMM', '2 2na 02 An Gearran Gear'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14mh 14'],
- ['d do dddd ddd dd', '0 0mh Didòmhnaich Did Dò'],
- ['DDD DDDo DDDD', '45 45mh 045'],
- ['w wo ww', '6 6mh 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[an] DDDo [latha den bhliadhna]', 'an 45mh latha den bhliadhna'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 An Gearran 2010'],
- ['LLL', '14 An Gearran 2010 15:25'],
- ['LLLL', 'Didòmhnaich, 14 An Gearran 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 Gear 2010'],
- ['lll', '14 Gear 2010 15:25'],
- ['llll', 'Did, 14 Gear 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1d', '1d');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2na', '2na');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3mh', '3mh');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4mh', '4mh');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5mh', '5mh');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6mh', '6mh');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7mh', '7mh');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8mh', '8mh');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9mh', '9mh');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10mh', '10mh');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11mh', '11mh');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12na', '12na');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13mh', '13mh');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14mh', '14mh');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15mh', '15mh');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16mh', '16mh');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17mh', '17mh');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18mh', '18mh');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19mh', '19mh');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20mh', '20mh');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21mh', '21mh');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22na', '22na');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23mh', '23mh');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24mh', '24mh');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25mh', '25mh');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26mh', '26mh');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27mh', '27mh');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28mh', '28mh');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29mh', '29mh');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30mh', '30mh');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31mh', '31mh');
- });
- test('format month', function (assert) {
- var expected = months;
- for (var i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM,MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = ['Didòmhnaich Did Dò', 'Diluain Dil Lu', 'Dimàirt Dim Mà', 'Diciadain Dic Ci', 'Diardaoin Dia Ar', 'Dihaoine Dih Ha', 'Disathairne Dis Sa'];
- for (var i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beagan diogan', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'mionaid', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'mionaid', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 mionaidean', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 mionaidean', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'uair', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'uair', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 uairean', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 uairean', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 uairean', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'latha', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'latha', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 latha', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'latha', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 latha', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 latha', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mìos', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mìos', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mìos', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mìosan', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mìosan', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mìosan', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mìos', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mìosan', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'bliadhna', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 bliadhna', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'bliadhna', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 bliadhna', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'ann an beagan diogan', 'prefix');
- assert.equal(moment(0).from(30000), 'bho chionn beagan diogan', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'bho chionn beagan diogan', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'ann an beagan diogan', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'ann an 5 latha', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'An-diugh aig 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'An-diugh aig 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'An-diugh aig 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'A-màireach aig 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'An-diugh aig 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'An-dè aig 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [aig] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [aig] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [aig] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [seo chaidh] [aig] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [seo chaidh] [aig] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [seo chaidh] [aig] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Faoi 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Faoi 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Faoi 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Faoi 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Faoi 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Faoi 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Faoi 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Faoi 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Faoi 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Faoi 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dùbh 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Faoi 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Faoi 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Faoi 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Faoi 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Faoi 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dùbh 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Faoi 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Faoi 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Faoi 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Faoi 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Faoi 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dùbh 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Faoi 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Faoi 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Faoi 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Faoi 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Faoi 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dùbh 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Faoi 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Faoi 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Faoi 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Faoi 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Faoi 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dùbh 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Faoi 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Faoi 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Faoi 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Faoi 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Faoi 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52na', 'Faoi 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1d', 'Faoi 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1d', 'Faoi 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2na', 'Faoi 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2na', 'Faoi 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('gl');
- test('parse', function (assert) {
- var tests = 'Xaneiro Xan._Febreiro Feb._Marzo Mar._Abril Abr._Maio Mai._Xuño Xuñ._Xullo Xul._Agosto Ago._Setembro Set._Outubro Out._Novembro Nov._Decembro Dec.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Domingo, Febreiro 14º 2010, 3:25:50 pm'],
- ['ddd, hA', 'Dom., 3PM'],
- ['M Mo MM MMMM MMM', '2 2º 02 Febreiro Feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14º 14'],
- ['d do dddd ddd dd', '0 0º Domingo Dom. Do'],
- ['DDD DDDo DDDD', '45 45º 045'],
- ['w wo ww', '7 7º 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45º day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 Febreiro 2010'],
- ['LLL', '14 Febreiro 2010 15:25'],
- ['LLLL', 'Domingo 14 Febreiro 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb. 2010'],
- ['lll', '14 Feb. 2010 15:25'],
- ['llll', 'Dom. 14 Feb. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º');
- });
- test('format month', function (assert) {
- var expected = 'Xaneiro Xan._Febreiro Feb._Marzo Mar._Abril Abr._Maio Mai._Xuño Xuñ._Xullo Xul._Agosto Ago._Setembro Set._Outubro Out._Novembro Nov._Decembro Dec.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Domingo Dom. Do_Luns Lun. Lu_Martes Mar. Ma_Mércores Mér. Mé_Xoves Xov. Xo_Venres Ven. Ve_Sábado Sáb. Sá'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'uns segundos', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minuto', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minuto', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'unha hora', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'unha hora', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un día', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un día', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 días', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un día', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 días', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 días', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mes', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mes', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mes', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mes', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un ano', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anos', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un ano', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anos', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'nuns segundos', 'prefix');
- assert.equal(moment(0).from(30000), 'hai uns segundos', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'hai uns segundos', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'nuns segundos', 'en unos segundos');
- assert.equal(moment().add({d: 5}).fromNow(), 'en 5 días', 'en 5 días');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'hoxe ás 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'hoxe ás 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'hoxe ás 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'mañá ás 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).add({d: 1, h : -1}).calendar(), 'mañá á 1:00', 'tomorrow minus 1 hour');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'hoxe á 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'onte á 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[o] dddd [pasado ' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[o] dddd [pasado ' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[o] dddd [pasado ' + ((m.hours() !== 1) ? 'ás' : 'a') + '] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('regression tests', function (assert) {
- var lastWeek = moment().subtract({d: 4}).hours(1);
- assert.equal(lastWeek.calendar(), lastWeek.format('[o] dddd [pasado a] LT'), '1 o\'clock bug');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1º', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1º', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2º', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2º', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3º', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('he');
- test('parse', function (assert) {
- var tests = 'ינואר ינו׳_פברואר פבר׳_מרץ מרץ_אפריל אפר׳_מאי מאי_יוני יוני_יולי יולי_אוגוסט אוג׳_ספטמבר ספט׳_אוקטובר אוק׳_נובמבר נוב׳_דצמבר דצמ׳'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'ראשון, פברואר 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'א׳, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 פברואר פבר׳'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 ראשון א׳ א'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 בפברואר 2010'],
- ['LLL', '14 בפברואר 2010 15:25'],
- ['LLLL', 'ראשון, 14 בפברואר 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 פבר׳ 2010'],
- ['lll', '14 פבר׳ 2010 15:25'],
- ['llll', 'א׳, 14 פבר׳ 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = 'ינואר ינו׳_פברואר פבר׳_מרץ מרץ_אפריל אפר׳_מאי מאי_יוני יוני_יולי יולי_אוגוסט אוג׳_ספטמבר ספט׳_אוקטובר אוק׳_נובמבר נוב׳_דצמבר דצמ׳'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'ראשון א׳ א|שני ב׳ ב|שלישי ג׳ ג|רביעי ד׳ ד|חמישי ה׳ ה|שישי ו׳ ו|שבת ש׳ ש'.split('|'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'מספר שניות', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'דקה', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'דקה', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 דקות', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 דקות', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'שעה', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'שעה', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'שעתיים', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 שעות', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 שעות', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'יום', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'יום', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'יומיים', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'יום', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ימים', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ימים', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'חודש', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'חודש', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'חודש', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'חודשיים', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'חודשיים', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 חודשים', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'חודש', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 חודשים', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'שנה', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'שנתיים', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 3699}), true), '10 שנים', '345 days = 10 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 7340}), true), '20 שנה', '548 days = 20 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'שנה', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 שנים', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'בעוד מספר שניות', 'prefix');
- assert.equal(moment(0).from(30000), 'לפני מספר שניות', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'לפני מספר שניות', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'בעוד מספר שניות', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'בעוד 5 ימים', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'היום ב־02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'היום ב־02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'היום ב־03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'מחר ב־02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'היום ב־01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'אתמול ב־02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [בשעה] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [בשעה] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [בשעה] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[ביום] dddd [האחרון בשעה] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[ביום] dddd [האחרון בשעה] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[ביום] dddd [האחרון בשעה] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('hi');
- test('parse', function (assert) {
- var tests = 'जनवरी जन._फ़रवरी फ़र._मार्च मार्च_अप्रैल अप्रै._मई मई_जून जून_जुलाई जुल._अगस्त अग._सितम्बर सित._अक्टूबर अक्टू._नवम्बर नव._दिसम्बर दिस.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, a h:mm:ss बजे', 'रविवार, १४ फ़रवरी २०१०, दोपहर ३:२५:५० बजे'],
- ['ddd, a h बजे', 'रवि, दोपहर ३ बजे'],
- ['M Mo MM MMMM MMM', '२ २ ०२ फ़रवरी फ़र.'],
- ['YYYY YY', '२०१० १०'],
- ['D Do DD', '१४ १४ १४'],
- ['d do dddd ddd dd', '० ० रविवार रवि र'],
- ['DDD DDDo DDDD', '४५ ४५ ०४५'],
- ['w wo ww', '८ ८ ०८'],
- ['h hh', '३ ०३'],
- ['H HH', '१५ १५'],
- ['m mm', '२५ २५'],
- ['s ss', '५० ५०'],
- ['a A', 'दोपहर दोपहर'],
- ['LTS', 'दोपहर ३:२५:५० बजे'],
- ['L', '१४/०२/२०१०'],
- ['LL', '१४ फ़रवरी २०१०'],
- ['LLL', '१४ फ़रवरी २०१०, दोपहर ३:२५ बजे'],
- ['LLLL', 'रविवार, १४ फ़रवरी २०१०, दोपहर ३:२५ बजे'],
- ['l', '१४/२/२०१०'],
- ['ll', '१४ फ़र. २०१०'],
- ['lll', '१४ फ़र. २०१०, दोपहर ३:२५ बजे'],
- ['llll', 'रवि, १४ फ़र. २०१०, दोपहर ३:२५ बजे']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '१', '१');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '२', '२');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '३', '३');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '४', '४');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '५', '५');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '६', '६');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '७', '७');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '८', '८');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '९', '९');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '१०', '१०');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '११', '११');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '१२', '१२');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '१३', '१३');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '१४', '१४');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '१५', '१५');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '१६', '१६');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '१७', '१७');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '१८', '१८');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '१९', '१९');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '२०', '२०');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '२१', '२१');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '२२', '२२');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '२३', '२३');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '२४', '२४');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '२५', '२५');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '२६', '२६');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '२७', '२७');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '२८', '२८');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '२९', '२९');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '३०', '३०');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '३१', '३१');
- });
- test('format month', function (assert) {
- var expected = 'जनवरी जन._फ़रवरी फ़र._मार्च मार्च_अप्रैल अप्रै._मई मई_जून जून_जुलाई जुल._अगस्त अग._सितम्बर सित._अक्टूबर अक्टू._नवम्बर नव._दिसम्बर दिस.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'रविवार रवि र_सोमवार सोम सो_मंगलवार मंगल मं_बुधवार बुध बु_गुरूवार गुरू गु_शुक्रवार शुक्र शु_शनिवार शनि श'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'कुछ ही क्षण', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'एक मिनट', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'एक मिनट', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '२ मिनट', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '४४ मिनट', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'एक घंटा', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'एक घंटा', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '२ घंटे', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '५ घंटे', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '२१ घंटे', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'एक दिन', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'एक दिन', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '२ दिन', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'एक दिन', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '५ दिन', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '२५ दिन', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'एक महीने', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'एक महीने', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'एक महीने', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '२ महीने', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '२ महीने', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '३ महीने', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'एक महीने', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '५ महीने', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'एक वर्ष', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '२ वर्ष', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'एक वर्ष', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '५ वर्ष', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'कुछ ही क्षण में', 'prefix');
- assert.equal(moment(0).from(30000), 'कुछ ही क्षण पहले', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'कुछ ही क्षण पहले', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'कुछ ही क्षण में', 'कुछ ही क्षण में');
- assert.equal(moment().add({d: 5}).fromNow(), '५ दिन में', '५ दिन में');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'आज रात २:०० बजे', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'आज रात २:२५ बजे', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 3}).calendar(), 'आज सुबह ५:०० बजे', 'Now plus 3 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'कल रात २:०० बजे', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'आज रात १:०० बजे', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'कल रात २:०० बजे', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[पिछले] dddd[,] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[पिछले] dddd[,] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[पिछले] dddd[,] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem invariant', function (assert) {
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'रात', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'सुबह', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'दोपहर', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'शाम', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'शाम', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'रात', 'night');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'रात', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'सुबह', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'दोपहर', ' during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'शाम', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'शाम', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'रात', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '१ ०१ १', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '१ ०१ १', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '२ ०२ २', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '२ ०२ २', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '३ ०३ ३', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('hr');
- test('parse', function (assert) {
- var tests = 'siječanj sij._veljača velj._ožujak ožu._travanj tra._svibanj svi._lipanj lip._srpanj srp._kolovoz kol._rujan ruj._listopad lis._studeni stu._prosinac pro.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedjelja, 14. veljače 2010, 3:25:50 pm'],
- ['ddd, hA', 'ned., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 veljača velj.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. nedjelja ned. ne'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14. 02. 2010'],
- ['LL', '14. veljača 2010'],
- ['LLL', '14. veljača 2010 15:25'],
- ['LLLL', 'nedjelja, 14. veljača 2010 15:25'],
- ['l', '14. 2. 2010'],
- ['ll', '14. velj. 2010'],
- ['lll', '14. velj. 2010 15:25'],
- ['llll', 'ned., 14. velj. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'siječanj sij._veljača velj._ožujak ožu._travanj tra._svibanj svi._lipanj lip._srpanj srp._kolovoz kol._rujan ruj._listopad lis._studeni stu._prosinac pro.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'nedjelja ned. ne_ponedjeljak pon. po_utorak uto. ut_srijeda sri. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'par sekundi', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedna minuta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedna minuta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mjesec', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mjesec', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mjesec', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mjeseca', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mjeseca', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mjeseca', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mjesec', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mjeseci', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'za par sekundi', 'prefix');
- assert.equal(moment(0).from(30000), 'prije par sekundi', 'prefix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'prije par sekundi', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'za par sekundi', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'danas u 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'sutra u 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'jučer u 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[u] [nedjelju] [u] LT';
- case 3:
- return '[u] [srijedu] [u] LT';
- case 6:
- return '[u] [subotu] [u] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[u] dddd [u] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- case 3:
- return '[prošlu] dddd [u] LT';
- case 6:
- return '[prošle] [subote] [u] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[prošli] dddd [u] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('hu');
- test('parse', function (assert) {
- var tests = 'január jan_február feb_március márc_április ápr_május máj_június jún_július júl_augusztus aug_szeptember szept_október okt_november nov_december dec'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, HH:mm:ss', 'vasárnap, február 14. 2010, 15:25:50'],
- ['ddd, HH', 'vas, 15'],
- ['M Mo MM MMMM MMM', '2 2. 02 február feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. vasárnap vas v'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['[az év] DDDo [napja]', 'az év 45. napja'],
- ['LTS', '15:25:50'],
- ['L', '2010.02.14.'],
- ['LL', '2010. február 14.'],
- ['LLL', '2010. február 14. 15:25'],
- ['LLLL', '2010. február 14., vasárnap 15:25'],
- ['l', '2010.2.14.'],
- ['ll', '2010. feb 14.'],
- ['lll', '2010. feb 14. 15:25'],
- ['llll', '2010. feb 14., vas 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 0, 0]).format('a'), 'de', 'am');
- assert.equal(moment([2011, 2, 23, 11, 59]).format('a'), 'de', 'am');
- assert.equal(moment([2011, 2, 23, 12, 0]).format('a'), 'du', 'pm');
- assert.equal(moment([2011, 2, 23, 23, 59]).format('a'), 'du', 'pm');
- assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), 'DE', 'AM');
- assert.equal(moment([2011, 2, 23, 11, 59]).format('A'), 'DE', 'AM');
- assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), 'DU', 'PM');
- assert.equal(moment([2011, 2, 23, 23, 59]).format('A'), 'DU', 'PM');
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'január jan_február feb_március márc_április ápr_május máj_június jún_július júl_augusztus aug_szeptember szept_október okt_november nov_december dec'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'vasárnap vas_hétfő hét_kedd kedd_szerda sze_csütörtök csüt_péntek pén_szombat szo'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'néhány másodperc', '44 másodperc = néhány másodperc');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'egy perc', '45 másodperc = egy perc');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'egy perc', '89 másodperc = egy perc');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 perc', '90 másodperc = 2 perc');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 perc', '44 perc = 44 perc');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'egy óra', '45 perc = egy óra');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'egy óra', '89 perc = egy óra');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 óra', '90 perc = 2 óra');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 óra', '5 óra = 5 óra');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 óra', '21 óra = 21 óra');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'egy nap', '22 óra = egy nap');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'egy nap', '35 óra = egy nap');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 nap', '36 óra = 2 nap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'egy nap', '1 nap = egy nap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 nap', '5 nap = 5 nap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 nap', '25 nap = 25 nap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'egy hónap', '26 nap = egy hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'egy hónap', '30 nap = egy hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'egy hónap', '45 nap = egy hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 hónap', '46 nap = 2 hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 hónap', '75 nap = 2 hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 hónap', '76 nap = 3 hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'egy hónap', '1 hónap = egy hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 hónap', '5 hónap = 5 hónap');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'egy év', '345 nap = egy év');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 év', '548 nap = 2 év');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'egy év', '1 év = egy év');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 év', '5 év = 5 év');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'néhány másodperc múlva', 'prefix');
- assert.equal(moment(0).from(30000), 'néhány másodperce', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'néhány másodperce', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'néhány másodperc múlva', 'néhány másodperc múlva');
- assert.equal(moment().add({d: 5}).fromNow(), '5 nap múlva', '5 nap múlva');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'ma 2:00-kor', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'ma 2:25-kor', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'ma 3:00-kor', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'holnap 2:00-kor', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'ma 1:00-kor', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'tegnap 2:00-kor', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m, days = 'vasárnap_hétfőn_kedden_szerdán_csütörtökön_pénteken_szombaton'.split('_');
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[' + days[m.day()] + '] LT[-kor]'), 'today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[' + days[m.day()] + '] LT[-kor]'), 'today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[' + days[m.day()] + '] LT[-kor]'), 'today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m, days = 'vasárnap_hétfőn_kedden_szerdán_csütörtökön_pénteken_szombaton'.split('_');
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[múlt ' + days[m.day()] + '] LT[-kor]'), 'today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[múlt ' + days[m.day()] + '] LT[-kor]'), 'today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[múlt ' + days[m.day()] + '] LT[-kor]'), 'today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'egy héte');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'egy hét múlva');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 hete');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '2 hét múlva');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('hy-am');
- test('parse', function (assert) {
- var tests = 'հունվար հնվ_փետրվար փտր_մարտ մրտ_ապրիլ ապր_մայիս մյս_հունիս հնս_հուլիս հլս_օգոստոս օգս_սեպտեմբեր սպտ_հոկտեմբեր հկտ_նոյեմբեր նմբ_դեկտեմբեր դկտ'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('parse exceptional case', function (assert) {
- assert.equal(moment('11 մայիսի 1989', ['DD MMMM YYYY']).format('DD-MM-YYYY'), '11-05-1989');
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, HH:mm:ss', 'կիրակի, 14 փետրվարի 2010, 15:25:50'],
- ['ddd, h A', 'կրկ, 3 ցերեկվա'],
- ['M Mo MM MMMM MMM', '2 2 02 փետրվար փտր'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 կիրակի կրկ կրկ'],
- ['DDD DDDo DDDD', '45 45-րդ 045'],
- ['w wo ww', '7 7-րդ 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'ցերեկվա ցերեկվա'],
- ['[տարվա] DDDo [օրը]', 'տարվա 45-րդ օրը'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 փետրվարի 2010 թ.'],
- ['LLL', '14 փետրվարի 2010 թ., 15:25'],
- ['LLLL', 'կիրակի, 14 փետրվարի 2010 թ., 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 փտր 2010 թ.'],
- ['lll', '14 փտր 2010 թ., 15:25'],
- ['llll', 'կրկ, 14 փտր 2010 թ., 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format meridiem', function (assert) {
- assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'գիշերվա', 'night');
- assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'գիշերվա', 'night');
- assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'առավոտվա', 'morning');
- assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'առավոտվա', 'morning');
- assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'ցերեկվա', 'afternoon');
- assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'ցերեկվա', 'afternoon');
- assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'երեկոյան', 'evening');
- assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'երեկոյան', 'evening');
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ին', '1-ին');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-րդ', '2-րդ');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-րդ', '3-րդ');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-րդ', '4-րդ');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-րդ', '5-րդ');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-րդ', '6-րդ');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-րդ', '7-րդ');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-րդ', '8-րդ');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-րդ', '9-րդ');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-րդ', '10-րդ');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-րդ', '11-րդ');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-րդ', '12-րդ');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-րդ', '13-րդ');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-րդ', '14-րդ');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-րդ', '15-րդ');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-րդ', '16-րդ');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-րդ', '17-րդ');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-րդ', '18-րդ');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-րդ', '19-րդ');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-րդ', '20-րդ');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-րդ', '21-րդ');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-րդ', '22-րդ');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-րդ', '23-րդ');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-րդ', '24-րդ');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-րդ', '25-րդ');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-րդ', '26-րդ');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-րդ', '27-րդ');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-րդ', '28-րդ');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-րդ', '29-րդ');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-րդ', '30-րդ');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-րդ', '31-րդ');
- });
- test('format month', function (assert) {
- var expected = 'հունվար հնվ_փետրվար փտր_մարտ մրտ_ապրիլ ապր_մայիս մյս_հունիս հնս_հուլիս հլս_օգոստոս օգս_սեպտեմբեր սպտ_հոկտեմբեր հկտ_նոյեմբեր նմբ_դեկտեմբեր դկտ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format month case', function (assert) {
- var months = {
- 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
- 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]);
- assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]);
- }
- });
- test('format month short case', function (assert) {
- var monthsShort = {
- 'nominative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
- 'accusative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2011, i, 1]).format('D MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]);
- assert.equal(moment([2011, i, 1]).format('MMM'), monthsShort.nominative[i], '1 ' + monthsShort.nominative[i]);
- }
- });
- test('format month case with escaped symbols', function (assert) {
- var months = {
- 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
- 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2013, i, 1]).format('D[] MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMMM[</b>]'), '<i>1</i> <b>' + months.accusative[i] + '</b>', '1 <b>' + months.accusative[i] + '</b>');
- assert.equal(moment([2013, i, 1]).format('D[-ին օրը] MMMM'), '1-ին օրը ' + months.accusative[i], '1-ին օրը ' + months.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('D, MMMM'), '1, ' + months.nominative[i], '1, ' + months.nominative[i]);
- }
- });
- test('format month short case with escaped symbols', function (assert) {
- var monthsShort = {
- 'nominative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
- 'accusative': 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2013, i, 1]).format('D[] MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMM[</b>]'), '<i>1</i> <b>' + monthsShort.accusative[i] + '</b>', '1 <b>' + monthsShort.accusative[i] + '</b>');
- assert.equal(moment([2013, i, 1]).format('D[-ին օրը] MMM'), '1-ին օրը ' + monthsShort.accusative[i], '1-ին օրը ' + monthsShort.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('D, MMM'), '1, ' + monthsShort.nominative[i], '1, ' + monthsShort.nominative[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'կիրակի կրկ կրկ_երկուշաբթի երկ երկ_երեքշաբթի երք երք_չորեքշաբթի չրք չրք_հինգշաբթի հնգ հնգ_ուրբաթ ուրբ ուրբ_շաբաթ շբթ շբթ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'մի քանի վայրկյան', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'րոպե', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'րոպե', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 րոպե', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 րոպե', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ժամ', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ժամ', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ժամ', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ժամ', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ժամ', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'օր', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'օր', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 օր', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'օր', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 օր', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 օր', '11 days = 11 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 օր', '21 days = 21 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 օր', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ամիս', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ամիս', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ամիս', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ամիս', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ամիս', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ամիս', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ամիս', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ամիս', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'տարի', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 տարի', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'տարի', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 տարի', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'մի քանի վայրկյան հետո', 'prefix');
- assert.equal(moment(0).from(30000), 'մի քանի վայրկյան առաջ', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'մի քանի վայրկյան հետո', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 օր հետո', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'այսօր 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'այսօր 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'այսօր 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'վաղը 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'այսօր 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'երեկ 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- return 'dddd [օրը ժամը] LT';
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- return '[անցած] dddd [օրը ժամը] LT';
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ին', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ին', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-րդ', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-րդ', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-րդ', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('id');
- test('parse', function (assert) {
- var tests = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Minggu, Februari 14 2010, 3:25:50 sore'],
- ['ddd, hA', 'Min, 3sore'],
- ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 Minggu Min Mg'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '7 7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'sore sore'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15.25.50'],
- ['L', '14/02/2010'],
- ['LL', '14 Februari 2010'],
- ['LLL', '14 Februari 2010 pukul 15.25'],
- ['LLLL', 'Minggu, 14 Februari 2010 pukul 15.25'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 pukul 15.25'],
- ['llll', 'Min, 14 Feb 2010 pukul 15.25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_November Nov_Desember Des'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Minggu Min Mg_Senin Sen Sn_Selasa Sel Sl_Rabu Rab Rb_Kamis Kam Km_Jumat Jum Jm_Sabtu Sab Sb'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beberapa detik', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'semenit', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'semenit', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 menit', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 menit', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'sejam', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'sejam', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sehari', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sehari', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 hari', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sehari', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 hari', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 hari', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sebulan', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sebulan', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sebulan', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 bulan', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 bulan', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 bulan', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sebulan', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 bulan', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setahun', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 tahun', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setahun', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 tahun', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'dalam beberapa detik', 'prefix');
- assert.equal(moment(0).from(30000), 'beberapa detik yang lalu', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'beberapa detik yang lalu', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'dalam beberapa detik', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'dalam 5 hari', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hari ini pukul 02.00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hari ini pukul 02.25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hari ini pukul 03.00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Besok pukul 02.00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hari ini pukul 01.00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kemarin pukul 02.00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [lalu pukul] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [lalu pukul] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [lalu pukul] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('is');
- test('parse', function (assert) {
- var tests = 'janúar jan_febrúar feb_mars mar_apríl apr_maí maí_júní jún_júlí júl_ágúst ágú_september sep_október okt_nóvember nóv_desember des'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'sunnudagur, 14. febrúar 2010, 3:25:50 pm'],
- ['ddd, hA', 'sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 febrúar feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. sunnudagur sun Su'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14. febrúar 2010'],
- ['LLL', '14. febrúar 2010 kl. 15:25'],
- ['LLLL', 'sunnudagur, 14. febrúar 2010 kl. 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14. feb 2010'],
- ['lll', '14. feb 2010 kl. 15:25'],
- ['llll', 'sun, 14. feb 2010 kl. 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'janúar jan_febrúar feb_mars mar_apríl apr_maí maí_júní jún_júlí júl_ágúst ágú_september sep_október okt_nóvember nóv_desember des'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'sunnudagur sun Su_mánudagur mán Má_þriðjudagur þri Þr_miðvikudagur mið Mi_fimmtudagur fim Fi_föstudagur fös Fö_laugardagur lau La'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nokkrar sekúndur', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'mínúta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'mínúta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 mínútur', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 mínútur', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 21}), true), '21 mínúta', '21 minutes = 21 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'klukkustund', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'klukkustund', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 klukkustundir', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 klukkustundir', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 klukkustund', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dagur', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dagur', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dagur', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 dagar', '11 days = 11 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 dagur', '21 days = 21 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mánuður', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mánuður', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mánuður', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mánuðir', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mánuðir', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mánuðir', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mánuður', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mánuðir', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ár', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ár', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ár', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ár', '5 years = 5 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 21}), true), '21 ár', '21 years = 21 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'eftir nokkrar sekúndur', 'prefix');
- assert.equal(moment(0).from(30000), 'fyrir nokkrum sekúndum síðan', 'suffix');
- assert.equal(moment().subtract({m: 1}).fromNow(), 'fyrir mínútu síðan', 'a minute ago');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'fyrir nokkrum sekúndum síðan', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'eftir nokkrar sekúndur', 'in a few seconds');
- assert.equal(moment().add({m: 1}).fromNow(), 'eftir mínútu', 'in a minute');
- assert.equal(moment().add({d: 5}).fromNow(), 'eftir 5 daga', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'í dag kl. 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'í dag kl. 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'í dag kl. 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'á morgun kl. 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'í dag kl. 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'í gær kl. 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[síðasta] dddd [kl.] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[síðasta] dddd [kl.] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[síðasta] dddd [kl.] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('it');
- test('parse', function (assert) {
- var tests = 'gennaio gen_febbraio feb_marzo mar_aprile apr_maggio mag_giugno giu_luglio lug_agosto ago_settembre set_ottobre ott_novembre nov_dicembre dic'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Domenica, febbraio 14º 2010, 3:25:50 pm'],
- ['ddd, hA', 'Dom, 3PM'],
- ['M Mo MM MMMM MMM', '2 2º 02 febbraio feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14º 14'],
- ['d do dddd ddd dd', '0 0º Domenica Dom Do'],
- ['DDD DDDo DDDD', '45 45º 045'],
- ['w wo ww', '6 6º 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45º day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 febbraio 2010'],
- ['LLL', '14 febbraio 2010 15:25'],
- ['LLLL', 'Domenica, 14 febbraio 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 feb 2010'],
- ['lll', '14 feb 2010 15:25'],
- ['llll', 'Dom, 14 feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º');
- });
- test('format month', function (assert) {
- var expected = 'gennaio gen_febbraio feb_marzo mar_aprile apr_maggio mag_giugno giu_luglio lug_agosto ago_settembre set_ottobre ott_novembre nov_dicembre dic'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Domenica Dom Do_Lunedì Lun Lu_Martedì Mar Ma_Mercoledì Mer Me_Giovedì Gio Gi_Venerdì Ven Ve_Sabato Sab Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'alcuni secondi', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minuto', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minuto', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuti', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuti', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'un\'ora', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'un\'ora', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ore', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ore', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ore', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'un giorno', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'un giorno', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 giorni', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'un giorno', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 giorni', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 giorni', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'un mese', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'un mese', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'un mese', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesi', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesi', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesi', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'un mese', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesi', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un anno', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anni', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un anno', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anni', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'in alcuni secondi', 'prefix');
- assert.equal(moment(0).from(30000), 'alcuni secondi fa', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'in alcuni secondi', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'tra 5 giorni', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Oggi alle 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Oggi alle 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Oggi alle 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Domani alle 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Oggi alle 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ieri alle 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [alle] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [alle] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [alle] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m, weekday, datestring;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- // Different date string
- weekday = parseInt(m.format('d'), 10);
- datestring = (weekday === 0) ? '[la scorsa] dddd [alle] LT' : '[lo scorso] dddd [alle] LT';
- assert.equal(m.calendar(), m.format(datestring), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(datestring), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(datestring), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ja');
- test('parse', function (assert) {
- var tests = '1月 1月_2月 2月_3月 3月_4月 4月_5月 5月_6月 6月_7月 7月_8月 8月_9月 9月_10月 10月_11月 11月_12月 12月'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, a h:mm:ss', '日曜日, 2月 14 2010, 午後 3:25:50'],
- ['ddd, Ah', '日, 午後3'],
- ['M Mo MM MMMM MMM', '2 2 02 2月 2月'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 日曜日 日 日'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', '午後 午後'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '午後3時25分50秒'],
- ['L', '2010/02/14'],
- ['LL', '2010年2月14日'],
- ['LLL', '2010年2月14日午後3時25分'],
- ['LLLL', '2010年2月14日午後3時25分 日曜日'],
- ['l', '2010/2/14'],
- ['ll', '2010年2月14日'],
- ['lll', '2010年2月14日午後3時25分'],
- ['llll', '2010年2月14日午後3時25分 日']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = '1月 1月_2月 2月_3月 3月_4月 4月_5月 5月_6月 6月_7月 7月_8月 8月_9月 9月_10月 10月_11月 11月_12月 12月'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = '日曜日 日 日_月曜日 月 月_火曜日 火 火_水曜日 水 水_木曜日 木 木_金曜日 金 金_土曜日 土 土'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '数秒', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1分', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1分', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2分', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44分', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1時間', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1時間', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2時間', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5時間', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21時間', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1日', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1日', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2日', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1日', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5日', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25日', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1ヶ月', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1ヶ月', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1ヶ月', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2ヶ月', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2ヶ月', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3ヶ月', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1ヶ月', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5ヶ月', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1年', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2年', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1年', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5年', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), '数秒後', 'prefix');
- assert.equal(moment(0).from(30000), '数秒前', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), '数秒前', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), '数秒後', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5日後', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), '今日 午前2時0分', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), '今日 午前2時25分', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), '今日 午前3時0分', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), '明日 午前2時0分', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), '今日 午前1時0分', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), '昨日 午前2時0分', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[来週]dddd LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[来週]dddd LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[来週]dddd LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[前週]dddd LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[前週]dddd LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[前週]dddd LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('jv');
- test('parse', function (assert) {
- var tests = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_Nopember Nop_Desember Des'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Minggu, Februari 14 2010, 3:25:50 sonten'],
- ['ddd, hA', 'Min, 3sonten'],
- ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 Minggu Min Mg'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '7 7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'sonten sonten'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15.25.50'],
- ['L', '14/02/2010'],
- ['LL', '14 Februari 2010'],
- ['LLL', '14 Februari 2010 pukul 15.25'],
- ['LLLL', 'Minggu, 14 Februari 2010 pukul 15.25'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 pukul 15.25'],
- ['llll', 'Min, 14 Feb 2010 pukul 15.25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = 'Januari Jan_Februari Feb_Maret Mar_April Apr_Mei Mei_Juni Jun_Juli Jul_Agustus Ags_September Sep_Oktober Okt_Nopember Nop_Desember Des'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Minggu Min Mg_Senen Sen Sn_Seloso Sel Sl_Rebu Reb Rb_Kemis Kem Km_Jemuwah Jem Jm_Septu Sep Sp'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'sawetawis detik', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'setunggal menit', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'setunggal menit', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 menit', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 menit', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'setunggal jam', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'setunggal jam', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sedinten', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sedinten', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dinten', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sedinten', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dinten', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dinten', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sewulan', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sewulan', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sewulan', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 wulan', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 wulan', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 wulan', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sewulan', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 wulan', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setaun', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 taun', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setaun', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 taun', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'wonten ing sawetawis detik', 'prefix');
- assert.equal(moment(0).from(30000), 'sawetawis detik ingkang kepengker', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'sawetawis detik ingkang kepengker', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'wonten ing sawetawis detik', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'wonten ing 5 dinten', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Dinten puniko pukul 02.00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Dinten puniko pukul 02.25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Dinten puniko pukul 03.00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Mbenjang pukul 02.00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Dinten puniko pukul 01.00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kala wingi pukul 02.00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [kepengker pukul] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [kepengker pukul] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [kepengker pukul] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- // Monday is the first day of the week.
- // The week that contains Jan 1st is the first week of the year.
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ka');
- test('parse', function (assert) {
- var i,
- tests = 'იანვარი იან_თებერვალი თებ_მარტი მარ_აპრილი აპრ_მაისი მაი_ივნისი ივნ_ივლისი ივლ_აგვისტო აგვ_სექტემბერი სექ_ოქტომბერი ოქტ_ნოემბერი ნოე_დეკემბერი დეკ'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' უნდა იყოს თვე ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'კვირა, თებერვალი მე-14 2010, 3:25:50 pm'],
- ['ddd, hA', 'კვი, 3PM'],
- ['M Mo MM MMMM MMM', '2 მე-2 02 თებერვალი თებ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 მე-14 14'],
- ['d do dddd ddd dd', '0 0 კვირა კვი კვ'],
- ['DDD DDDo DDDD', '45 45-ე 045'],
- ['w wo ww', '7 მე-7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['წლის DDDo დღე', 'წლის 45-ე დღე'],
- ['LTS', '3:25:50 PM'],
- ['L', '14/02/2010'],
- ['LL', '14 თებერვალს 2010'],
- ['LLL', '14 თებერვალს 2010 3:25 PM'],
- ['LLLL', 'კვირა, 14 თებერვალს 2010 3:25 PM'],
- ['l', '14/2/2010'],
- ['ll', '14 თებ 2010'],
- ['lll', '14 თებ 2010 3:25 PM'],
- ['llll', 'კვი, 14 თებ 2010 3:25 PM']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ლი', '1-ლი');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), 'მე-2', 'მე-2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), 'მე-3', 'მე-3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), 'მე-4', 'მე-4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), 'მე-5', 'მე-5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), 'მე-6', 'მე-6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), 'მე-7', 'მე-7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), 'მე-8', 'მე-8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), 'მე-9', 'მე-9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), 'მე-10', 'მე-10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), 'მე-11', 'მე-11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), 'მე-12', 'მე-12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), 'მე-13', 'მე-13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), 'მე-14', 'მე-14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), 'მე-15', 'მე-15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), 'მე-16', 'მე-16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), 'მე-17', 'მე-17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), 'მე-18', 'მე-18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), 'მე-19', 'მე-19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), 'მე-20', 'მე-20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ე', '21-ე');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ე', '22-ე');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ე', '23-ე');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ე', '24-ე');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ე', '25-ე');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ე', '26-ე');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ე', '27-ე');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ე', '28-ე');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ე', '29-ე');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ე', '30-ე');
- assert.equal(moment('2011 40', 'YYYY DDD').format('DDDo'), 'მე-40', 'მე-40');
- assert.equal(moment('2011 50', 'YYYY DDD').format('DDDo'), '50-ე', '50-ე');
- assert.equal(moment('2011 60', 'YYYY DDD').format('DDDo'), 'მე-60', 'მე-60');
- assert.equal(moment('2011 100', 'YYYY DDD').format('DDDo'), 'მე-100', 'მე-100');
- assert.equal(moment('2011 101', 'YYYY DDD').format('DDDo'), '101-ე', '101-ე');
- });
- test('format month', function (assert) {
- var i,
- expected = 'იანვარი იან_თებერვალი თებ_მარტი მარ_აპრილი აპრ_მაისი მაი_ივნისი ივნ_ივლისი ივლ_აგვისტო აგვ_სექტემბერი სექ_ოქტომბერი ოქტ_ნოემბერი ნოე_დეკემბერი დეკ'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'კვირა კვი კვ_ორშაბათი ორშ ორ_სამშაბათი სამ სა_ოთხშაბათი ოთხ ოთ_ხუთშაბათი ხუთ ხუ_პარასკევი პარ პა_შაბათი შაბ შა'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'რამდენიმე წამი', '44 წამი = რამდენიმე წამი');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'წუთი', '45 წამი = წუთი');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'წუთი', '89 წამი = წუთი');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 წუთი', '90 წამი = 2 წუთი');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 წუთი', '44 წამი = 44 წუთი');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'საათი', '45 წამი = საათი');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'საათი', '89 წამი = საათი');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 საათი', '90 წამი = 2 საათი');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 საათი', '5 საათი = 5 საათი');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 საათი', '21 საათი = 21 საათი');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'დღე', '22 საათი = დღე');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'დღე', '35 საათი = დღე');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 დღე', '36 საათი = 2 დღე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'დღე', '1 დღე = დღე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 დღე', '5 დღე = 5 დღე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 დღე', '25 დღე = 25 დღე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'თვე', '26 დღე = თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'თვე', '30 დღე = თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'თვე', '45 დღე = თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 თვე', '46 დღე = 2 თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 თვე', '75 დღე = 2 თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 თვე', '76 დღე = 3 თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'თვე', '1 თვე = თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 თვე', '5 თვე = 5 თვე');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'წელი', '345 დღე = წელი');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 წელი', '548 დღე = 2 წელი');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'წელი', '1 წელი = წელი');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 წელი', '5 წელი = 5 წელი');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'რამდენიმე წამში', 'ში სუფიქსი');
- assert.equal(moment(0).from(30000), 'რამდენიმე წამის წინ', 'წინ სუფიქსი');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'რამდენიმე წამის წინ', 'უნდა აჩვენოს როგორც წარსული');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'რამდენიმე წამში', 'რამდენიმე წამში');
- assert.equal(moment().add({d: 5}).fromNow(), '5 დღეში', '5 დღეში');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'დღეს 2:00 AM-ზე', 'დღეს ამავე დროს');
- assert.equal(moment(a).add({m: 25}).calendar(), 'დღეს 2:25 AM-ზე', 'ახლანდელ დროს დამატებული 25 წუთი');
- assert.equal(moment(a).add({h: 1}).calendar(), 'დღეს 3:00 AM-ზე', 'ახლანდელ დროს დამატებული 1 საათი');
- assert.equal(moment(a).add({d: 1}).calendar(), 'ხვალ 2:00 AM-ზე', 'ხვალ ამავე დროს');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'დღეს 1:00 AM-ზე', 'ახლანდელ დროს გამოკლებული 1 საათი');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'გუშინ 2:00 AM-ზე', 'გუშინ ამავე დროს');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[შემდეგ] dddd LT[-ზე]'), 'დღეს + ' + i + ' დღე ახლანდელ დროს');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[შემდეგ] dddd LT[-ზე]'), 'დღეს + ' + i + ' დღე დღის დასაწყისში');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[შემდეგ] dddd LT[-ზე]'), 'დღეს + ' + i + ' დღე დღის დასასრულს');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[წინა] dddd LT[-ზე]'), 'დღეს - ' + i + ' დღე ახლანდელ დროს');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[წინა] dddd LT[-ზე]'), 'დღეს - ' + i + ' დღე დღის დასაწყისში');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[წინა] dddd LT[-ზე]'), 'დღეს - ' + i + ' დღე დღის დასასრულს');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 კვირის წინ');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '1 კვირაში');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 კვირის წინ');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '2 კვირაში');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'დეკ 26 2011 უნდა იყოს კვირა 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'იან 1 2012 უნდა იყოს კვირა 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'იან 2 2012 უნდა იყოს კვირა 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'იან 8 2012 უნდა იყოს კვირა 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'იან 9 2012 უნდა იყოს კვირა 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'იან 1 2007 უნდა იყოს კვირა 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'იან 7 2007 უნდა იყოს კვირა 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'იან 8 2007 უნდა იყოს კვირა 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'იან 14 2007 უნდა იყოს კვირა 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'იან 15 2007 უნდა იყოს კვირა 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'დეკ 31 2007 უნდა იყოს კვირა 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'იან 1 2008 უნდა იყოს კვირა 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'იან 6 2008 უნდა იყოს კვირა 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'იან 7 2008 უნდა იყოს კვირა 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'იან 13 2008 უნდა იყოს კვირა 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'იან 14 2008 უნდა იყოს კვირა 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'დეკ 30 2002 უნდა იყოს კვირა 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'იან 1 2003 უნდა იყოს კვირა 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'იან 5 2003 უნდა იყოს კვირა 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'იან 6 2003 უნდა იყოს კვირა 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'იან 12 2003 უნდა იყოს კვირა 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'იან 13 2003 უნდა იყოს კვირა 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'დეკ 29 2008 უნდა იყოს კვირა 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'იან 1 2009 უნდა იყოს კვირა 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'იან 4 2009 უნდა იყოს კვირა 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'იან 5 2009 უნდა იყოს კვირა 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'იან 11 2009 უნდა იყოს კვირა 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'იან 12 2009 უნდა იყოს კვირა 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'დეკ 28 2009 უნდა იყოს კვირა 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'იან 1 2010 უნდა იყოს კვირა 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'იან 3 2010 უნდა იყოს კვირა 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'იან 4 2010 უნდა იყოს კვირა 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'იან 10 2010 უნდა იყოს კვირა 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'იან 11 2010 უნდა იყოს კვირა 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'დეკ 27 2010 უნდა იყოს კვირა 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'იან 1 2011 უნდა იყოს კვირა 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'იან 2 2011 უნდა იყოს კვირა 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'იან 3 2011 უნდა იყოს კვირა 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'იან 9 2011 უნდა იყოს კვირა 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'იან 10 2011 უნდა იყოს კვირა 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ლი', 'დეკ 26 2011 უნდა იყოს კვირა 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ლი', 'იან 1 2012 უნდა იყოს კვირა 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 მე-2', 'იან 2 2012 უნდა იყოს კვირა 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 მე-2', 'იან 8 2012 უნდა იყოს კვირა 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 მე-3', 'იან 9 2012 უნდა იყოს კვირა 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('kk');
- test('parse', function (assert) {
- var tests = 'Қаңтар Қаң_Ақпан Ақп_Наурыз Нау_Сәуір Сәу_Мамыр Мам_Маусым Мау_Шілде Шіл_Тамыз Там_Қыркүйек Қыр_Қазан Қаз_Қараша Қар_Желтоқсан Жел'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, HH:mm:ss', 'Жексенбі, 14-ші Ақпан 2010, 15:25:50'],
- ['ddd, hA', 'Жек, 3PM'],
- ['M Mo MM MMMM MMM', '2 2-ші 02 Ақпан Ақп'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-ші 14'],
- ['d do dddd ddd dd', '0 0-ші Жексенбі Жек Жк'],
- ['DDD DDDo DDDD', '45 45-ші 045'],
- ['w wo ww', '7 7-ші 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[жылдың] DDDo [күні]', 'жылдың 45-ші күні'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 Ақпан 2010'],
- ['LLL', '14 Ақпан 2010 15:25'],
- ['LLLL', 'Жексенбі, 14 Ақпан 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 Ақп 2010'],
- ['lll', '14 Ақп 2010 15:25'],
- ['llll', 'Жек, 14 Ақп 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ші', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-ші', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-ші', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ші', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ші', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-шы', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ші', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ші', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-шы', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-шы', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ші', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ші', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ші', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ші', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ші', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-шы', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ші', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ші', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-шы', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-шы', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ші', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ші', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ші', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ші', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ші', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-шы', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ші', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ші', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-шы', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-шы', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ші', '31st');
- });
- test('format month', function (assert) {
- var expected = 'Қаңтар Қаң_Ақпан Ақп_Наурыз Нау_Сәуір Сәу_Мамыр Мам_Маусым Мау_Шілде Шіл_Тамыз Там_Қыркүйек Қыр_Қазан Қаз_Қараша Қар_Желтоқсан Жел'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Жексенбі Жек Жк_Дүйсенбі Дүй Дй_Сейсенбі Сей Сй_Сәрсенбі Сәр Ср_Бейсенбі Бей Бй_Жұма Жұм Жм_Сенбі Сен Сн'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'бірнеше секунд', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'бір минут', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'бір минут', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минут', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минут', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'бір сағат', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'бір сағат', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 сағат', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 сағат', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 сағат', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'бір күн', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'бір күн', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 күн', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'бір күн', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 күн', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 күн', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'бір ай', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'бір ай', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'бір ай', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ай', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ай', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ай', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'бір ай', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ай', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'бір жыл', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 жыл', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'бір жыл', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 жыл', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'бірнеше секунд ішінде', 'prefix');
- assert.equal(moment(0).from(30000), 'бірнеше секунд бұрын', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'бірнеше секунд бұрын', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'бірнеше секунд ішінде', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 күн ішінде', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Бүгін сағат 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Бүгін сағат 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Бүгін сағат 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Ертең сағат 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Бүгін сағат 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Кеше сағат 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [сағат] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [сағат] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [сағат] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Өткен аптаның] dddd [сағат] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Өткен аптаның] dddd [сағат] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Өткен аптаның] dddd [сағат] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 25]).week(), 52, 'Dec 25 2011 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ші', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-ші', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-ші', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-ші', 'Jan 9 2012 should be week 3');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3-ші', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('km');
- test('parse', function (assert) {
- var tests = 'មករា មករា_កុម្ភៈ កុម្ភៈ_មិនា មិនា_មេសា មេសា_ឧសភា ឧសភា_មិថុនា មិថុនា_កក្កដា កក្កដា_សីហា សីហា_កញ្ញា កញ្ញា_តុលា តុលា_វិច្ឆិកា វិច្ឆិកា_ធ្នូ ធ្នូ'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'អាទិត្យ, កុម្ភៈ 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'អាទិត្យ, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 កុម្ភៈ កុម្ភៈ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 អាទិត្យ អាទិត្យ អាទិត្យ'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '6 6 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 កុម្ភៈ 2010'],
- ['LLL', '14 កុម្ភៈ 2010 15:25'],
- ['LLLL', 'អាទិត្យ, 14 កុម្ភៈ 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 កុម្ភៈ 2010'],
- ['lll', '14 កុម្ភៈ 2010 15:25'],
- ['llll', 'អាទិត្យ, 14 កុម្ភៈ 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21st');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22nd');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23rd');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31st');
- });
- test('format month', function (assert) {
- var expected = 'មករា មករា_កុម្ភៈ កុម្ភៈ_មិនា មិនា_មេសា មេសា_ឧសភា ឧសភា_មិថុនា មិថុនា_កក្កដា កក្កដា_សីហា សីហា_កញ្ញា កញ្ញា_តុលា តុលា_វិច្ឆិកា វិច្ឆិកា_ធ្នូ ធ្នូ'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'អាទិត្យ អាទិត្យ អាទិត្យ_ច័ន្ទ ច័ន្ទ ច័ន្ទ_អង្គារ អង្គារ អង្គារ_ពុធ ពុធ ពុធ_ព្រហស្បតិ៍ ព្រហស្បតិ៍ ព្រហស្បតិ៍_សុក្រ សុក្រ សុក្រ_សៅរ៍ សៅរ៍ សៅរ៍'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ប៉ុន្មានវិនាទី', '44 seconds = ប៉ុន្មានវិនាទី');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'មួយនាទី', '45 seconds = មួយនាទី');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'មួយនាទី', '89 seconds = មួយនាទី');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 នាទី', '90 seconds = 2 នាទី');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 នាទី', '44 minutes = 44 នាទី');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'មួយម៉ោង', '45 minutes = មួយម៉ោង');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'មួយម៉ោង', '89 minutes = មួយម៉ោង');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ម៉ោង', '90 minutes = 2 ម៉ោង');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ម៉ោង', '5 hours = 5 ម៉ោង');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ម៉ោង', '21 hours = 21 ម៉ោង');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'មួយថ្ងៃ', '22 hours = មួយថ្ងៃ');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'មួយថ្ងៃ', '35 hours = មួយថ្ងៃ');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ថ្ងៃ', '36 hours = 2 ថ្ងៃ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'មួយថ្ងៃ', '1 day = មួយថ្ងៃ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ថ្ងៃ', '5 days = 5 ថ្ងៃ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ថ្ងៃ', '25 days = 25 ថ្ងៃ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'មួយខែ', '26 days = មួយខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'មួយខែ', '30 days = មួយខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'មួយខែ', '43 days = មួយខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ខែ', '46 days = 2 ខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ខែ', '75 days = 2 ខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ខែ', '76 days = 3 ខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'មួយខែ', '1 month = មួយខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ខែ', '5 months = 5 ខែ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'មួយឆ្នាំ', '345 days = មួយឆ្នាំ');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ឆ្នាំ', '548 days = 2 ឆ្នាំ');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'មួយឆ្នាំ', '1 year = មួយឆ្នាំ');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ឆ្នាំ', '5 years = 5 ឆ្នាំ');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'ប៉ុន្មានវិនាទីទៀត', 'prefix');
- assert.equal(moment(0).from(30000), 'ប៉ុន្មានវិនាទីមុន', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'ប៉ុន្មានវិនាទីមុន', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({
- s: 30
- }).fromNow(), 'ប៉ុន្មានវិនាទីទៀត', 'in a few seconds');
- assert.equal(moment().add({
- d: 5
- }).fromNow(), '5 ថ្ងៃទៀត', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'ថ្ងៃនេះ ម៉ោង 02:00', 'today at the same time');
- assert.equal(moment(a).add({
- m: 25
- }).calendar(), 'ថ្ងៃនេះ ម៉ោង 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({
- h: 1
- }).calendar(), 'ថ្ងៃនេះ ម៉ោង 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({
- d: 1
- }).calendar(), 'ស្អែក ម៉ោង 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({
- h: 1
- }).calendar(), 'ថ្ងៃនេះ ម៉ោង 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({
- d: 1
- }).calendar(), 'ម្សិលមិញ ម៉ោង 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({
- d: i
- });
- assert.equal(m.calendar(), m.format('dddd [ម៉ោង] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [ម៉ោង] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [ម៉ោង] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({
- d: i
- });
- assert.equal(m.calendar(), m.format('dddd [សប្តាហ៍មុន] [ម៉ោង] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [សប្តាហ៍មុន] [ម៉ោង] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [សប្តាហ៍មុន] [ម៉ោង] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({
- w: 1
- }),
- weeksFromNow = moment().add({
- w: 1
- });
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({
- w: 2
- });
- weeksFromNow = moment().add({
- w: 2
- });
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ko');
- test('parse', function (assert) {
- var tests = '1월 1월_2월 2월_3월 3월_4월 4월_5월 5월_6월 6월_7월 7월_8월 8월_9월 9월_10월 10월_11월 11월_12월 12월'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('parse meridiem', function (assert) {
- var elements = [{
- expression : '1981년 9월 8일 오후 2시 30분',
- inputFormat : 'YYYY[년] M[월] D[일] A h[시] m[분]',
- outputFormat : 'A',
- expected : '오후'
- }, {
- expression : '1981년 9월 8일 오전 2시 30분',
- inputFormat : 'YYYY[년] M[월] D[일] A h[시] m[분]',
- outputFormat : 'A h시',
- expected : '오전 2시'
- }, {
- expression : '14시 30분',
- inputFormat : 'H[시] m[분]',
- outputFormat : 'A',
- expected : '오후'
- }, {
- expression : '오후 4시',
- inputFormat : 'A h[시]',
- outputFormat : 'H',
- expected : '16'
- }], i, l, it, actual;
- for (i = 0, l = elements.length; i < l; ++i) {
- it = elements[i];
- actual = moment(it.expression, it.inputFormat).format(it.outputFormat);
- assert.equal(
- actual,
- it.expected,
- '\'' + it.outputFormat + '\' of \'' + it.expression + '\' must be \'' + it.expected + '\' but was \'' + actual + '\'.'
- );
- }
- });
- test('format', function (assert) {
- var a = [
- ['YYYY년 MMMM Do dddd a h:mm:ss', '2010년 2월 14일 일요일 오후 3:25:50'],
- ['ddd A h', '일 오후 3'],
- ['M Mo MM MMMM MMM', '2 2일 02 2월 2월'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14일 14'],
- ['d do dddd ddd dd', '0 0일 일요일 일 일'],
- ['DDD DDDo DDDD', '45 45일 045'],
- ['w wo ww', '8 8일 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', '오후 오후'],
- ['일년 중 DDDo째 되는 날', '일년 중 45일째 되는 날'],
- ['LTS', '오후 3시 25분 50초'],
- ['L', '2010.02.14'],
- ['LL', '2010년 2월 14일'],
- ['LLL', '2010년 2월 14일 오후 3시 25분'],
- ['LLLL', '2010년 2월 14일 일요일 오후 3시 25분'],
- ['l', '2010.2.14'],
- ['ll', '2010년 2월 14일'],
- ['lll', '2010년 2월 14일 오후 3시 25분'],
- ['llll', '2010년 2월 14일 일 오후 3시 25분']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1일', '1일');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2일', '2일');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3일', '3일');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4일', '4일');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5일', '5일');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6일', '6일');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7일', '7일');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8일', '8일');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9일', '9일');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10일', '10일');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11일', '11일');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12일', '12일');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13일', '13일');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14일', '14일');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15일', '15일');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16일', '16일');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17일', '17일');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18일', '18일');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19일', '19일');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20일', '20일');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21일', '21일');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22일', '22일');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23일', '23일');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24일', '24일');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25일', '25일');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26일', '26일');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27일', '27일');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28일', '28일');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29일', '29일');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30일', '30일');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31일', '31일');
- });
- test('format month', function (assert) {
- var expected = '1월 1월_2월 2월_3월 3월_4월 4월_5월 5월_6월 6월_7월 7월_8월 8월_9월 9월_10월 10월_11월 11월_12월 12월'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = '일요일 일 일_월요일 월 월_화요일 화 화_수요일 수 수_목요일 목 목_금요일 금 금_토요일 토 토'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '몇초', '44초 = 몇초');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '일분', '45초 = 일분');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '일분', '89초 = 일분');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2분', '90초 = 2분');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44분', '44분 = 44분');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '한시간', '45분 = 한시간');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '한시간', '89분 = 한시간');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2시간', '90분 = 2시간');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5시간', '5시간 = 5시간');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21시간', '21시간 = 21시간');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '하루', '22시간 = 하루');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '하루', '35시간 = 하루');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2일', '36시간 = 2일');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '하루', '하루 = 하루');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5일', '5일 = 5일');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25일', '25일 = 25일');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '한달', '26일 = 한달');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '한달', '30일 = 한달');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '한달', '45일 = 한달');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2달', '46일 = 2달');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2달', '75일 = 2달');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3달', '76일 = 3달');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '한달', '1달 = 한달');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5달', '5달 = 5달');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '일년', '345일 = 일년');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2년', '548일 = 2년');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '일년', '일년 = 일년');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5년', '5년 = 5년');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), '몇초 후', 'prefix');
- assert.equal(moment(0).from(30000), '몇초 전', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), '몇초 전', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), '몇초 후', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5일 후', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), '오늘 오전 2시 0분', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), '오늘 오전 2시 25분', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), '오늘 오전 3시 0분', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), '내일 오전 2시 0분', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), '오늘 오전 1시 0분', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), '어제 오전 2시 0분', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('지난주 dddd LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('지난주 dddd LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('지난주 dddd LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1일', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1일', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2일', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2일', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3일', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('lb');
- test('parse', function (assert) {
- var tests = 'Januar Jan._Februar Febr._Mäerz Mrz._Abrëll Abr._Mee Mee_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, HH:mm:ss', 'Sonndeg, 14. Februar 2010, 15:25:50'],
- ['ddd, HH:mm', 'So., 15:25'],
- ['M Mo MM MMMM MMM', '2 2. 02 Februar Febr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. Sonndeg So. So'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50 Auer'],
- ['L', '14.02.2010'],
- ['LL', '14. Februar 2010'],
- ['LLL', '14. Februar 2010 15:25 Auer'],
- ['LLLL', 'Sonndeg, 14. Februar 2010 15:25 Auer'],
- ['l', '14.2.2010'],
- ['ll', '14. Febr. 2010'],
- ['lll', '14. Febr. 2010 15:25 Auer'],
- ['llll', 'So., 14. Febr. 2010 15:25 Auer']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = 'Januar Jan._Februar Febr._Mäerz Mrz._Abrëll Abr._Mee Mee_Juni Jun._Juli Jul._August Aug._September Sept._Oktober Okt._November Nov._Dezember Dez.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Sonndeg So. So_Méindeg Mé. Mé_Dënschdeg Dë. Dë_Mëttwoch Më. Më_Donneschdeg Do. Do_Freideg Fr. Fr_Samschdeg Sa. Sa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'e puer Sekonnen', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eng Minutt', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eng Minutt', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 Minutten', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 Minutten', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'eng Stonn', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'eng Stonn', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 Stonnen', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 Stonnen', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 Stonnen', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'een Dag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'een Dag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 Deeg', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'een Dag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 Deeg', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 Deeg', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ee Mount', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ee Mount', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ee Mount', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 Méint', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 Méint', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 Méint', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ee Mount', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 Méint', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ee Joer', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 Joer', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ee Joer', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 Joer', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'an e puer Sekonnen', 'prefix');
- assert.equal(moment(0).from(30000), 'virun e puer Sekonnen', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'an e puer Sekonnen', 'in a few seconds');
- assert.equal(moment().add({d: 1}).fromNow(), 'an engem Dag', 'in one day');
- assert.equal(moment().add({d: 2}).fromNow(), 'an 2 Deeg', 'in 2 days');
- assert.equal(moment().add({d: 3}).fromNow(), 'an 3 Deeg', 'in 3 days');
- assert.equal(moment().add({d: 4}).fromNow(), 'a 4 Deeg', 'in 4 days');
- assert.equal(moment().add({d: 5}).fromNow(), 'a 5 Deeg', 'in 5 days');
- assert.equal(moment().add({d: 6}).fromNow(), 'a 6 Deeg', 'in 6 days');
- assert.equal(moment().add({d: 7}).fromNow(), 'a 7 Deeg', 'in 7 days');
- assert.equal(moment().add({d: 8}).fromNow(), 'an 8 Deeg', 'in 8 days');
- assert.equal(moment().add({d: 9}).fromNow(), 'an 9 Deeg', 'in 9 days');
- assert.equal(moment().add({d: 10}).fromNow(), 'an 10 Deeg', 'in 10 days');
- assert.equal(moment().add({y: 100}).fromNow(), 'an 100 Joer', 'in 100 years');
- assert.equal(moment().add({y: 400}).fromNow(), 'a 400 Joer', 'in 400 years');
- });
- test('calendar last week', function (assert) {
- var i, m, weekday, datestring;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday)
- weekday = parseInt(m.format('d'), 10);
- datestring = (weekday === 2 || weekday === 4 ? '[Leschten] dddd [um] LT' : '[Leschte] dddd [um] LT');
- assert.equal(m.calendar(), m.format(datestring), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(datestring), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(datestring), 'Today + ' + i + ' days end of day');
- }
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('lo');
- test('parse', function (assert) {
- var tests = 'ມັງກອນ ມັງກອນ_ກຸມພາ ກຸມພາ_ມີນາ ມີນາ_ເມສາ ເມສາ_ພຶດສະພາ ພຶດສະພາ_ມິຖຸນາ ມິຖຸນາ_ກໍລະກົດ ກໍລະກົດ_ສິງຫາ ສິງຫາ_ກັນຍາ ກັນຍາ_ຕຸລາ ຕຸລາ_ພະຈິກ ພະຈິກ_ທັນວາ ທັນວາ'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'ອາທິດ, ກຸມພາ ທີ່14 2010, 3:25:50 ຕອນແລງ'],
- ['ddd, hA', 'ທິດ, 3ຕອນແລງ'],
- ['M Mo MM MMMM MMM', '2 ທີ່2 02 ກຸມພາ ກຸມພາ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 ທີ່14 14'],
- ['d do dddd ddd dd', '0 ທີ່0 ອາທິດ ທິດ ທ'],
- ['DDD DDDo DDDD', '45 ທີ່45 045'],
- ['w wo ww', '8 ທີ່8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'ຕອນແລງ ຕອນແລງ'],
- ['[ວັນ]DDDo [ຂອງປີ]', 'ວັນທີ່45 ຂອງປີ'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 ກຸມພາ 2010'],
- ['LLL', '14 ກຸມພາ 2010 15:25'],
- ['LLLL', 'ວັນອາທິດ 14 ກຸມພາ 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 ກຸມພາ 2010'],
- ['lll', '14 ກຸມພາ 2010 15:25'],
- ['llll', 'ວັນທິດ 14 ກຸມພາ 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), 'ທີ່1', 'ທີ່1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), 'ທີ່2', 'ທີ່2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), 'ທີ່3', 'ທີ່3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), 'ທີ່4', 'ທີ່4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), 'ທີ່5', 'ທີ່5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), 'ທີ່6', 'ທີ່6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), 'ທີ່7', 'ທີ່7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), 'ທີ່8', 'ທີ່8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), 'ທີ່9', 'ທີ່9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), 'ທີ່10', 'ທີ່10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), 'ທີ່11', 'ທີ່11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), 'ທີ່12', 'ທີ່12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), 'ທີ່13', 'ທີ່13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), 'ທີ່14', 'ທີ່14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), 'ທີ່15', 'ທີ່15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), 'ທີ່16', 'ທີ່16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), 'ທີ່17', 'ທີ່17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), 'ທີ່18', 'ທີ່18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), 'ທີ່19', 'ທີ່19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), 'ທີ່20', 'ທີ່20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), 'ທີ່21', 'ທີ່21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), 'ທີ່22', 'ທີ່22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), 'ທີ່23', 'ທີ່23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), 'ທີ່24', 'ທີ່24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), 'ທີ່25', 'ທີ່25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), 'ທີ່26', 'ທີ່26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), 'ທີ່27', 'ທີ່27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), 'ທີ່28', 'ທີ່28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), 'ທີ່29', 'ທີ່29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), 'ທີ່30', 'ທີ່30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), 'ທີ່31', 'ທີ່31');
- });
- test('format month', function (assert) {
- var expected = 'ມັງກອນ ມັງກອນ_ກຸມພາ ກຸມພາ_ມີນາ ມີນາ_ເມສາ ເມສາ_ພຶດສະພາ ພຶດສະພາ_ມິຖຸນາ ມິຖຸນາ_ກໍລະກົດ ກໍລະກົດ_ສິງຫາ ສິງຫາ_ກັນຍາ ກັນຍາ_ຕຸລາ ຕຸລາ_ພະຈິກ ພະຈິກ_ທັນວາ ທັນວາ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'ອາທິດ ທິດ ທ_ຈັນ ຈັນ ຈ_ອັງຄານ ອັງຄານ ອຄ_ພຸດ ພຸດ ພ_ພະຫັດ ພະຫັດ ພຫ_ສຸກ ສຸກ ສກ_ເສົາ ເສົາ ສ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ບໍ່ເທົ່າໃດວິນາທີ', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 ນາທີ', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 ນາທີ', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 ນາທີ', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 ນາທີ', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 ຊົ່ວໂມງ', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 ຊົ່ວໂມງ', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ຊົ່ວໂມງ', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ຊົ່ວໂມງ', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ຊົ່ວໂມງ', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 ມື້', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 ມື້', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ມື້', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 ມື້', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ມື້', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ມື້', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 ເດືອນ', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 ເດືອນ', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 ເດືອນ', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ເດືອນ', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ເດືອນ', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ເດືອນ', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 ເດືອນ', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ເດືອນ', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 ປີ', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ປີ', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 ປີ', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ປີ', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'ອີກ ບໍ່ເທົ່າໃດວິນາທີ', 'prefix');
- assert.equal(moment(0).from(30000), 'ບໍ່ເທົ່າໃດວິນາທີຜ່ານມາ', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'ບໍ່ເທົ່າໃດວິນາທີຜ່ານມາ', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'ອີກ ບໍ່ເທົ່າໃດວິນາທີ', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'ອີກ 5 ມື້', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'ມື້ນີ້ເວລາ 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'ມື້ນີ້ເວລາ 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'ມື້ນີ້ເວລາ 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'ມື້ອື່ນເວລາ 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'ມື້ນີ້ເວລາ 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ມື້ວານນີ້ເວລາ 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[ວັນ]dddd[ໜ້າເວລາ] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[ວັນ]dddd[ໜ້າເວລາ] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[ວັນ]dddd[ໜ້າເວລາ] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 ທີ່1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 ທີ່1', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 ທີ່2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 ທີ່2', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 ທີ່3', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('lt');
- test('parse', function (assert) {
- var tests = 'sausis sau_vasaris vas_kovas kov_balandis bal_gegužė geg_birželis bir_liepa lie_rugpjūtis rgp_rugsėjis rgs_spalis spa_lapkritis lap_gruodis grd'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'sekmadienis, 14-oji vasario 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sek, 3PM'],
- ['M Mo MM MMMM MMM', '2 2-oji 02 vasaris vas'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-oji 14'],
- ['d do dddd ddd dd', '0 0-oji sekmadienis Sek S'],
- ['DDD DDDo DDDD', '45 45-oji 045'],
- ['w wo ww', '6 6-oji 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['DDDo [metų diena]', '45-oji metų diena'],
- ['LTS', '15:25:50'],
- ['L', '2010-02-14'],
- ['LL', '2010 m. vasaris 14 d.'],
- ['LLL', '2010 m. vasaris 14 d., 15:25 val.'],
- ['LLLL', '2010 m. vasaris 14 d., sekmadienis, 15:25 val.'],
- ['l', '2010-02-14'],
- ['ll', '2010 m. vasaris 14 d.'],
- ['lll', '2010 m. vasaris 14 d., 15:25 val.'],
- ['llll', '2010 m. vasaris 14 d., Sek, 15:25 val.']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-oji', '1-oji');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-oji', '2-oji');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-oji', '3-oji');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-oji', '4-oji');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-oji', '5-oji');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-oji', '6-oji');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-oji', '7-oji');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-oji', '8-oji');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-oji', '9-oji');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-oji', '10-oji');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-oji', '11-oji');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-oji', '12-oji');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-oji', '13-oji');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-oji', '14-oji');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-oji', '15-oji');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-oji', '16-oji');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-oji', '17-oji');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-oji', '18-oji');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-oji', '19-oji');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-oji', '20-oji');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-oji', '21-oji');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-oji', '22-oji');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-oji', '23-oji');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-oji', '24-oji');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-oji', '25-oji');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-oji', '26-oji');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-oji', '27-oji');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-oji', '28-oji');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-oji', '29-oji');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-oji', '30-oji');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-oji', '31-oji');
- });
- test('format month', function (assert) {
- var expected = 'sausis sau_vasaris vas_kovas kov_balandis bal_gegužė geg_birželis bir_liepa lie_rugpjūtis rgp_rugsėjis rgs_spalis spa_lapkritis lap_gruodis grd'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'sekmadienis Sek S_pirmadienis Pir P_antradienis Ant A_trečiadienis Tre T_ketvirtadienis Ket K_penktadienis Pen Pn_šeštadienis Šeš Š'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('format week on US calendar', function (assert) {
- // Tests, whether the weekday names are correct, even if the week does not start on Monday
- moment.locale('lt', {week: {dow: 0, doy: 6}});
- var expected = 'sekmadienis Sek S_pirmadienis Pir P_antradienis Ant A_trečiadienis Tre T_ketvirtadienis Ket K_penktadienis Pen Pn_šeštadienis Šeš Š'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- moment.locale('lt', {week: {dow: 1, doy: 4}});
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'kelios sekundės', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minutė', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minutė', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutės', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 10}), true), '10 minučių', '10 minutes = 10 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 11}), true), '11 minučių', '11 minutes = 11 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 19}), true), '19 minučių', '19 minutes = 19 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 20}), true), '20 minučių', '20 minutes = 20 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutės', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'valanda', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'valanda', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 valandos', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 valandos', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 10}), true), '10 valandų', '10 hours = 10 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 valandos', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'diena', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'diena', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dienos', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'diena', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dienos', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 10}), true), '10 dienų', '10 days = 10 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dienos', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mėnuo', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mėnuo', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mėnuo', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mėnesiai', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mėnesiai', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mėnesiai', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mėnuo', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mėnesiai', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 10}), true), '10 mėnesių', '10 months = 10 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'metai', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 metai', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'metai', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 metai', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'po kelių sekundžių', 'prefix');
- assert.equal(moment(0).from(30000), 'prieš kelias sekundes', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'prieš kelias sekundes', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'po kelių sekundžių', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'po 5 dienų', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Šiandien 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Šiandien 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Šiandien 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Rytoj 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Šiandien 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Vakar 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Praėjusį] dddd LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Praėjusį] dddd LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Praėjusį] dddd LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52-oji', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1-oji', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1-oji', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2-oji', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2-oji', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('lv');
- test('parse', function (assert) {
- var tests = 'janvāris jan_februāris feb_marts mar_aprīlis apr_maijs mai_jūnijs jūn_jūlijs jūl_augusts aug_septembris sep_oktobris okt_novembris nov_decembris dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'svētdiena, 14. februāris 2010, 3:25:50 pm'],
- ['ddd, hA', 'Sv, 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februāris feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. svētdiena Sv Sv'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010.'],
- ['LL', '2010. gada 14. februāris'],
- ['LLL', '2010. gada 14. februāris, 15:25'],
- ['LLLL', '2010. gada 14. februāris, svētdiena, 15:25'],
- ['l', '14.2.2010.'],
- ['ll', '2010. gada 14. feb'],
- ['lll', '2010. gada 14. feb, 15:25'],
- ['llll', '2010. gada 14. feb, Sv, 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'janvāris jan_februāris feb_marts mar_aprīlis apr_maijs mai_jūnijs jūn_jūlijs jūl_augusts aug_septembris sep_oktobris okt_novembris nov_decembris dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'svētdiena Sv Sv_pirmdiena P P_otrdiena O O_trešdiena T T_ceturtdiena C C_piektdiena Pk Pk_sestdiena S S'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- // Includes testing the cases of withoutSuffix = true and false.
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'dažas sekundes', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), false), 'pirms dažām sekundēm', '44 seconds with suffix = seconds ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minūte', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), false), 'pirms minūtes', '45 seconds with suffix = a minute ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minūte', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: -89}), false), 'pēc minūtes', '89 seconds with suffix/prefix = in a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minūtes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), false), 'pirms 2 minūtēm', '90 seconds with suffix = 2 minutes ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minūtes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), false), 'pirms 44 minūtēm', '44 minutes with suffix = 44 minutes ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'stunda', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), false), 'pirms stundas', '45 minutes with suffix = an hour ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'stunda', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 stundas', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: -90}), false), 'pēc 2 stundām', '90 minutes with suffix = in 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 stundas', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), false), 'pirms 5 stundām', '5 hours with suffix = 5 hours ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 stunda', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), false), 'pirms 21 stundas', '21 hours with suffix = 21 hours ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'diena', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), false), 'pirms dienas', '22 hours with suffix = a day ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'diena', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dienas', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), false), 'pirms 2 dienām', '36 hours with suffix = 2 days ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'diena', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dienas', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), false), 'pirms 5 dienām', '5 days with suffix = 5 days ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dienas', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), false), 'pirms 25 dienām', '25 days with suffix = 25 days ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mēnesis', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), false), 'pirms mēneša', '26 days with suffix = a month ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mēnesis', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mēnesis', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mēneši', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), false), 'pirms 2 mēnešiem', '46 days with suffix = 2 months ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mēneši', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mēneši', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), false), 'pirms 3 mēnešiem', '76 days with suffix = 3 months ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mēnesis', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mēneši', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), false), 'pirms 5 mēnešiem', '5 months with suffix = 5 months ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'gads', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), false), 'pirms gada', '345 days with suffix = a year ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 gadi', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), false), 'pirms 2 gadiem', '548 days with suffix = 2 years ago');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'gads', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 gadi', '5 years = 5 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), false), 'pirms 5 gadiem', '5 years with suffix = 5 years ago');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'pēc dažām sekundēm', 'prefix');
- assert.equal(moment(0).from(30000), 'pirms dažām sekundēm', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'pirms dažām sekundēm', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'pēc dažām sekundēm', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'pēc 5 dienām', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Šodien pulksten 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Šodien pulksten 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Šodien pulksten 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Rīt pulksten 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Šodien pulksten 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Vakar pulksten 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [pulksten] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [pulksten] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [pulksten] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Pagājušā] dddd [pulksten] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Pagājušā] dddd [pulksten] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Pagājušā] dddd [pulksten] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('me');
- test('parse', function (assert) {
- var tests = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedjelja, 14. februar 2010, 3:25:50 pm'],
- ['ddd, hA', 'ned., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. nedjelja ned. ne'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14. 02. 2010'],
- ['LL', '14. februar 2010'],
- ['LLL', '14. februar 2010 15:25'],
- ['LLLL', 'nedjelja, 14. februar 2010 15:25'],
- ['l', '14. 2. 2010'],
- ['ll', '14. feb. 2010'],
- ['lll', '14. feb. 2010 15:25'],
- ['llll', 'ned., 14. feb. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'nedjelja ned. ne_ponedjeljak pon. po_utorak uto. ut_srijeda sri. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nekoliko sekundi', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedan minut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedan minut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuta', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mjesec', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mjesec', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mjesec', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mjeseca', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mjeseca', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mjeseca', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mjesec', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mjeseci', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'za nekoliko sekundi', 'prefix');
- assert.equal(moment(0).from(30000), 'prije nekoliko sekundi', 'prefix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'prije nekoliko sekundi', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'za nekoliko sekundi', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'danas u 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'sjutra u 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'juče u 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[u] [nedjelju] [u] LT';
- case 3:
- return '[u] [srijedu] [u] LT';
- case 6:
- return '[u] [subotu] [u] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[u] dddd [u] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- var lastWeekDay = [
- '[prošle] [nedjelje] [u] LT',
- '[prošlog] [ponedjeljka] [u] LT',
- '[prošlog] [utorka] [u] LT',
- '[prošle] [srijede] [u] LT',
- '[prošlog] [četvrtka] [u] LT',
- '[prošlog] [petka] [u] LT',
- '[prošle] [subote] [u] LT'
- ];
- return lastWeekDay[d.day()];
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- // Monday is the first day of the week.
- // The week that contains Jan 1st is the first week of the year.
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('mk');
- test('parse', function (assert) {
- var tests = 'јануари јан_февруари фев_март мар_април апр_мај мај_јуни јун_јули јул_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, H:mm:ss', 'недела, февруари 14-ти 2010, 15:25:50'],
- ['ddd, hA', 'нед, 3PM'],
- ['M Mo MM MMMM MMM', '2 2-ри 02 февруари фев'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-ти 14'],
- ['d do dddd ddd dd', '0 0-ев недела нед нe'],
- ['DDD DDDo DDDD', '45 45-ти 045'],
- ['w wo ww', '7 7-ми 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45-ти day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 февруари 2010'],
- ['LLL', '14 февруари 2010 15:25'],
- ['LLLL', 'недела, 14 февруари 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 фев 2010'],
- ['lll', '14 фев 2010 15:25'],
- ['llll', 'нед, 14 фев 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-ви', '1-ви');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-ри', '2-ри');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-ти', '3-ти');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-ти', '4-ти');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-ти', '5-ти');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-ти', '6-ти');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-ми', '7-ми');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-ми', '8-ми');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-ти', '9-ти');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-ти', '10-ти');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-ти', '11-ти');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-ти', '12-ти');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-ти', '13-ти');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-ти', '14-ти');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-ти', '15-ти');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-ти', '16-ти');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-ти', '17-ти');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-ти', '18-ти');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-ти', '19-ти');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-ти', '20-ти');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-ви', '21-ви');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-ри', '22-ри');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-ти', '23-ти');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-ти', '24-ти');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-ти', '25-ти');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-ти', '26-ти');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-ми', '27-ми');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-ми', '28-ми');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-ти', '29-ти');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-ти', '30-ти');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-ви', '31-ви');
- });
- test('format month', function (assert) {
- var expected = 'јануари јан_февруари фев_март мар_април апр_мај мај_јуни јун_јули јул_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'недела нед нe_понеделник пон пo_вторник вто вт_среда сре ср_четврток чет че_петок пет пе_сабота саб сa'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'неколку секунди', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'минута', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'минута', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минути', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минути', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'час', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'час', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 часа', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 часа', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 часа', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ден', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ден', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дена', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ден', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дена', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дена', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месец', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месец', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месец', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месеци', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месеци', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месеци', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месец', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месеци', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'година', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 години', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'година', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 години', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'после неколку секунди', 'prefix');
- assert.equal(moment(0).from(30000), 'пред неколку секунди', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'пред неколку секунди', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'после неколку секунди', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'после 5 дена', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Денес во 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Денес во 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Денес во 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Утре во 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Денес во 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчера во 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[Во] dddd [во] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Во] dddd [во] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Во] dddd [во] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- case 3:
- case 6:
- return '[Изминатата] dddd [во] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[Изминатиот] dddd [во] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-ви', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-ви', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-ри', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-ри', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-ти', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ml');
- test('parse', function (assert) {
- var tests = 'ജനുവരി ജനു._ഫെബ്രുവരി ഫെബ്രു._മാർച്ച് മാർ._ഏപ്രിൽ ഏപ്രി._മേയ് മേയ്_ജൂൺ ജൂൺ_ജൂലൈ ജൂലൈ._ഓഗസ്റ്റ് ഓഗ._സെപ്റ്റംബർ സെപ്റ്റ._ഒക്ടോബർ ഒക്ടോ._നവംബർ നവം._ഡിസംബർ ഡിസം.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, a h:mm:ss -നു', 'ഞായറാഴ്ച, 14 ഫെബ്രുവരി 2010, ഉച്ച കഴിഞ്ഞ് 3:25:50 -നു'],
- ['ddd, a h -നു', 'ഞായർ, ഉച്ച കഴിഞ്ഞ് 3 -നു'],
- ['M Mo MM MMMM MMM', '2 2 02 ഫെബ്രുവരി ഫെബ്രു.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 ഞായറാഴ്ച ഞായർ ഞാ'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'ഉച്ച കഴിഞ്ഞ് ഉച്ച കഴിഞ്ഞ്'],
- ['LTS', 'ഉച്ച കഴിഞ്ഞ് 3:25:50 -നു'],
- ['L', '14/02/2010'],
- ['LL', '14 ഫെബ്രുവരി 2010'],
- ['LLL', '14 ഫെബ്രുവരി 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു'],
- ['LLLL', 'ഞായറാഴ്ച, 14 ഫെബ്രുവരി 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു'],
- ['l', '14/2/2010'],
- ['ll', '14 ഫെബ്രു. 2010'],
- ['lll', '14 ഫെബ്രു. 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു'],
- ['llll', 'ഞായർ, 14 ഫെബ്രു. 2010, ഉച്ച കഴിഞ്ഞ് 3:25 -നു']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'ജനുവരി ജനു._ഫെബ്രുവരി ഫെബ്രു._മാർച്ച് മാർ._ഏപ്രിൽ ഏപ്രി._മേയ് മേയ്_ജൂൺ ജൂൺ_ജൂലൈ ജൂലൈ._ഓഗസ്റ്റ് ഓഗ._സെപ്റ്റംബർ സെപ്റ്റ._ഒക്ടോബർ ഒക്ടോ._നവംബർ നവം._ഡിസംബർ ഡിസം.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'ഞായറാഴ്ച ഞായർ ഞാ_തിങ്കളാഴ്ച തിങ്കൾ തി_ചൊവ്വാഴ്ച ചൊവ്വ ചൊ_ബുധനാഴ്ച ബുധൻ ബു_വ്യാഴാഴ്ച വ്യാഴം വ്യാ_വെള്ളിയാഴ്ച വെള്ളി വെ_ശനിയാഴ്ച ശനി ശ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'അൽപ നിമിഷങ്ങൾ', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ഒരു മിനിറ്റ്', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ഒരു മിനിറ്റ്', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 മിനിറ്റ്', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 മിനിറ്റ്', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ഒരു മണിക്കൂർ', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ഒരു മണിക്കൂർ', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 മണിക്കൂർ', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 മണിക്കൂർ', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 മണിക്കൂർ', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ഒരു ദിവസം', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ഒരു ദിവസം', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ദിവസം', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ഒരു ദിവസം', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ദിവസം', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ദിവസം', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ഒരു മാസം', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ഒരു മാസം', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ഒരു മാസം', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 മാസം', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 മാസം', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 മാസം', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ഒരു മാസം', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 മാസം', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ഒരു വർഷം', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 വർഷം', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ഒരു വർഷം', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 വർഷം', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'അൽപ നിമിഷങ്ങൾ കഴിഞ്ഞ്', 'prefix');
- assert.equal(moment(0).from(30000), 'അൽപ നിമിഷങ്ങൾ മുൻപ്', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'അൽപ നിമിഷങ്ങൾ മുൻപ്', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'അൽപ നിമിഷങ്ങൾ കഴിഞ്ഞ്', 'അൽപ നിമിഷങ്ങൾ കഴിഞ്ഞ്');
- assert.equal(moment().add({d: 5}).fromNow(), '5 ദിവസം കഴിഞ്ഞ്', '5 ദിവസം കഴിഞ്ഞ്');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'ഇന്ന് രാത്രി 2:00 -നു', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'ഇന്ന് രാത്രി 2:25 -നു', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 3}).calendar(), 'ഇന്ന് രാവിലെ 5:00 -നു', 'Now plus 3 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'നാളെ രാത്രി 2:00 -നു', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'ഇന്ന് രാത്രി 1:00 -നു', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ഇന്നലെ രാത്രി 2:00 -നു', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[കഴിഞ്ഞ] dddd[,] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[കഴിഞ്ഞ] dddd[,] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[കഴിഞ്ഞ] dddd[,] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'രാത്രി', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'രാവിലെ', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'ഉച്ച കഴിഞ്ഞ്', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'വൈകുന്നേരം', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'വൈകുന്നേരം', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'രാത്രി', 'night');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'രാത്രി', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'രാവിലെ', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'ഉച്ച കഴിഞ്ഞ്', ' during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'വൈകുന്നേരം', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'വൈകുന്നേരം', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'രാത്രി', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('mr');
- test('parse', function (assert) {
- var tests = 'जानेवारी जाने._फेब्रुवारी फेब्रु._मार्च मार्च._एप्रिल एप्रि._मे मे._जून जून._जुलै जुलै._ऑगस्ट ऑग._सप्टेंबर सप्टें._ऑक्टोबर ऑक्टो._नोव्हेंबर नोव्हें._डिसेंबर डिसें.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, a h:mm:ss वाजता', 'रविवार, १४ फेब्रुवारी २०१०, दुपारी ३:२५:५० वाजता'],
- ['ddd, a h वाजता', 'रवि, दुपारी ३ वाजता'],
- ['M Mo MM MMMM MMM', '२ २ ०२ फेब्रुवारी फेब्रु.'],
- ['YYYY YY', '२०१० १०'],
- ['D Do DD', '१४ १४ १४'],
- ['d do dddd ddd dd', '० ० रविवार रवि र'],
- ['DDD DDDo DDDD', '४५ ४५ ०४५'],
- ['w wo ww', '८ ८ ०८'],
- ['h hh', '३ ०३'],
- ['H HH', '१५ १५'],
- ['m mm', '२५ २५'],
- ['s ss', '५० ५०'],
- ['a A', 'दुपारी दुपारी'],
- ['LTS', 'दुपारी ३:२५:५० वाजता'],
- ['L', '१४/०२/२०१०'],
- ['LL', '१४ फेब्रुवारी २०१०'],
- ['LLL', '१४ फेब्रुवारी २०१०, दुपारी ३:२५ वाजता'],
- ['LLLL', 'रविवार, १४ फेब्रुवारी २०१०, दुपारी ३:२५ वाजता'],
- ['l', '१४/२/२०१०'],
- ['ll', '१४ फेब्रु. २०१०'],
- ['lll', '१४ फेब्रु. २०१०, दुपारी ३:२५ वाजता'],
- ['llll', 'रवि, १४ फेब्रु. २०१०, दुपारी ३:२५ वाजता']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '१', '१');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '२', '२');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '३', '३');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '४', '४');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '५', '५');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '६', '६');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '७', '७');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '८', '८');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '९', '९');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '१०', '१०');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '११', '११');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '१२', '१२');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '१३', '१३');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '१४', '१४');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '१५', '१५');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '१६', '१६');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '१७', '१७');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '१८', '१८');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '१९', '१९');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '२०', '२०');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '२१', '२१');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '२२', '२२');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '२३', '२३');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '२४', '२४');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '२५', '२५');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '२६', '२६');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '२७', '२७');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '२८', '२८');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '२९', '२९');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '३०', '३०');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '३१', '३१');
- });
- test('format month', function (assert) {
- var expected = 'जानेवारी जाने._फेब्रुवारी फेब्रु._मार्च मार्च._एप्रिल एप्रि._मे मे._जून जून._जुलै जुलै._ऑगस्ट ऑग._सप्टेंबर सप्टें._ऑक्टोबर ऑक्टो._नोव्हेंबर नोव्हें._डिसेंबर डिसें.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'रविवार रवि र_सोमवार सोम सो_मंगळवार मंगळ मं_बुधवार बुध बु_गुरूवार गुरू गु_शुक्रवार शुक्र शु_शनिवार शनि श'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'काही सेकंद', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'एक मिनिट', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'एक मिनिट', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '२ मिनिटे', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '४४ मिनिटे', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'एक तास', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'एक तास', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '२ तास', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '५ तास', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '२१ तास', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'एक दिवस', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'एक दिवस', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '२ दिवस', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'एक दिवस', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '५ दिवस', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '२५ दिवस', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'एक महिना', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'एक महिना', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'एक महिना', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '२ महिने', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '२ महिने', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '३ महिने', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'एक महिना', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '५ महिने', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'एक वर्ष', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '२ वर्षे', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'एक वर्ष', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '५ वर्षे', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'काही सेकंदांमध्ये', 'prefix');
- assert.equal(moment(0).from(30000), 'काही सेकंदांपूर्वी', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'काही सेकंदांपूर्वी', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'काही सेकंदांमध्ये', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '५ दिवसांमध्ये', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'आज रात्री २:०० वाजता', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'आज रात्री २:२५ वाजता', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 3}).calendar(), 'आज सकाळी ५:०० वाजता', 'Now plus 3 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'उद्या रात्री २:०० वाजता', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'आज रात्री १:०० वाजता', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'काल रात्री २:०० वाजता', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[मागील] dddd[,] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[मागील] dddd[,] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[मागील] dddd[,] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'रात्री', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'सकाळी', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'दुपारी', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'सायंकाळी', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'सायंकाळी', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'रात्री', 'night');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'रात्री', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'सकाळी', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'दुपारी', ' during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'सायंकाळी', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'सायंकाळी', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'रात्री', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '१ ०१ १', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '१ ०१ १', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '२ ०२ २', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '२ ०२ २', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '३ ०३ ३', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ms-my');
- test('parse', function (assert) {
- var i,
- tests = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' sepatutnya bulan ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Ahad, Februari 14 2010, 3:25:50 petang'],
- ['ddd, hA', 'Ahd, 3petang'],
- ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 Ahad Ahd Ah'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '7 7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'petang petang'],
- ['[hari] [ke] DDDo [tahun] ini', 'hari ke 45 tahun ini'],
- ['LTS', '15.25.50'],
- ['L', '14/02/2010'],
- ['LL', '14 Februari 2010'],
- ['LLL', '14 Februari 2010 pukul 15.25'],
- ['LLLL', 'Ahad, 14 Februari 2010 pukul 15.25'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 pukul 15.25'],
- ['llll', 'Ahd, 14 Feb 2010 pukul 15.25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var i,
- expected = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'Ahad Ahd Ah_Isnin Isn Is_Selasa Sel Sl_Rabu Rab Rb_Khamis Kha Km_Jumaat Jum Jm_Sabtu Sab Sb'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beberapa saat', '44 saat = beberapa saat');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'seminit', '45 saat = seminit');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'seminit', '89 saat = seminit');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minit', '90 saat = 2 minit');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minit', '44 minit = 44 minit');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'sejam', '45 minit = sejam');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'sejam', '89 minit = sejam');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minit = 2 jam');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 jam = 5 jam');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 jam = 21 jam');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sehari', '22 jam = sehari');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sehari', '35 jam = sehari');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 hari', '36 jam = 2 hari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sehari', '1 hari = sehari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 hari', '5 hari = 5 hari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 hari', '25 hari = 25 hari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sebulan', '26 hari = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sebulan', '30 hari = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sebulan', '45 hari = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 bulan', '46 hari = 2 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 bulan', '75 hari = 2 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 bulan', '76 hari = 3 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sebulan', '1 bulan = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 bulan', '5 bulan = 5 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setahun', '345 hari = setahun');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 tahun', '548 hari = 2 tahun');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setahun', '1 tahun = setahun');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 tahun', '5 tahun = 5 tahun');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'dalam beberapa saat', 'prefix');
- assert.equal(moment(0).from(30000), 'beberapa saat yang lepas', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'beberapa saat yang lepas', 'waktu sekarang dari sekarang sepatutnya menunjukkan sebagai telah lepas');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'dalam beberapa saat', 'dalam beberapa saat');
- assert.equal(moment().add({d: 5}).fromNow(), 'dalam 5 hari', 'dalam 5 hari');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hari ini pukul 02.00', 'hari ini pada waktu yang sama');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hari ini pukul 02.25', 'Sekarang tambah 25 minit');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hari ini pukul 03.00', 'Sekarang tambah 1 jam');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Esok pukul 02.00', 'esok pada waktu yang sama');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hari ini pukul 01.00', 'Sekarang tolak 1 jam');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kelmarin pukul 02.00', 'kelmarin pada waktu yang sama');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari waktu sekarang');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari permulaan hari');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari tamat hari');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari waktu sekarang');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari permulaan hari');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari tamat hari');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 minggu lepas');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 1 minggu');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 minggu lepas');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 2 minggu');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 sepatutnya minggu 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 sepatutnya minggu 3');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 sepatutnya minggu 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 53, 'Dec 31 2006 sepatutnya minggu 53');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 sepatutnya minggu 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 sepatutnya minggu 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 sepatutnya minggu 1');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 sepatutnya minggu 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 sepatutnya minggu 2');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 30]).week(), 52, 'Dec 30 2007 sepatutnya minggu 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 sepatutnya minggu 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 sepatutnya minggu 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 sepatutnya minggu 1');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 sepatutnya minggu 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 sepatutnya minggu 2');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 52, 'Dec 29 2002 sepatutnya minggu 52');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 sepatutnya minggu 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 sepatutnya minggu 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 sepatutnya minggu 1');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 sepatutnya minggu 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 sepatutnya minggu 2');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 52, 'Dec 28 2008 sepatutnya minggu 52');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 sepatutnya minggu 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 sepatutnya minggu 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 sepatutnya minggu 1');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 sepatutnya minggu 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 sepatutnya minggu 2');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 52, 'Dec 27 2009 sepatutnya minggu 52');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 sepatutnya minggu 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 sepatutnya minggu 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 sepatutnya minggu 1');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 sepatutnya minggu 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 sepatutnya minggu 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 52, 'Dec 26 2010 sepatutnya minggu 52');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 sepatutnya minggu 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 sepatutnya minggu 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 sepatutnya minggu 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 sepatutnya minggu 2');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 sepatutnya minggu 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 sepatutnya minggu 3');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 sepatutnya minggu 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ms');
- test('parse', function (assert) {
- var i,
- tests = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' sepatutnya bulan ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Ahad, Februari 14 2010, 3:25:50 petang'],
- ['ddd, hA', 'Ahd, 3petang'],
- ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 Ahad Ahd Ah'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '7 7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'petang petang'],
- ['[hari] [ke] DDDo [tahun] ini', 'hari ke 45 tahun ini'],
- ['LTS', '15.25.50'],
- ['L', '14/02/2010'],
- ['LL', '14 Februari 2010'],
- ['LLL', '14 Februari 2010 pukul 15.25'],
- ['LLLL', 'Ahad, 14 Februari 2010 pukul 15.25'],
- ['l', '14/2/2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 pukul 15.25'],
- ['llll', 'Ahd, 14 Feb 2010 pukul 15.25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var i,
- expected = 'Januari Jan_Februari Feb_Mac Mac_April Apr_Mei Mei_Jun Jun_Julai Jul_Ogos Ogs_September Sep_Oktober Okt_November Nov_Disember Dis'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'Ahad Ahd Ah_Isnin Isn Is_Selasa Sel Sl_Rabu Rab Rb_Khamis Kha Km_Jumaat Jum Jm_Sabtu Sab Sb'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'beberapa saat', '44 saat = beberapa saat');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'seminit', '45 saat = seminit');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'seminit', '89 saat = seminit');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minit', '90 saat = 2 minit');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minit', '44 minit = 44 minit');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'sejam', '45 minit = sejam');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'sejam', '89 minit = sejam');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 jam', '90 minit = 2 jam');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 jam', '5 jam = 5 jam');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 jam', '21 jam = 21 jam');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'sehari', '22 jam = sehari');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'sehari', '35 jam = sehari');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 hari', '36 jam = 2 hari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'sehari', '1 hari = sehari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 hari', '5 hari = 5 hari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 hari', '25 hari = 25 hari');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'sebulan', '26 hari = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'sebulan', '30 hari = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'sebulan', '45 hari = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 bulan', '46 hari = 2 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 bulan', '75 hari = 2 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 bulan', '76 hari = 3 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'sebulan', '1 bulan = sebulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 bulan', '5 bulan = 5 bulan');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'setahun', '345 hari = setahun');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 tahun', '548 hari = 2 tahun');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'setahun', '1 tahun = setahun');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 tahun', '5 tahun = 5 tahun');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'dalam beberapa saat', 'prefix');
- assert.equal(moment(0).from(30000), 'beberapa saat yang lepas', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'beberapa saat yang lepas', 'waktu sekarang dari sekarang sepatutnya menunjukkan sebagai telah lepas');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'dalam beberapa saat', 'dalam beberapa saat');
- assert.equal(moment().add({d: 5}).fromNow(), 'dalam 5 hari', 'dalam 5 hari');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hari ini pukul 02.00', 'hari ini pada waktu yang sama');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hari ini pukul 02.25', 'Sekarang tambah 25 minit');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hari ini pukul 03.00', 'Sekarang tambah 1 jam');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Esok pukul 02.00', 'esok pada waktu yang sama');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hari ini pukul 01.00', 'Sekarang tolak 1 jam');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kelmarin pukul 02.00', 'kelmarin pada waktu yang sama');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari waktu sekarang');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari permulaan hari');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [pukul] LT'), 'Hari ini + ' + i + ' hari tamat hari');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari waktu sekarang');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari permulaan hari');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [lepas] [pukul] LT'), 'Hari ini - ' + i + ' hari tamat hari');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 minggu lepas');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 1 minggu');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 minggu lepas');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'dalam 2 minggu');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 sepatutnya minggu 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 sepatutnya minggu 3');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 sepatutnya minggu 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 53, 'Dec 31 2006 sepatutnya minggu 53');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 sepatutnya minggu 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 sepatutnya minggu 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 sepatutnya minggu 1');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 sepatutnya minggu 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 sepatutnya minggu 2');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 30]).week(), 52, 'Dec 30 2007 sepatutnya minggu 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 sepatutnya minggu 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 sepatutnya minggu 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 sepatutnya minggu 1');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 sepatutnya minggu 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 sepatutnya minggu 2');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 52, 'Dec 29 2002 sepatutnya minggu 52');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 sepatutnya minggu 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 sepatutnya minggu 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 sepatutnya minggu 1');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 sepatutnya minggu 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 sepatutnya minggu 2');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 52, 'Dec 28 2008 sepatutnya minggu 52');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 sepatutnya minggu 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 sepatutnya minggu 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 sepatutnya minggu 1');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 sepatutnya minggu 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 sepatutnya minggu 2');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 52, 'Dec 27 2009 sepatutnya minggu 52');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 sepatutnya minggu 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 sepatutnya minggu 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 sepatutnya minggu 1');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 sepatutnya minggu 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 sepatutnya minggu 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 52, 'Dec 26 2010 sepatutnya minggu 52');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 sepatutnya minggu 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 sepatutnya minggu 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 sepatutnya minggu 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 sepatutnya minggu 2');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 sepatutnya minggu 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 sepatutnya minggu 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 sepatutnya minggu 3');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 sepatutnya minggu 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('my');
- test('parse', function (assert) {
- var tests = 'ဇန်နဝါရီ ဇန်_ဖေဖော်ဝါရီ ဖေ_မတ် မတ်_ဧပြီ ပြီ_မေ မေ_ဇွန် ဇွန်_ဇူလိုင် လိုင်_သြဂုတ် သြ_စက်တင်ဘာ စက်_အောက်တိုဘာ အောက်_နိုဝင်ဘာ နို_ဒီဇင်ဘာ ဒီ'.split('_'),
- i;
- function equalTest (input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'တနင်္ဂနွေ, ဖေဖော်ဝါရီ ၁၄ ၂၀၁၀, ၃:၂၅:၅၀ pm'],
- ['ddd, hA', 'နွေ, ၃PM'],
- ['M Mo MM MMMM MMM', '၂ ၂ ၀၂ ဖေဖော်ဝါရီ ဖေ'],
- ['YYYY YY', '၂၀၁၀ ၁၀'],
- ['D Do DD', '၁၄ ၁၄ ၁၄'],
- ['d do dddd ddd dd', '၀ ၀ တနင်္ဂနွေ နွေ နွေ'],
- ['DDD DDDo DDDD', '၄၅ ၄၅ ၀၄၅'],
- ['w wo ww', '၆ ၆ ၀၆'],
- ['h hh', '၃ ၀၃'],
- ['H HH', '၁၅ ၁၅'],
- ['m mm', '၂၅ ၂၅'],
- ['s ss', '၅၀ ၅၀'],
- ['a A', 'pm PM'],
- ['[နှစ်၏] DDDo [ရက်မြောက်]', 'နှစ်၏ ၄၅ ရက်မြောက်'],
- ['LTS', '၁၅:၂၅:၅၀'],
- ['L', '၁၄/၀၂/၂၀၁၀'],
- ['LL', '၁၄ ဖေဖော်ဝါရီ ၂၀၁၀'],
- ['LLL', '၁၄ ဖေဖော်ဝါရီ ၂၀၁၀ ၁၅:၂၅'],
- ['LLLL', 'တနင်္ဂနွေ ၁၄ ဖေဖော်ဝါရီ ၂၀၁၀ ၁၅:၂၅'],
- ['l', '၁၄/၂/၂၀၁၀'],
- ['ll', '၁၄ ဖေ ၂၀၁၀'],
- ['lll', '၁၄ ဖေ ၂၀၁၀ ၁၅:၂၅'],
- ['llll', 'နွေ ၁၄ ဖေ ၂၀၁၀ ၁၅:၂၅']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '၁', '၁');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '၂', '၂');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '၃', '၃');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '၄', '၄');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '၅', '၅');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '၆', '၆');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '၇', '၇');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '၈', '၈');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '၉', '၉');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '၁၀', '၁၀');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '၁၁', '၁၁');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '၁၂', '၁၂');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '၁၃', '၁၃');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '၁၄', '၁၄');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '၁၅', '၁၅');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '၁၆', '၁၆');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '၁၇', '၁၇');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '၁၈', '၁၈');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '၁၉', '၁၉');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '၂၀', '၂၀');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '၂၁', '၂၁');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '၂၂', '၂၂');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '၂၃', '၂၃');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '၂၄', '၂၄');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '၂၅', '၂၅');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '၂၆', '၂၆');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '၂၇', '၂၇');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '၂၈', '၂၈');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '၂၉', '၂၉');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '၃၀', '၃၀');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '၃၁', '၃၁');
- });
- test('format month', function (assert) {
- var expected = 'ဇန်နဝါရီ ဇန်_ဖေဖော်ဝါရီ ဖေ_မတ် မတ်_ဧပြီ ပြီ_မေ မေ_ဇွန် ဇွန်_ဇူလိုင် လိုင်_သြဂုတ် သြ_စက်တင်ဘာ စက်_အောက်တိုဘာ အောက်_နိုဝင်ဘာ နို_ဒီဇင်ဘာ ဒီ'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'တနင်္ဂနွေ နွေ နွေ_တနင်္လာ လာ လာ_အင်္ဂါ ဂါ ဂါ_ဗုဒ္ဓဟူး ဟူး ဟူး_ကြာသပတေး ကြာ ကြာ_သောကြာ သော သော_စနေ နေ နေ'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 44
- }), true), 'စက္ကန်.အနည်းငယ်', '၄၄ စက္ကန်. = စက္ကန်.အနည်းငယ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 45
- }), true), 'တစ်မိနစ်', '၄၅ စက္ကန်. = တစ်မိနစ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 89
- }), true), 'တစ်မိနစ်', '၈၉ စက္ကန်. = တစ်မိနစ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- s: 90
- }), true), '၂ မိနစ်', '၉၀ စက္ကန်. = ၂ မိနစ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 44
- }), true), '၄၄ မိနစ်', '၄၄ မိနစ် = ၄၄ မိနစ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 45
- }), true), 'တစ်နာရီ', '၄၅ မိနစ် = ၁ နာရီ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 89
- }), true), 'တစ်နာရီ', '၈၉ မိနစ် = တစ်နာရီ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- m: 90
- }), true), '၂ နာရီ', 'မိနစ် ၉၀= ၂ နာရီ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 5
- }), true), '၅ နာရီ', '၅ နာရီ= ၅ နာရီ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 21
- }), true), '၂၁ နာရီ', '၂၁ နာရီ =၂၁ နာရီ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 22
- }), true), 'တစ်ရက်', '၂၂ နာရီ =တစ်ရက်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 35
- }), true), 'တစ်ရက်', '၃၅ နာရီ =တစ်ရက်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- h: 36
- }), true), '၂ ရက်', '၃၆ နာရီ = ၂ ရက်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 1
- }), true), 'တစ်ရက်', '၁ ရက်= တစ်ရက်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 5
- }), true), '၅ ရက်', '၅ ရက် = ၅ ရက်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 25
- }), true), '၂၅ ရက်', '၂၅ ရက်= ၂၅ ရက်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 26
- }), true), 'တစ်လ', '၂၆ ရက် = တစ်လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 30
- }), true), 'တစ်လ', 'ရက် ၃၀ = တစ်လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 43
- }), true), 'တစ်လ', '၄၃ ရက် = တစ်လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 46
- }), true), '၂ လ', '၄၆ ရက် = ၂ လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 74
- }), true), '၂ လ', '၇၅ ရက်= ၂ လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 76
- }), true), '၃ လ', '၇၆ ရက် = ၃ လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- M: 1
- }), true), 'တစ်လ', '၁ လ = တစ်လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- M: 5
- }), true), '၅ လ', '၅ လ = ၅ လ');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 345
- }), true), 'တစ်နှစ်', '၃၄၅ ရက် = တစ်နှစ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- d: 548
- }), true), '၂ နှစ်', '၅၄၈ ရက် = ၂ နှစ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- y: 1
- }), true), 'တစ်နှစ်', '၁ နှစ် = တစ်နှစ်');
- assert.equal(start.from(moment([2007, 1, 28]).add({
- y: 5
- }), true), '၅ နှစ်', '၅ နှစ် = ၅ နှစ်');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'လာမည့် စက္ကန်.အနည်းငယ် မှာ', 'prefix');
- assert.equal(moment(0).from(30000), 'လွန်ခဲ့သော စက္ကန်.အနည်းငယ် က', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'လွန်ခဲ့သော စက္ကန်.အနည်းငယ် က', 'ယခုမှစပြီး အတိတ်တွင်ဖော်ပြသလိုဖော်ပြမည်');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({
- s: 30
- }).fromNow(), 'လာမည့် စက္ကန်.အနည်းငယ် မှာ', 'လာမည့် စက္ကန်.အနည်းငယ် မှာ');
- assert.equal(moment().add({
- d: 5
- }).fromNow(), 'လာမည့် ၅ ရက် မှာ', 'လာမည့် ၅ ရက် မှာ');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'ယနေ. ၀၂:၀၀ မှာ', 'ယနေ. ဒီအချိန်');
- assert.equal(moment(a).add({
- m: 25
- }).calendar(), 'ယနေ. ၀၂:၂၅ မှာ', 'ယခုမှ ၂၅ မိနစ်ပေါင်းထည့်');
- assert.equal(moment(a).add({
- h: 1
- }).calendar(), 'ယနေ. ၀၃:၀၀ မှာ', 'ယခုမှ ၁ နာရီပေါင်းထည့်');
- assert.equal(moment(a).add({
- d: 1
- }).calendar(), 'မနက်ဖြန် ၀၂:၀၀ မှာ', 'မနက်ဖြန် ဒီအချိန်');
- assert.equal(moment(a).subtract({
- h: 1
- }).calendar(), 'ယနေ. ၀၁:၀၀ မှာ', 'ယခုမှ ၁ နာရီနှုတ်');
- assert.equal(moment(a).subtract({
- d: 1
- }).calendar(), 'မနေ.က ၀၂:၀၀ မှာ', 'မနေ.က ဒီအချိန်');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({
- d: i
- });
- assert.equal(m.calendar(), m.format('dddd LT [မှာ]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd LT [မှာ]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd LT [မှာ]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({
- d: i
- });
- assert.equal(m.calendar(), m.format('[ပြီးခဲ့သော] dddd LT [မှာ]'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[ပြီးခဲ့သော] dddd LT [မှာ]'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[ပြီးခဲ့သော] dddd LT [မှာ]'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({
- w: 1
- }),
- weeksFromNow = moment().add({
- w: 1
- });
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), 'လွန်ခဲ့သော ၁ ပတ်က');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '၁ ပတ်အတွင်း');
- weeksAgo = moment().subtract({
- w: 2
- });
- weeksFromNow = moment().add({
- w: 2
- });
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '၂ ပတ် အရင်က');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), '၂ ပတ် အတွင်း');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '၅၂ ၅၂ ၅၂', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '၁ ၀၁ ၁', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '၁ ၀၁ ၁', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '၂ ၀၂ ၂', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '၂ ၀၂ ၂', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('nb');
- test('parse', function (assert) {
- var tests = 'januar jan._februar feb._mars mars_april april_mai mai_juni juni_juli juli_august aug._september sep._oktober okt._november nov._desember des.'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'søndag, februar 14. 2010, 3:25:50 pm'],
- ['ddd, hA', 'sø., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. søndag sø. sø'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[den] DDDo [dagen i året]', 'den 45. dagen i året'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14. februar 2010'],
- ['LLL', '14. februar 2010 kl. 15:25'],
- ['LLLL', 'søndag 14. februar 2010 kl. 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14. feb. 2010'],
- ['lll', '14. feb. 2010 kl. 15:25'],
- ['llll', 'sø. 14. feb. 2010 kl. 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan._februar feb._mars mars_april april_mai mai_juni juni_juli juli_august aug._september sep._oktober okt._november nov._desember des.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'søndag sø. sø_mandag ma. ma_tirsdag ti. ti_onsdag on. on_torsdag to. to_fredag fr. fr_lørdag lø. lø'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'noen sekunder', '44 sekunder = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ett minutt', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ett minutt', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutter', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutter', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'en time', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'en time', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timer', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timer', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timer', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dager', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dager', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dager', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en måned', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en måned', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en måned', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 måneder', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 måneder', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 måneder', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en måned', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 måneder', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ett år', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ett år', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'om noen sekunder', 'prefix');
- assert.equal(moment(0).from(30000), 'for noen sekunder siden', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'for noen sekunder siden', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'om noen sekunder', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dager', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'i dag kl. 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'i dag kl. 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'i dag kl. 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'i morgen kl. 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'i dag kl. 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'i går kl. 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [kl.] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[forrige] dddd [kl.] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[forrige] dddd [kl.] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[forrige] dddd [kl.] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ne');
- test('parse', function (assert) {
- var tests = 'जनवरी जन._फेब्रुवरी फेब्रु._मार्च मार्च_अप्रिल अप्रि._मई मई_जुन जुन_जुलाई जुलाई._अगष्ट अग._सेप्टेम्बर सेप्ट._अक्टोबर अक्टो._नोभेम्बर नोभे._डिसेम्बर डिसे.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, aको h:mm:ss बजे', 'आइतबार, १४ फेब्रुवरी २०१०, दिउँसोको ३:२५:५० बजे'],
- ['ddd, aको h बजे', 'आइत., दिउँसोको ३ बजे'],
- ['M Mo MM MMMM MMM', '२ २ ०२ फेब्रुवरी फेब्रु.'],
- ['YYYY YY', '२०१० १०'],
- ['D Do DD', '१४ १४ १४'],
- ['d do dddd ddd dd', '० ० आइतबार आइत. आ.'],
- ['DDD DDDo DDDD', '४५ ४५ ०४५'],
- ['w wo ww', '८ ८ ०८'],
- ['h hh', '३ ०३'],
- ['H HH', '१५ १५'],
- ['m mm', '२५ २५'],
- ['s ss', '५० ५०'],
- ['a A', 'दिउँसो दिउँसो'],
- ['LTS', 'दिउँसोको ३:२५:५० बजे'],
- ['L', '१४/०२/२०१०'],
- ['LL', '१४ फेब्रुवरी २०१०'],
- ['LLL', '१४ फेब्रुवरी २०१०, दिउँसोको ३:२५ बजे'],
- ['LLLL', 'आइतबार, १४ फेब्रुवरी २०१०, दिउँसोको ३:२५ बजे'],
- ['l', '१४/२/२०१०'],
- ['ll', '१४ फेब्रु. २०१०'],
- ['lll', '१४ फेब्रु. २०१०, दिउँसोको ३:२५ बजे'],
- ['llll', 'आइत., १४ फेब्रु. २०१०, दिउँसोको ३:२५ बजे']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '१', '१');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '२', '२');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '३', '३');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '४', '४');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '५', '५');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '६', '६');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '७', '७');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '८', '८');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '९', '९');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '१०', '१०');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '११', '११');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '१२', '१२');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '१३', '१३');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '१४', '१४');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '१५', '१५');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '१६', '१६');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '१७', '१७');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '१८', '१८');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '१९', '१९');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '२०', '२०');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '२१', '२१');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '२२', '२२');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '२३', '२३');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '२४', '२४');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '२५', '२५');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '२६', '२६');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '२७', '२७');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '२८', '२८');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '२९', '२९');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '३०', '३०');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '३१', '३१');
- });
- test('format month', function (assert) {
- var expected = 'जनवरी जन._फेब्रुवरी फेब्रु._मार्च मार्च_अप्रिल अप्रि._मई मई_जुन जुन_जुलाई जुलाई._अगष्ट अग._सेप्टेम्बर सेप्ट._अक्टोबर अक्टो._नोभेम्बर नोभे._डिसेम्बर डिसे.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'आइतबार आइत. आ._सोमबार सोम. सो._मङ्गलबार मङ्गल. मं._बुधबार बुध. बु._बिहिबार बिहि. बि._शुक्रबार शुक्र. शु._शनिबार शनि. श.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'केही क्षण', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'एक मिनेट', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'एक मिनेट', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '२ मिनेट', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '४४ मिनेट', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'एक घण्टा', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'एक घण्टा', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '२ घण्टा', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '५ घण्टा', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '२१ घण्टा', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'एक दिन', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'एक दिन', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '२ दिन', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'एक दिन', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '५ दिन', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '२५ दिन', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'एक महिना', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'एक महिना', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'एक महिना', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '२ महिना', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '२ महिना', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '३ महिना', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'एक महिना', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '५ महिना', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'एक बर्ष', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '२ बर्ष', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'एक बर्ष', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '५ बर्ष', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'केही क्षणमा', 'prefix');
- assert.equal(moment(0).from(30000), 'केही क्षण अगाडि', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'केही क्षण अगाडि', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'केही क्षणमा', 'केही क्षणमा');
- assert.equal(moment().add({d: 5}).fromNow(), '५ दिनमा', '५ दिनमा');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'आज रातिको २:०० बजे', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'आज रातिको २:२५ बजे', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'आज बिहानको ३:०० बजे', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'भोलि रातिको २:०० बजे', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'आज रातिको १:०० बजे', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'हिजो रातिको २:०० बजे', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[आउँदो] dddd[,] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[आउँदो] dddd[,] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[आउँदो] dddd[,] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[गएको] dddd[,] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[गएको] dddd[,] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[गएको] dddd[,] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'राति', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'बिहान', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'दिउँसो', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'साँझ', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'साँझ', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'राति', 'night');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'राति', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'बिहान', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'दिउँसो', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'साँझ', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'साँझ', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'राति', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '५३ ५३ ५३', 'Dec 26 2011 should be week 53');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '१ ०१ १', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '१ ०१ १', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '२ ०२ २', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '२ ०२ २', 'Jan 9 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('nl');
- test('parse', function (assert) {
- var tests = 'januari jan._februari feb._maart mrt._april apr._mei mei._juni jun._juli jul._augustus aug._september sep._oktober okt._november nov._december dec.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, HH:mm:ss', 'zondag, februari 14de 2010, 15:25:50'],
- ['ddd, HH', 'zo., 15'],
- ['M Mo MM MMMM MMM', '2 2de 02 februari feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14de 14'],
- ['d do dddd ddd dd', '0 0de zondag zo. Zo'],
- ['DDD DDDo DDDD', '45 45ste 045'],
- ['w wo ww', '6 6de 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45ste day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14-02-2010'],
- ['LL', '14 februari 2010'],
- ['LLL', '14 februari 2010 15:25'],
- ['LLLL', 'zondag 14 februari 2010 15:25'],
- ['l', '14-2-2010'],
- ['ll', '14 feb. 2010'],
- ['lll', '14 feb. 2010 15:25'],
- ['llll', 'zo. 14 feb. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1ste', '1ste');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2de', '2de');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3de', '3de');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4de', '4de');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5de', '5de');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6de', '6de');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7de', '7de');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8ste', '8ste');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9de', '9de');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10de', '10de');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11de', '11de');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12de', '12de');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13de', '13de');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14de', '14de');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15de', '15de');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16de', '16de');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17de', '17de');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18de', '18de');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19de', '19de');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20ste', '20ste');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21ste', '21ste');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22ste', '22ste');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23ste', '23ste');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24ste', '24ste');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25ste', '25ste');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26ste', '26ste');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27ste', '27ste');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28ste', '28ste');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29ste', '29ste');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30ste', '30ste');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31ste', '31ste');
- });
- test('format month', function (assert) {
- var expected = 'januari jan._februari feb._maart mrt._april apr._mei mei_juni jun._juli jul._augustus aug._september sep._oktober okt._november nov._december dec.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'zondag zo. Zo_maandag ma. Ma_dinsdag di. Di_woensdag wo. Wo_donderdag do. Do_vrijdag vr. Vr_zaterdag za. Za'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'een paar seconden', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'één minuut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'één minuut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuten', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuten', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'één uur', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'één uur', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 uur', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 uur', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 uur', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'één dag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'één dag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagen', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'één dag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagen', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagen', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'één maand', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'één maand', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'één maand', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 maanden', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 maanden', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 maanden', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'één maand', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 maanden', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'één jaar', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jaar', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'één jaar', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jaar', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'over een paar seconden', 'prefix');
- assert.equal(moment(0).from(30000), 'een paar seconden geleden', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'een paar seconden geleden', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'over een paar seconden', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'over 5 dagen', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'vandaag om 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'vandaag om 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'vandaag om 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'morgen om 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'vandaag om 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'gisteren om 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [om] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[afgelopen] dddd [om] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('month abbreviation', function (assert) {
- assert.equal(moment([2012, 5, 23]).format('D-MMM-YYYY'), '23-jun-2012', 'format month abbreviation surrounded by dashes should not include a dot');
- assert.equal(moment([2012, 5, 23]).format('D MMM YYYY'), '23 jun. 2012', 'format month abbreviation not surrounded by dashes should include a dot');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52ste', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1ste', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1ste', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2de', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2de', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('nn');
- test('parse', function (assert) {
- var tests = 'januar jan_februar feb_mars mar_april apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'sundag, februar 14. 2010, 3:25:50 pm'],
- ['ddd, hA', 'sun, 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. sundag sun su'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14. februar 2010'],
- ['LLL', '14. februar 2010 kl. 15:25'],
- ['LLLL', 'sundag 14. februar 2010 kl. 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14. feb 2010'],
- ['lll', '14. feb 2010 kl. 15:25'],
- ['llll', 'sun 14. feb 2010 kl. 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan_februar feb_mars mar_april apr_mai mai_juni jun_juli jul_august aug_september sep_oktober okt_november nov_desember des'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'sundag sun su_måndag mån må_tysdag tys ty_onsdag ons on_torsdag tor to_fredag fre fr_laurdag lau lø'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nokre sekund', '44 sekunder = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'eit minutt', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'eit minutt', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutt', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutt', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ein time', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ein time', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timar', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timar', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timar', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ein dag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ein dag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ein dag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ein månad', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ein månad', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ein månad', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 månader', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 månader', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 månader', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ein månad', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 månader', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'eit år', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eit år', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'om nokre sekund', 'prefix');
- assert.equal(moment(0).from(30000), 'for nokre sekund sidan', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'for nokre sekund sidan', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'om nokre sekund', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dagar', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'I dag klokka 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'I dag klokka 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'I dag klokka 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'I morgon klokka 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'I dag klokka 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'I går klokka 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [klokka] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [klokka] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [klokka] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Føregåande] dddd [klokka] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Føregåande] dddd [klokka] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Føregåande] dddd [klokka] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('pl');
- test('parse', function (assert) {
- var tests = 'styczeń stycznia sty_luty lutego lut_marzec marca mar_kwiecień kwietnia kwi_maj maja maj_czerwiec czerwca cze_lipiec lipca lip_sierpień sierpnia sie_wrzesień września wrz_październik października paź_listopad listopada lis_grudzień grudnia gru'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][2], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][2], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][2].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][2].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('parse strict', function (assert) {
- var tests = 'styczeń stycznia sty_luty lutego lut_marzec marca mar_kwiecień kwietnia kwi_maj maja maj_czerwiec czerwca cze_lipiec lipca lip_sierpień sierpnia sie_wrzesień września wrz_październik października paź_listopad listopada lis_grudzień grudnia gru'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm, true).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][2], 'MMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][2].toLocaleLowerCase(), 'MMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][2].toLocaleUpperCase(), 'MMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'niedziela, luty 14. 2010, 3:25:50 pm'],
- ['ddd, hA', 'nie, 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 luty lut'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. niedziela nie Nd'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 lutego 2010'],
- ['LLL', '14 lutego 2010 15:25'],
- ['LLLL', 'niedziela, 14 lutego 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 lut 2010'],
- ['lll', '14 lut 2010 15:25'],
- ['llll', 'nie, 14 lut 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'styczeń sty_luty lut_marzec mar_kwiecień kwi_maj maj_czerwiec cze_lipiec lip_sierpień sie_wrzesień wrz_październik paź_listopad lis_grudzień gru'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'niedziela nie Nd_poniedziałek pon Pn_wtorek wt Wt_środa śr Śr_czwartek czw Cz_piątek pt Pt_sobota sb So'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'kilka sekund', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuty', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuty', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'godzina', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'godzina', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 godziny', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 godzin', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 godzin', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 dzień', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 dzień', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dni', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 dzień', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dni', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dni', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'miesiąc', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'miesiąc', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'miesiąc', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 miesiące', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 miesiące', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 miesiące', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'miesiąc', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 miesięcy', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'rok', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 lata', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'rok', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 lat', '5 years = 5 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 112}), true), '112 lat', '112 years = 112 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 122}), true), '122 lata', '122 years = 122 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 213}), true), '213 lat', '213 years = 213 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 223}), true), '223 lata', '223 years = 223 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'za kilka sekund', 'prefix');
- assert.equal(moment(0).from(30000), 'kilka sekund temu', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'kilka sekund temu', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'za kilka sekund', 'in a few seconds');
- assert.equal(moment().add({h: 1}).fromNow(), 'za godzinę', 'in an hour');
- assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dni', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Dziś o 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Dziś o 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Dziś o 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Jutro o 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Dziś o 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Wczoraj o 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[W] dddd [o] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[W] dddd [o] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[W] dddd [o] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[W zeszłą niedzielę o] LT';
- case 3:
- return '[W zeszłą środę o] LT';
- case 6:
- return '[W zeszłą sobotę o] LT';
- default:
- return '[W zeszły] dddd [o] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('pt-br');
- test('parse', function (assert) {
- var tests = 'janeiro jan_fevereiro fev_março mar_abril abr_maio mai_junho jun_julho jul_agosto ago_setembro set_outubro out_novembro nov_dezembro dez'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Domingo, Fevereiro 14º 2010, 3:25:50 pm'],
- ['ddd, hA', 'Dom, 3PM'],
- ['M Mo MM MMMM MMM', '2 2º 02 Fevereiro Fev'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14º 14'],
- ['d do dddd ddd', '0 0º Domingo Dom'],
- ['DDD DDDo DDDD', '45 45º 045'],
- ['w wo ww', '8 8º 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45º day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 de Fevereiro de 2010'],
- ['LLL', '14 de Fevereiro de 2010 às 15:25'],
- ['LLLL', 'Domingo, 14 de Fevereiro de 2010 às 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 de Fev de 2010'],
- ['lll', '14 de Fev de 2010 às 15:25'],
- ['llll', 'Dom, 14 de Fev de 2010 às 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º');
- });
- test('format month', function (assert) {
- var expected = 'Janeiro Jan_Fevereiro Fev_Março Mar_Abril Abr_Maio Mai_Junho Jun_Julho Jul_Agosto Ago_Setembro Set_Outubro Out_Novembro Nov_Dezembro Dez'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Domingo Dom_Segunda-Feira Seg_Terça-Feira Ter_Quarta-Feira Qua_Quinta-Feira Qui_Sexta-Feira Sex_Sábado Sáb'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'poucos segundos', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'um minuto', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'um minuto', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'uma hora', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'uma hora', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'um dia', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'um dia', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dias', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'um dia', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dias', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dias', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'um mês', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'um mês', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'um mês', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'um mês', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'um ano', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anos', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'um ano', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anos', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'em poucos segundos', 'prefix');
- assert.equal(moment(0).from(30000), 'poucos segundos atrás', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'em poucos segundos', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'em 5 dias', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hoje às 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hoje às 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hoje às 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Amanhã às 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hoje às 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ontem às 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1º', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1º', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2º', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2º', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3º', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('pt');
- test('parse', function (assert) {
- var tests = 'Janeiro Jan_Fevereiro Fev_Março Mar_Abril Abr_Maio Mai_Junho Jun_Julho Jul_Agosto Ago_Setembro Set_Outubro Out_Novembro Nov_Dezembro Dez'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Domingo, Fevereiro 14º 2010, 3:25:50 pm'],
- ['ddd, hA', 'Dom, 3PM'],
- ['M Mo MM MMMM MMM', '2 2º 02 Fevereiro Fev'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14º 14'],
- ['d do dddd ddd', '0 0º Domingo Dom'],
- ['DDD DDDo DDDD', '45 45º 045'],
- ['w wo ww', '6 6º 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45º day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 de Fevereiro de 2010'],
- ['LLL', '14 de Fevereiro de 2010 15:25'],
- ['LLLL', 'Domingo, 14 de Fevereiro de 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 de Fev de 2010'],
- ['lll', '14 de Fev de 2010 15:25'],
- ['llll', 'Dom, 14 de Fev de 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º');
- });
- test('format month', function (assert) {
- var expected = 'Janeiro Jan_Fevereiro Fev_Março Mar_Abril Abr_Maio Mai_Junho Jun_Julho Jul_Agosto Ago_Setembro Set_Outubro Out_Novembro Nov_Dezembro Dez'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Domingo Dom Dom_Segunda-Feira Seg 2ª_Terça-Feira Ter 3ª_Quarta-Feira Qua 4ª_Quinta-Feira Qui 5ª_Sexta-Feira Sex 6ª_Sábado Sáb Sáb'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'segundos', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'um minuto', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'um minuto', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minutos', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minutos', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'uma hora', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'uma hora', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 horas', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 horas', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 horas', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'um dia', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'um dia', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dias', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'um dia', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dias', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dias', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'um mês', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'um mês', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'um mês', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meses', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meses', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meses', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'um mês', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meses', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'um ano', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 anos', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'um ano', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 anos', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'em segundos', 'prefix');
- assert.equal(moment(0).from(30000), 'há segundos', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'em segundos', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'em 5 dias', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hoje às 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hoje às 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hoje às 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Amanhã às 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hoje às 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Ontem às 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [às] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format((m.day() === 0 || m.day() === 6) ? '[Último] dddd [às] LT' : '[Última] dddd [às] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52º', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1º', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1º', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2º', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2º', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ro');
- test('parse', function (assert) {
- var tests = 'ianuarie ian._februarie febr._martie mart._aprilie apr._mai mai_iunie iun._iulie iul._august aug._septembrie sept._octombrie oct._noiembrie nov._decembrie dec.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss A', 'duminică, februarie 14 2010, 3:25:50 PM'],
- ['ddd, hA', 'Dum, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 februarie febr.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 duminică Dum Du'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '7 7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[a] DDDo[a zi a anului]', 'a 45a zi a anului'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 februarie 2010'],
- ['LLL', '14 februarie 2010 15:25'],
- ['LLLL', 'duminică, 14 februarie 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 febr. 2010'],
- ['lll', '14 febr. 2010 15:25'],
- ['llll', 'Dum, 14 febr. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'ianuarie ian._februarie febr._martie mart._aprilie apr._mai mai_iunie iun._iulie iul._august aug._septembrie sept._octombrie oct._noiembrie nov._decembrie dec.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'duminică Dum Du_luni Lun Lu_marți Mar Ma_miercuri Mie Mi_joi Joi Jo_vineri Vin Vi_sâmbătă Sâm Sâ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'câteva secunde', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'un minut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'un minut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 de minute', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'o oră', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'o oră', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ore', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ore', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 de ore', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'o zi', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'o zi', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 zile', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'o zi', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 zile', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 de zile', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'o lună', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'o lună', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'o lună', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 luni', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 luni', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 luni', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'o lună', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 luni', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'un an', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ani', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'un an', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ani', '5 years = 5 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 19}), true), '19 ani', '19 years = 19 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 20}), true), '20 de ani', '20 years = 20 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 100}), true), '100 de ani', '100 years = 100 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 101}), true), '101 ani', '101 years = 101 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 119}), true), '119 ani', '119 years = 119 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 120}), true), '120 de ani', '120 years = 120 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 219}), true), '219 ani', '219 years = 219 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 220}), true), '220 de ani', '220 years = 220 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'peste câteva secunde', 'prefix');
- assert.equal(moment(0).from(30000), 'câteva secunde în urmă', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'câteva secunde în urmă', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'peste câteva secunde', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'peste 5 zile', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'azi la 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'azi la 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'azi la 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'mâine la 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'azi la 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ieri la 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [la] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [la] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [la] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[fosta] dddd [la] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[fosta] dddd [la] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[fosta] dddd [la] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ru');
- test('parse', function (assert) {
- var tests = 'Январь янв_Февраль фев_Март март_Апрель апр_Май май_Июнь июнь_Июль июль_Август авг_Сентябрь сен_Октябрь окт_Ноябрь ноя_Декабрь дек'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- function equalTestStrict(input, mmm, monthIndex) {
- assert.equal(moment(input, mmm, true).month(), monthIndex, input + ' ' + mmm + ' should be strict month ' + (monthIndex + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- equalTestStrict(tests[i][1], 'MMM', i);
- equalTestStrict(tests[i][0], 'MMMM', i);
- equalTestStrict(tests[i][1].toLocaleLowerCase(), 'MMM', i);
- equalTestStrict(tests[i][1].toLocaleUpperCase(), 'MMM', i);
- equalTestStrict(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTestStrict(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('parse exceptional case', function (assert) {
- assert.equal(moment('11 Мая 1989', ['DD MMMM YYYY']).format('DD-MM-YYYY'), '11-05-1989');
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, HH:mm:ss', 'Воскресенье, 14-го Февраля 2010, 15:25:50'],
- ['ddd, h A', 'Вс, 3 дня'],
- ['M Mo MM MMMM MMM', '2 2-й 02 Февраль фев'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-го 14'],
- ['d do dddd ddd dd', '0 0-й Воскресенье Вс Вс'],
- ['DDD DDDo DDDD', '45 45-й 045'],
- ['w wo ww', '7 7-я 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'дня дня'],
- ['DDDo [день года]', '45-й день года'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 Февраля 2010 г.'],
- ['LLL', '14 Февраля 2010 г., 15:25'],
- ['LLLL', 'Воскресенье, 14 Февраля 2010 г., 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 фев 2010 г.'],
- ['lll', '14 фев 2010 г., 15:25'],
- ['llll', 'Вс, 14 фев 2010 г., 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format meridiem', function (assert) {
- assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'ночи', 'night');
- assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'ночи', 'night');
- assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'утра', 'morning');
- assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'утра', 'morning');
- assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'дня', 'afternoon');
- assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'дня', 'afternoon');
- assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'вечера', 'evening');
- assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'вечера', 'evening');
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-й', '1-й');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-й', '2-й');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-й', '3-й');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-й', '4-й');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-й', '5-й');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-й', '6-й');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-й', '7-й');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-й', '8-й');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-й', '9-й');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-й', '10-й');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-й', '11-й');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-й', '12-й');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-й', '13-й');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-й', '14-й');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-й', '15-й');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-й', '16-й');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-й', '17-й');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-й', '18-й');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-й', '19-й');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-й', '20-й');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-й', '21-й');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-й', '22-й');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-й', '23-й');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-й', '24-й');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-й', '25-й');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-й', '26-й');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-й', '27-й');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-й', '28-й');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-й', '29-й');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-й', '30-й');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-й', '31-й');
- });
- test('format month', function (assert) {
- var expected = 'Январь янв_Февраль фев_Март март_Апрель апр_Май май_Июнь июнь_Июль июль_Август авг_Сентябрь сен_Октябрь окт_Ноябрь ноя_Декабрь дек'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format month case', function (assert) {
- var months = {
- 'nominative': 'Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь'.split('_'),
- 'accusative': 'Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]);
- assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]);
- }
- });
- test('format month short case', function (assert) {
- var monthsShort = {
- 'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
- 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2011, i, 1]).format('D MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]);
- assert.equal(moment([2011, i, 1]).format('MMM'), monthsShort.nominative[i], '1 ' + monthsShort.nominative[i]);
- }
- });
- test('format month case with escaped symbols', function (assert) {
- var months = {
- 'nominative': 'Январь_Февраль_Март_Апрель_Май_Июнь_Июль_Август_Сентябрь_Октябрь_Ноябрь_Декабрь'.split('_'),
- 'accusative': 'Января_Февраля_Марта_Апреля_Мая_Июня_Июля_Августа_Сентября_Октября_Ноября_Декабря'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2013, i, 1]).format('D[] MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMMM[</b>]'), '<i>1</i> <b>' + months.accusative[i] + '</b>', '1 <b>' + months.accusative[i] + '</b>');
- assert.equal(moment([2013, i, 1]).format('D[-й день] MMMM'), '1-й день ' + months.accusative[i], '1-й день ' + months.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('D, MMMM'), '1, ' + months.nominative[i], '1, ' + months.nominative[i]);
- }
- });
- test('format month short case with escaped symbols', function (assert) {
- var monthsShort = {
- 'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
- 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2013, i, 1]).format('D[] MMM'), '1 ' + monthsShort.accusative[i], '1 ' + monthsShort.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('[<i>]D[</i>] [<b>]MMM[</b>]'), '<i>1</i> <b>' + monthsShort.accusative[i] + '</b>', '1 <b>' + monthsShort.accusative[i] + '</b>');
- assert.equal(moment([2013, i, 1]).format('D[-й день] MMM'), '1-й день ' + monthsShort.accusative[i], '1-й день ' + monthsShort.accusative[i]);
- assert.equal(moment([2013, i, 1]).format('D, MMM'), '1, ' + monthsShort.nominative[i], '1, ' + monthsShort.nominative[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Воскресенье Вс Вс_Понедельник Пн Пн_Вторник Вт Вт_Среда Ср Ср_Четверг Чт Чт_Пятница Пт Пт_Суббота Сб Сб'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'несколько секунд', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'минута', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'минута', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минуты', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 31}), true), '31 минута', '31 minutes = 31 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минуты', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'час', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'час', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 часа', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 часов', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 час', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'день', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'день', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дня', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'день', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дней', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 дней', '11 days = 11 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 день', '21 days = 21 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дней', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месяц', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месяц', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месяц', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месяца', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месяца', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месяца', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месяц', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месяцев', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'год', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 года', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'год', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 лет', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'через несколько секунд', 'prefix');
- assert.equal(moment(0).from(30000), 'несколько секунд назад', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'через несколько секунд', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'через 5 дней', 'in 5 days');
- assert.equal(moment().add({m: 31}).fromNow(), 'через 31 минуту', 'in 31 minutes = in 31 minutes');
- assert.equal(moment().subtract({m: 31}).fromNow(), '31 минуту назад', '31 minutes ago = 31 minutes ago');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Сегодня в 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Сегодня в 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Сегодня в 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Завтра в 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Сегодня в 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчера в 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m, now;
- function makeFormatNext(d) {
- switch (d.day()) {
- case 0:
- return '[В следующее] dddd [в] LT';
- case 1:
- case 2:
- case 4:
- return '[В следующий] dddd [в] LT';
- case 3:
- case 5:
- case 6:
- return '[В следующую] dddd [в] LT';
- }
- }
- function makeFormatThis(d) {
- if (d.day() === 2) {
- return '[Во] dddd [в] LT';
- }
- else {
- return '[В] dddd [в] LT';
- }
- }
- now = moment().startOf('week');
- for (i = 2; i < 7; i++) {
- m = moment(now).add({d: i});
- assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today + ' + i + ' days end of day');
- }
- now = moment().endOf('week');
- for (i = 2; i < 7; i++) {
- m = moment(now).add({d: i});
- assert.equal(m.calendar(now), m.format(makeFormatNext(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(now), m.format(makeFormatNext(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(now), m.format(makeFormatNext(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m, now;
- function makeFormatLast(d) {
- switch (d.day()) {
- case 0:
- return '[В прошлое] dddd [в] LT';
- case 1:
- case 2:
- case 4:
- return '[В прошлый] dddd [в] LT';
- case 3:
- case 5:
- case 6:
- return '[В прошлую] dddd [в] LT';
- }
- }
- function makeFormatThis(d) {
- if (d.day() === 2) {
- return '[Во] dddd [в] LT';
- }
- else {
- return '[В] dddd [в] LT';
- }
- }
- now = moment().startOf('week');
- for (i = 2; i < 7; i++) {
- m = moment(now).subtract({d: i});
- assert.equal(m.calendar(now), m.format(makeFormatLast(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(now), m.format(makeFormatLast(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(now), m.format(makeFormatLast(m)), 'Today - ' + i + ' days end of day');
- }
- now = moment().endOf('week');
- for (i = 2; i < 7; i++) {
- m = moment(now).subtract({d: i});
- assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(now), m.format(makeFormatThis(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-я', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-я', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-я', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-я', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-я', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('se');
- test('parse', function (assert) {
- var i,
- tests = 'ođđajagemánnu ođđj_guovvamánnu guov_njukčamánnu njuk_cuoŋománnu cuo_miessemánnu mies_geassemánnu geas_suoidnemánnu suoi_borgemánnu borg_čakčamánnu čakč_golggotmánnu golg_skábmamánnu skáb_juovlamánnu juov'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'sotnabeaivi, guovvamánnu 14. 2010, 3:25:50 pm'],
- ['ddd, hA', 'sotn, 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 guovvamánnu guov'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. sotnabeaivi sotn s'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[jagi] DDDo [beaivi]', 'jagi 45. beaivi'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', 'guovvamánnu 14. b. 2010'],
- ['LLL', 'guovvamánnu 14. b. 2010 ti. 15:25'],
- ['LLLL', 'sotnabeaivi, guovvamánnu 14. b. 2010 ti. 15:25'],
- ['l', '14.2.2010'],
- ['ll', 'guov 14. b. 2010'],
- ['lll', 'guov 14. b. 2010 ti. 15:25'],
- ['llll', 'sotn, guov 14. b. 2010 ti. 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var i,
- expected = 'ođđajagemánnu ođđj_guovvamánnu guov_njukčamánnu njuk_cuoŋománnu cuo_miessemánnu mies_geassemánnu geas_suoidnemánnu suoi_borgemánnu borg_čakčamánnu čakč_golggotmánnu golg_skábmamánnu skáb_juovlamánnu juov'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'sotnabeaivi sotn s_vuossárga vuos v_maŋŋebárga maŋ m_gaskavahkku gask g_duorastat duor d_bearjadat bear b_lávvardat láv L'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'moadde sekunddat', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'okta minuhta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'okta minuhta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuhtat', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuhtat', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'okta diimmu', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'okta diimmu', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 diimmut', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 diimmut', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 diimmut', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'okta beaivi', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'okta beaivi', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 beaivvit', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'okta beaivi', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 beaivvit', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 beaivvit', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'okta mánnu', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'okta mánnu', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'okta mánnu', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mánut', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mánut', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mánut', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'okta mánnu', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mánut', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'okta jahki', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 jagit', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'okta jahki', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 jagit', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'moadde sekunddat geažes', 'prefix');
- assert.equal(moment(0).from(30000), 'maŋit moadde sekunddat', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'maŋit moadde sekunddat', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'moadde sekunddat geažes', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 beaivvit geažes', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'otne ti 02:00', 'Today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'otne ti 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'otne ti 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'ihttin ti 02:00', 'Tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'otne ti 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ikte ti 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [ti] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [ti] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [ti] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[ovddit] dddd [ti] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[ovddit] dddd [ti] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[ovddit] dddd [ti] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('si');
- /*jshint -W100*/
- test('parse', function (assert) {
- var tests = 'ජනවාරි ජන_පෙබරවාරි පෙබ_මාර්තු මාර්_අප්රේල් අප්_මැයි මැයි_ජූනි ජූනි_ජූලි ජූලි_අගෝස්තු අගෝ_සැප්තැම්බර් සැප්_ඔක්තෝබර් ඔක්_නොවැම්බර් නොවැ_දෙසැම්බර් දෙසැ'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['YYYY MMMM Do dddd, a h:mm:ss', '2010 පෙබරවාරි 14 වැනි ඉරිදා, ප.ව. 3:25:50'],
- ['YYYY MMMM Do dddd, a h:mm:ss', '2010 පෙබරවාරි 14 වැනි ඉරිදා, ප.ව. 3:25:50'],
- ['ddd, A h', 'ඉරි, පස් වරු 3'],
- ['M Mo MM MMMM MMM', '2 2 වැනි 02 පෙබරවාරි පෙබ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 වැනි 14'],
- ['d do dddd ddd dd', '0 0 වැනි ඉරිදා ඉරි ඉ'],
- ['DDD DDDo DDDD', '45 45 වැනි 045'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'ප.ව. පස් වරු'],
- ['[වසරේ] DDDo [දිනය]', 'වසරේ 45 වැනි දිනය'],
- ['LTS', 'ප.ව. 3:25:50'],
- ['LT', 'ප.ව. 3:25'],
- ['L', '2010/02/14'],
- ['LL', '2010 පෙබරවාරි 14'],
- ['LLL', '2010 පෙබරවාරි 14, ප.ව. 3:25'],
- ['LLLL', '2010 පෙබරවාරි 14 වැනි ඉරිදා, ප.ව. 3:25:50'],
- ['l', '2010/2/14'],
- ['ll', '2010 පෙබ 14'],
- ['lll', '2010 පෙබ 14, ප.ව. 3:25'],
- ['llll', '2010 පෙබ 14 වැනි ඉරි, ප.ව. 3:25:50']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1 වැනි', '1 වැනි');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2 වැනි', '2 වැනි');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3 වැනි', '3 වැනි');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4 වැනි', '4 වැනි');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5 වැනි', '5 වැනි');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6 වැනි', '6 වැනි');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7 වැනි', '7 වැනි');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8 වැනි', '8 වැනි');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9 වැනි', '9 වැනි');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10 වැනි', '10 වැනි');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11 වැනි', '11 වැනි');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12 වැනි', '12 වැනි');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13 වැනි', '13 වැනි');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14 වැනි', '14 වැනි');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15 වැනි', '15 වැනි');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16 වැනි', '16 වැනි');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17 වැනි', '17 වැනි');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18 වැනි', '18 වැනි');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19 වැනි', '19 වැනි');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20 වැනි', '20 වැනි');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21 වැනි', '21 වැනි');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22 වැනි', '22 වැනි');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23 වැනි', '23 වැනි');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24 වැනි', '24 වැනි');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25 වැනි', '25 වැනි');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26 වැනි', '26 වැනි');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27 වැනි', '27 වැනි');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28 වැනි', '28 වැනි');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29 වැනි', '29 වැනි');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30 වැනි', '30 වැනි');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31 වැනි', '31 වැනි');
- });
- test('format month', function (assert) {
- var expected = 'ජනවාරි ජන_පෙබරවාරි පෙබ_මාර්තු මාර්_අප්රේල් අප්_මැයි මැයි_ජූනි ජූනි_ජූලි ජූලි_අගෝස්තු අගෝ_සැප්තැම්බර් සැප්_ඔක්තෝබර් ඔක්_නොවැම්බර් නොවැ_දෙසැම්බර් දෙසැ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'ඉරිදා ඉරි ඉ_සඳුදා සඳු ස_අඟහරුවාදා අඟ අ_බදාදා බදා බ_බ්රහස්පතින්දා බ්රහ බ්ර_සිකුරාදා සිකු සි_සෙනසුරාදා සෙන සෙ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'තත්පර කිහිපය', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'මිනිත්තුව', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'මිනිත්තුව', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'මිනිත්තු 2', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'මිනිත්තු 44', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'පැය', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'පැය', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'පැය 2', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'පැය 5', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'පැය 21', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'දිනය', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'දිනය', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'දින 2', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'දිනය', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'දින 5', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'දින 25', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'මාසය', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'මාසය', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'මාසය', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'මාස 2', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'මාස 2', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'මාස 3', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'මාසය', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'මාස 5', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'වසර', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'වසර 2', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'වසර', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'වසර 5', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'තත්පර කිහිපයකින්', 'prefix');
- assert.equal(moment(0).from(30000), 'තත්පර කිහිපයකට පෙර', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'තත්පර කිහිපයකට පෙර', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'තත්පර කිහිපයකින්', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'දින 5කින්', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'අද පෙ.ව. 2:00ට', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'අද පෙ.ව. 2:25ට', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'අද පෙ.ව. 3:00ට', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'හෙට පෙ.ව. 2:00ට', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'අද පෙ.ව. 1:00ට', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ඊයේ පෙ.ව. 2:00ට', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd LT[ට]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd LT[ට]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd LT[ට]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[පසුගිය] dddd LT[ට]'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[පසුගිය] dddd LT[ට]'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[පසුගිය] dddd LT[ට]'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('sk');
- test('parse', function (assert) {
- var tests = 'január jan._február feb._marec mar._apríl apr._máj máj_jún jún._júl júl._august aug._september sep._október okt._november nov._december dec.'.split('_'), i;
- function equalTest(input, mmm, monthIndex) {
- assert.equal(moment(input, mmm).month(), monthIndex, input + ' should be month ' + (monthIndex + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss', 'nedeľa, február 14. 2010, 3:25:50'],
- ['ddd, h', 'ne, 3'],
- ['M Mo MM MMMM MMM', '2 2. 02 február feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. nedeľa ne ne'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['DDDo [deň v roku]', '45. deň v roku'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14. február 2010'],
- ['LLL', '14. február 2010 15:25'],
- ['LLLL', 'nedeľa 14. február 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14. feb 2010'],
- ['lll', '14. feb 2010 15:25'],
- ['llll', 'ne 14. feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'január jan_február feb_marec mar_apríl apr_máj máj_jún jún_júl júl_august aug_september sep_október okt_november nov_december dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'nedeľa ne ne_pondelok po po_utorok ut ut_streda st st_štvrtok št št_piatok pi pi_sobota so so'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'pár sekúnd', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minúta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minúta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minúty', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minút', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'hodina', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'hodina', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 hodiny', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 hodín', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 hodín', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'deň', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'deň', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dni', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'deň', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dní', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dní', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mesiac', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mesiac', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mesiac', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesiace', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesiace', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesiace', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mesiac', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesiacov', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'rok', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 roky', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'rok', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 rokov', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'za pár sekúnd', 'prefix');
- assert.equal(moment(0).from(30000), 'pred pár sekundami', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'pred pár sekundami', 'now from now should display as in the past');
- });
- test('fromNow (future)', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'za pár sekúnd', 'in a few seconds');
- assert.equal(moment().add({m: 1}).fromNow(), 'za minútu', 'in a minute');
- assert.equal(moment().add({m: 3}).fromNow(), 'za 3 minúty', 'in 3 minutes');
- assert.equal(moment().add({m: 10}).fromNow(), 'za 10 minút', 'in 10 minutes');
- assert.equal(moment().add({h: 1}).fromNow(), 'za hodinu', 'in an hour');
- assert.equal(moment().add({h: 3}).fromNow(), 'za 3 hodiny', 'in 3 hours');
- assert.equal(moment().add({h: 10}).fromNow(), 'za 10 hodín', 'in 10 hours');
- assert.equal(moment().add({d: 1}).fromNow(), 'za deň', 'in a day');
- assert.equal(moment().add({d: 3}).fromNow(), 'za 3 dni', 'in 3 days');
- assert.equal(moment().add({d: 10}).fromNow(), 'za 10 dní', 'in 10 days');
- assert.equal(moment().add({M: 1}).fromNow(), 'za mesiac', 'in a month');
- assert.equal(moment().add({M: 3}).fromNow(), 'za 3 mesiace', 'in 3 months');
- assert.equal(moment().add({M: 10}).fromNow(), 'za 10 mesiacov', 'in 10 months');
- assert.equal(moment().add({y: 1}).fromNow(), 'za rok', 'in a year');
- assert.equal(moment().add({y: 3}).fromNow(), 'za 3 roky', 'in 3 years');
- assert.equal(moment().add({y: 10}).fromNow(), 'za 10 rokov', 'in 10 years');
- });
- test('fromNow (past)', function (assert) {
- assert.equal(moment().subtract({s: 30}).fromNow(), 'pred pár sekundami', 'a few seconds ago');
- assert.equal(moment().subtract({m: 1}).fromNow(), 'pred minútou', 'a minute ago');
- assert.equal(moment().subtract({m: 3}).fromNow(), 'pred 3 minútami', '3 minutes ago');
- assert.equal(moment().subtract({m: 10}).fromNow(), 'pred 10 minútami', '10 minutes ago');
- assert.equal(moment().subtract({h: 1}).fromNow(), 'pred hodinou', 'an hour ago');
- assert.equal(moment().subtract({h: 3}).fromNow(), 'pred 3 hodinami', '3 hours ago');
- assert.equal(moment().subtract({h: 10}).fromNow(), 'pred 10 hodinami', '10 hours ago');
- assert.equal(moment().subtract({d: 1}).fromNow(), 'pred dňom', 'a day ago');
- assert.equal(moment().subtract({d: 3}).fromNow(), 'pred 3 dňami', '3 days ago');
- assert.equal(moment().subtract({d: 10}).fromNow(), 'pred 10 dňami', '10 days ago');
- assert.equal(moment().subtract({M: 1}).fromNow(), 'pred mesiacom', 'a month ago');
- assert.equal(moment().subtract({M: 3}).fromNow(), 'pred 3 mesiacmi', '3 months ago');
- assert.equal(moment().subtract({M: 10}).fromNow(), 'pred 10 mesiacmi', '10 months ago');
- assert.equal(moment().subtract({y: 1}).fromNow(), 'pred rokom', 'a year ago');
- assert.equal(moment().subtract({y: 3}).fromNow(), 'pred 3 rokmi', '3 years ago');
- assert.equal(moment().subtract({y: 10}).fromNow(), 'pred 10 rokmi', '10 years ago');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'dnes o 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'dnes o 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'dnes o 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'zajtra o 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'dnes o 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'včera o 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m, nextDay;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- nextDay = '';
- switch (m.day()) {
- case 0:
- nextDay = 'v nedeľu';
- break;
- case 1:
- nextDay = 'v pondelok';
- break;
- case 2:
- nextDay = 'v utorok';
- break;
- case 3:
- nextDay = 'v stredu';
- break;
- case 4:
- nextDay = 'vo štvrtok';
- break;
- case 5:
- nextDay = 'v piatok';
- break;
- case 6:
- nextDay = 'v sobotu';
- break;
- }
- assert.equal(m.calendar(), m.format('[' + nextDay + '] [o] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[' + nextDay + '] [o] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[' + nextDay + '] [o] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m, lastDay;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- lastDay = '';
- switch (m.day()) {
- case 0:
- lastDay = 'minulú nedeľu';
- break;
- case 1:
- lastDay = 'minulý pondelok';
- break;
- case 2:
- lastDay = 'minulý utorok';
- break;
- case 3:
- lastDay = 'minulú stredu';
- break;
- case 4:
- lastDay = 'minulý štvrtok';
- break;
- case 5:
- lastDay = 'minulý piatok';
- break;
- case 6:
- lastDay = 'minulú sobotu';
- break;
- }
- assert.equal(m.calendar(), m.format('[' + lastDay + '] [o] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[' + lastDay + '] [o] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[' + lastDay + '] [o] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('humanize duration', function (assert) {
- assert.equal(moment.duration(1, 'minutes').humanize(), 'minúta', 'a minute (future)');
- assert.equal(moment.duration(1, 'minutes').humanize(true), 'za minútu', 'in a minute');
- assert.equal(moment.duration(-1, 'minutes').humanize(), 'minúta', 'a minute (past)');
- assert.equal(moment.duration(-1, 'minutes').humanize(true), 'pred minútou', 'a minute ago');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('sl');
- test('parse', function (assert) {
- var tests = 'januar jan._februar feb._marec mar._april apr._maj maj_junij jun._julij jul._avgust avg._september sep._oktober okt._november nov._december dec.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedelja, 14. februar 2010, 3:25:50 pm'],
- ['ddd, hA', 'ned., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. nedelja ned. ne'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14. 02. 2010'],
- ['LL', '14. februar 2010'],
- ['LLL', '14. februar 2010 15:25'],
- ['LLLL', 'nedelja, 14. februar 2010 15:25'],
- ['l', '14. 2. 2010'],
- ['ll', '14. feb. 2010'],
- ['lll', '14. feb. 2010 15:25'],
- ['llll', 'ned., 14. feb. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan._februar feb._marec mar._april apr._maj maj._junij jun._julij jul._avgust avg._september sep._oktober okt._november nov._december dec.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'nedelja ned. ne_ponedeljek pon. po_torek tor. to_sreda sre. sr_četrtek čet. če_petek pet. pe_sobota sob. so'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nekaj sekund', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ena minuta', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ena minuta', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuti', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minut', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ena ura', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ena ura', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 uri', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ur', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ur', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dan', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dan', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dni', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dan', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dni', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dni', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en mesec', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en mesec', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en mesec', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meseca', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meseca', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesece', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en mesec', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesecev', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'eno leto', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 leti', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eno leto', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 let', '5 years = 5 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 1}), true), 'ena minuta', 'a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 2}), true), '2 minuti', '2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 3}), true), '3 minute', '3 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 4}), true), '4 minute', '4 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 5}), true), '5 minut', '5 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 1}), true), 'ena ura', 'an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 2}), true), '2 uri', '2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 3}), true), '3 ure', '3 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 4}), true), '4 ure', '4 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ur', '5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dan', 'a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 2}), true), '2 dni', '2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 3}), true), '3 dni', '3 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 4}), true), '4 dni', '4 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dni', '5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en mesec', 'a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 2}), true), '2 meseca', '2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 3}), true), '3 mesece', '3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 4}), true), '4 mesece', '4 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesecev', '5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'eno leto', 'a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 2}), true), '2 leti', '2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 3}), true), '3 leta', '3 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 4}), true), '4 leta', '4 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 let', '5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'čez nekaj sekund', 'prefix');
- assert.equal(moment(0).from(30000), 'pred nekaj sekundami', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'pred nekaj sekundami', 'now from now should display as in the past');
- });
- test('fromNow (future)', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'čez nekaj sekund', 'in a few seconds');
- assert.equal(moment().add({m: 1}).fromNow(), 'čez eno minuto', 'in a minute');
- assert.equal(moment().add({m: 2}).fromNow(), 'čez 2 minuti', 'in 2 minutes');
- assert.equal(moment().add({m: 3}).fromNow(), 'čez 3 minute', 'in 3 minutes');
- assert.equal(moment().add({m: 4}).fromNow(), 'čez 4 minute', 'in 4 minutes');
- assert.equal(moment().add({m: 5}).fromNow(), 'čez 5 minut', 'in 5 minutes');
- assert.equal(moment().add({h: 1}).fromNow(), 'čez eno uro', 'in an hour');
- assert.equal(moment().add({h: 2}).fromNow(), 'čez 2 uri', 'in 2 hours');
- assert.equal(moment().add({h: 3}).fromNow(), 'čez 3 ure', 'in 3 hours');
- assert.equal(moment().add({h: 4}).fromNow(), 'čez 4 ure', 'in 4 hours');
- assert.equal(moment().add({h: 5}).fromNow(), 'čez 5 ur', 'in 5 hours');
- assert.equal(moment().add({d: 1}).fromNow(), 'čez en dan', 'in a day');
- assert.equal(moment().add({d: 2}).fromNow(), 'čez 2 dni', 'in 2 days');
- assert.equal(moment().add({d: 3}).fromNow(), 'čez 3 dni', 'in 3 days');
- assert.equal(moment().add({d: 4}).fromNow(), 'čez 4 dni', 'in 4 days');
- assert.equal(moment().add({d: 5}).fromNow(), 'čez 5 dni', 'in 5 days');
- assert.equal(moment().add({M: 1}).fromNow(), 'čez en mesec', 'in a month');
- assert.equal(moment().add({M: 2}).fromNow(), 'čez 2 meseca', 'in 2 months');
- assert.equal(moment().add({M: 3}).fromNow(), 'čez 3 mesece', 'in 3 months');
- assert.equal(moment().add({M: 4}).fromNow(), 'čez 4 mesece', 'in 4 months');
- assert.equal(moment().add({M: 5}).fromNow(), 'čez 5 mesecev', 'in 5 months');
- assert.equal(moment().add({y: 1}).fromNow(), 'čez eno leto', 'in a year');
- assert.equal(moment().add({y: 2}).fromNow(), 'čez 2 leti', 'in 2 years');
- assert.equal(moment().add({y: 3}).fromNow(), 'čez 3 leta', 'in 3 years');
- assert.equal(moment().add({y: 4}).fromNow(), 'čez 4 leta', 'in 4 years');
- assert.equal(moment().add({y: 5}).fromNow(), 'čez 5 let', 'in 5 years');
- assert.equal(moment().subtract({s: 30}).fromNow(), 'pred nekaj sekundami', 'a few seconds ago');
- assert.equal(moment().subtract({m: 1}).fromNow(), 'pred eno minuto', 'a minute ago');
- assert.equal(moment().subtract({m: 2}).fromNow(), 'pred 2 minutama', '2 minutes ago');
- assert.equal(moment().subtract({m: 3}).fromNow(), 'pred 3 minutami', '3 minutes ago');
- assert.equal(moment().subtract({m: 4}).fromNow(), 'pred 4 minutami', '4 minutes ago');
- assert.equal(moment().subtract({m: 5}).fromNow(), 'pred 5 minutami', '5 minutes ago');
- assert.equal(moment().subtract({h: 1}).fromNow(), 'pred eno uro', 'an hour ago');
- assert.equal(moment().subtract({h: 2}).fromNow(), 'pred 2 urama', '2 hours ago');
- assert.equal(moment().subtract({h: 3}).fromNow(), 'pred 3 urami', '3 hours ago');
- assert.equal(moment().subtract({h: 4}).fromNow(), 'pred 4 urami', '4 hours ago');
- assert.equal(moment().subtract({h: 5}).fromNow(), 'pred 5 urami', '5 hours ago');
- assert.equal(moment().subtract({d: 1}).fromNow(), 'pred enim dnem', 'a day ago');
- assert.equal(moment().subtract({d: 2}).fromNow(), 'pred 2 dnevoma', '2 days ago');
- assert.equal(moment().subtract({d: 3}).fromNow(), 'pred 3 dnevi', '3 days ago');
- assert.equal(moment().subtract({d: 4}).fromNow(), 'pred 4 dnevi', '4 days ago');
- assert.equal(moment().subtract({d: 5}).fromNow(), 'pred 5 dnevi', '5 days ago');
- assert.equal(moment().subtract({M: 1}).fromNow(), 'pred enim mesecem', 'a month ago');
- assert.equal(moment().subtract({M: 2}).fromNow(), 'pred 2 mesecema', '2 months ago');
- assert.equal(moment().subtract({M: 3}).fromNow(), 'pred 3 meseci', '3 months ago');
- assert.equal(moment().subtract({M: 4}).fromNow(), 'pred 4 meseci', '4 months ago');
- assert.equal(moment().subtract({M: 5}).fromNow(), 'pred 5 meseci', '5 months ago');
- assert.equal(moment().subtract({y: 1}).fromNow(), 'pred enim letom', 'a year ago');
- assert.equal(moment().subtract({y: 2}).fromNow(), 'pred 2 letoma', '2 years ago');
- assert.equal(moment().subtract({y: 3}).fromNow(), 'pred 3 leti', '3 years ago');
- assert.equal(moment().subtract({y: 4}).fromNow(), 'pred 4 leti', '4 years ago');
- assert.equal(moment().subtract({y: 5}).fromNow(), 'pred 5 leti', '5 years ago');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'danes ob 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'danes ob 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'danes ob 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'jutri ob 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'danes ob 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'včeraj ob 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[v] [nedeljo] [ob] LT';
- case 3:
- return '[v] [sredo] [ob] LT';
- case 6:
- return '[v] [soboto] [ob] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[v] dddd [ob] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[prejšnjo] [nedeljo] [ob] LT';
- case 3:
- return '[prejšnjo] [sredo] [ob] LT';
- case 6:
- return '[prejšnjo] [soboto] [ob] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[prejšnji] dddd [ob] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('sq');
- test('parse', function (assert) {
- var i,
- tests = 'Janar Jan_Shkurt Shk_Mars Mar_Prill Pri_Maj Maj_Qershor Qer_Korrik Kor_Gusht Gus_Shtator Sht_Tetor Tet_Nëntor Nën_Dhjetor Dhj'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, HH:mm:ss', 'E Diel, Shkurt 14. 2010, 15:25:50'],
- ['ddd, HH', 'Die, 15'],
- ['M Mo MM MMMM MMM', '2 2. 02 Shkurt Shk'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. E Diel Die D'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'MD MD'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 Shkurt 2010'],
- ['LLL', '14 Shkurt 2010 15:25'],
- ['LLLL', 'E Diel, 14 Shkurt 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 Shk 2010'],
- ['lll', '14 Shk 2010 15:25'],
- ['llll', 'Die, 14 Shk 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), 'PD', 'before dawn');
- assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), 'MD', 'noon');
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var i,
- expected = 'Janar Jan_Shkurt Shk_Mars Mar_Prill Pri_Maj Maj_Qershor Qer_Korrik Kor_Gusht Gus_Shtator Sht_Tetor Tet_Nëntor Nën_Dhjetor Dhj'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'E Diel Die D_E Hënë Hën H_E Martë Mar Ma_E Mërkurë Mër Më_E Enjte Enj E_E Premte Pre P_E Shtunë Sht Sh'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'disa sekonda', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'një minutë', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'një minutë', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuta', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'një orë', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'një orë', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 orë', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 orë', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 orë', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'një ditë', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'një ditë', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ditë', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'një ditë', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ditë', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ditë', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'një muaj', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'një muaj', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'një muaj', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 muaj', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 muaj', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 muaj', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'një muaj', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 muaj', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'një vit', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 vite', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'një vit', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 vite', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'në disa sekonda', 'prefix');
- assert.equal(moment(0).from(30000), 'disa sekonda më parë', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'disa sekonda më parë', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'në disa sekonda', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'në 5 ditë', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Sot në 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Sot në 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Sot në 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Nesër në 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Sot në 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Dje në 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [në] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [në] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [në] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [e kaluar në] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [e kaluar në] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [e kaluar në] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('sr-cyrl');
- test('parse', function (assert) {
- var tests = 'јануар јан._фебруар феб._март мар._април апр._мај мај_јун јун_јул јул_август авг._септембар сеп._октобар окт._новембар нов._децембар дец.'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'недеља, 14. фебруар 2010, 3:25:50 pm'],
- ['ddd, hA', 'нед., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 фебруар феб.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. недеља нед. не'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14. 02. 2010'],
- ['LL', '14. фебруар 2010'],
- ['LLL', '14. фебруар 2010 15:25'],
- ['LLLL', 'недеља, 14. фебруар 2010 15:25'],
- ['l', '14. 2. 2010'],
- ['ll', '14. феб. 2010'],
- ['lll', '14. феб. 2010 15:25'],
- ['llll', 'нед., 14. феб. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'јануар јан._фебруар феб._март мар._април апр._мај мај_јун јун_јул јул_август авг._септембар сеп._октобар окт._новембар нов._децембар дец.'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'недеља нед. не_понедељак пон. по_уторак уто. ут_среда сре. ср_четвртак чет. че_петак пет. пе_субота суб. су'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'неколико секунди', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'један минут', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'један минут', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 минуте', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 минута', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'један сат', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'један сат', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 сата', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 сати', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 сати', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'дан', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'дан', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дана', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'дан', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 дана', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 дана', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'месец', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'месец', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'месец', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 месеца', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 месеца', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 месеца', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'месец', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 месеци', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'годину', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 године', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'годину', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 година', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'за неколико секунди', 'prefix');
- assert.equal(moment(0).from(30000), 'пре неколико секунди', 'prefix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'пре неколико секунди', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'за неколико секунди', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'за 5 дана', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'данас у 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'данас у 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'данас у 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'сутра у 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'данас у 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'јуче у 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[у] [недељу] [у] LT';
- case 3:
- return '[у] [среду] [у] LT';
- case 6:
- return '[у] [суботу] [у] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[у] dddd [у] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- var lastWeekDay = [
- '[прошле] [недеље] [у] LT',
- '[прошлог] [понедељка] [у] LT',
- '[прошлог] [уторка] [у] LT',
- '[прошле] [среде] [у] LT',
- '[прошлог] [четвртка] [у] LT',
- '[прошлог] [петка] [у] LT',
- '[прошле] [суботе] [у] LT'
- ];
- return lastWeekDay[d.day()];
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('sr');
- test('parse', function (assert) {
- var tests = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'nedelja, 14. februar 2010, 3:25:50 pm'],
- ['ddd, hA', 'ned., 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 februar feb.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. nedelja ned. ne'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '7 7. 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14. 02. 2010'],
- ['LL', '14. februar 2010'],
- ['LLL', '14. februar 2010 15:25'],
- ['LLLL', 'nedelja, 14. februar 2010 15:25'],
- ['l', '14. 2. 2010'],
- ['ll', '14. feb. 2010'],
- ['lll', '14. feb. 2010 15:25'],
- ['llll', 'ned., 14. feb. 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'januar jan._februar feb._mart mar._april apr._maj maj_jun jun_jul jul_avgust avg._septembar sep._oktobar okt._novembar nov._decembar dec.'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'nedelja ned. ne_ponedeljak pon. po_utorak uto. ut_sreda sre. sr_četvrtak čet. če_petak pet. pe_subota sub. su'.split('_'),
- i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'nekoliko sekundi', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'jedan minut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'jedan minut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minute', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuta', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'jedan sat', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'jedan sat', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 sata', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 sati', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 sati', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'dan', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'dan', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dana', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'dan', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dana', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dana', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mesec', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mesec', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mesec', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 meseca', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 meseca', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 meseca', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mesec', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 meseci', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'godinu', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 godine', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'godinu', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 godina', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'za nekoliko sekundi', 'prefix');
- assert.equal(moment(0).from(30000), 'pre nekoliko sekundi', 'prefix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'pre nekoliko sekundi', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'za nekoliko sekundi', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'za 5 dana', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'danas u 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'danas u 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'danas u 3:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'sutra u 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'danas u 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'juče u 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- return '[u] [nedelju] [u] LT';
- case 3:
- return '[u] [sredu] [u] LT';
- case 6:
- return '[u] [subotu] [u] LT';
- case 1:
- case 2:
- case 4:
- case 5:
- return '[u] dddd [u] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- var lastWeekDay = [
- '[prošle] [nedelje] [u] LT',
- '[prošlog] [ponedeljka] [u] LT',
- '[prošlog] [utorka] [u] LT',
- '[prošle] [srede] [u] LT',
- '[prošlog] [četvrtka] [u] LT',
- '[prošlog] [petka] [u] LT',
- '[prošle] [subote] [u] LT'
- ];
- return lastWeekDay[d.day()];
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1.', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1.', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2.', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2.', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3.', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('sv');
- test('parse', function (assert) {
- var tests = 'januari jan_februari feb_mars mar_april apr_maj maj_juni jun_juli jul_augusti aug_september sep_oktober okt_november nov_december dec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'söndag, februari 14e 2010, 3:25:50 pm'],
- ['ddd, hA', 'sön, 3PM'],
- ['M Mo MM MMMM MMM', '2 2a 02 februari feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14e 14'],
- ['d do dddd ddd dd', '0 0e söndag sön sö'],
- ['DDD DDDo DDDD', '45 45e 045'],
- ['w wo ww', '6 6e 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45e day of the year'],
- ['LTS', '15:25:50'],
- ['L', '2010-02-14'],
- ['LL', '14 februari 2010'],
- ['LLL', '14 februari 2010 15:25'],
- ['LLLL', 'söndag 14 februari 2010 15:25'],
- ['l', '2010-2-14'],
- ['ll', '14 feb 2010'],
- ['lll', '14 feb 2010 15:25'],
- ['llll', 'sön 14 feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1a', '1a');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2a', '2a');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3e', '3e');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4e', '4e');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5e', '5e');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6e', '6e');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7e', '7e');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8e', '8e');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9e', '9e');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10e', '10e');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11e', '11e');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12e', '12e');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13e', '13e');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14e', '14e');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15e', '15e');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16e', '16e');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17e', '17e');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18e', '18e');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19e', '19e');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20e', '20e');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21a', '21a');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22a', '22a');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23e', '23e');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24e', '24e');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25e', '25e');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26e', '26e');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27e', '27e');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28e', '28e');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29e', '29e');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30e', '30e');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31a', '31a');
- });
- test('format month', function (assert) {
- var expected = 'januari jan_februari feb_mars mar_april apr_maj maj_juni jun_juli jul_augusti aug_september sep_oktober okt_november nov_december dec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'söndag sön sö_måndag mån må_tisdag tis ti_onsdag ons on_torsdag tor to_fredag fre fr_lördag lör lö'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'några sekunder', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'en minut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'en minut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuter', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuter', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'en timme', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'en timme', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 timmar', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 timmar', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 timmar', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'en dag', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'en dag', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 dagar', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'en dag', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 dagar', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 dagar', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'en månad', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'en månad', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'en månad', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 månader', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 månader', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 månader', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'en månad', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 månader', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ett år', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 år', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ett år', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 år', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'om några sekunder', 'prefix');
- assert.equal(moment(0).from(30000), 'för några sekunder sedan', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'för några sekunder sedan', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'om några sekunder', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'om 5 dagar', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Idag 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Idag 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Idag 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Imorgon 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Idag 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Igår 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[På] dddd LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[På] dddd LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[På] dddd LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[I] dddd[s] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[I] dddd[s] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[I] dddd[s] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52a', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1a', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1a', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2a', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2a', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('sw');
- test('parse', function (assert) {
- var tests = 'Januari Jan_Februari Feb_Machi Mac_Aprili Apr_Mei Mei_Juni Jun_Julai Jul_Agosti Ago_Septemba Sep_Oktoba Okt_Novemba Nov_Desemba Des'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Jumapili, Februari 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'Jpl, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 Februari Feb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 Jumapili Jpl J2'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '7 7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[siku] DDDo [ya mwaka]', 'siku 45 ya mwaka'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 Februari 2010'],
- ['LLL', '14 Februari 2010 15:25'],
- ['LLLL', 'Jumapili, 14 Februari 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 Feb 2010'],
- ['lll', '14 Feb 2010 15:25'],
- ['llll', 'Jpl, 14 Feb 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'Januari Jan_Februari Feb_Machi Mac_Aprili Apr_Mei Mei_Juni Jun_Julai Jul_Agosti Ago_Septemba Sep_Oktoba Okt_Novemba Nov_Desemba Des'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Jumapili Jpl J2_Jumatatu Jtat J3_Jumanne Jnne J4_Jumatano Jtan J5_Alhamisi Alh Al_Ijumaa Ijm Ij_Jumamosi Jmos J1'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'hivi punde', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'dakika moja', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'dakika moja', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'dakika 2', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'dakika 44', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'saa limoja', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'saa limoja', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'masaa 2', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'masaa 5', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'masaa 21', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'siku moja', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'siku moja', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'masiku 2', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'siku moja', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'masiku 5', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'masiku 25', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'mwezi mmoja', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'mwezi mmoja', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'mwezi mmoja', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'miezi 2', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'miezi 2', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'miezi 3', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'mwezi mmoja', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'miezi 5', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'mwaka mmoja', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'miaka 2', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'mwaka mmoja', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'miaka 5', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'hivi punde baadaye', 'prefix');
- assert.equal(moment(0).from(30000), 'tokea hivi punde', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'tokea hivi punde', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'hivi punde baadaye', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'masiku 5 baadaye', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'leo saa 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'leo saa 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'leo saa 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'kesho saa 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'leo saa 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'jana 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[wiki ijayo] dddd [saat] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[wiki ijayo] dddd [saat] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[wiki ijayo] dddd [saat] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[wiki iliyopita] dddd [saat] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[wiki iliyopita] dddd [saat] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[wiki iliyopita] dddd [saat] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('ta');
- test('parse', function (assert) {
- var tests = 'ஜனவரி ஜனவரி_பிப்ரவரி பிப்ரவரி_மார்ச் மார்ச்_ஏப்ரல் ஏப்ரல்_மே மே_ஜூன் ஜூன்_ஜூலை ஜூலை_ஆகஸ்ட் ஆகஸ்ட்_செப்டெம்பர் செப்டெம்பர்_அக்டோபர் அக்டோபர்_நவம்பர் நவம்பர்_டிசம்பர் டிசம்பர்'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'ஞாயிற்றுக்கிழமை, பிப்ரவரி ௧௪வது ௨௦௧௦, ௩:௨௫:௫௦ எற்பாடு'],
- ['ddd, hA', 'ஞாயிறு, ௩ எற்பாடு'],
- ['M Mo MM MMMM MMM', '௨ ௨வது ௦௨ பிப்ரவரி பிப்ரவரி'],
- ['YYYY YY', '௨௦௧௦ ௧௦'],
- ['D Do DD', '௧௪ ௧௪வது ௧௪'],
- ['d do dddd ddd dd', '௦ ௦வது ஞாயிற்றுக்கிழமை ஞாயிறு ஞா'],
- ['DDD DDDo DDDD', '௪௫ ௪௫வது ௦௪௫'],
- ['w wo ww', '௮ ௮வது ௦௮'],
- ['h hh', '௩ ௦௩'],
- ['H HH', '௧௫ ௧௫'],
- ['m mm', '௨௫ ௨௫'],
- ['s ss', '௫௦ ௫௦'],
- ['a A', ' எற்பாடு எற்பாடு'],
- ['[ஆண்டின்] DDDo [நாள்]', 'ஆண்டின் ௪௫வது நாள்'],
- ['LTS', '௧௫:௨௫:௫௦'],
- ['L', '௧௪/௦௨/௨௦௧௦'],
- ['LL', '௧௪ பிப்ரவரி ௨௦௧௦'],
- ['LLL', '௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫'],
- ['LLLL', 'ஞாயிற்றுக்கிழமை, ௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫'],
- ['l', '௧௪/௨/௨௦௧௦'],
- ['ll', '௧௪ பிப்ரவரி ௨௦௧௦'],
- ['lll', '௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫'],
- ['llll', 'ஞாயிறு, ௧௪ பிப்ரவரி ௨௦௧௦, ௧௫:௨௫']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '௧வது', '௧வது');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '௨வது', '௨வது');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '௩வது', '௩வது');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '௪வது', '௪வது');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '௫வது', '௫வது');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '௬வது', '௬வது');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '௭வது', '௭வது');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '௮வது', '௮வது');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '௯வது', '௯வது');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '௧௦வது', '௧௦வது');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '௧௧வது', '௧௧வது');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '௧௨வது', '௧௨வது');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '௧௩வது', '௧௩வது');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '௧௪வது', '௧௪வது');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '௧௫வது', '௧௫வது');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '௧௬வது', '௧௬வது');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '௧௭வது', '௧௭வது');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '௧௮வது', '௧௮வது');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '௧௯வது', '௧௯வது');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '௨௦வது', '௨௦வது');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '௨௧வது', '௨௧வது');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '௨௨வது', '௨௨வது');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '௨௩வது', '௨௩வது');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '௨௪வது', '௨௪வது');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '௨௫வது', '௨௫வது');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '௨௬வது', '௨௬வது');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '௨௭வது', '௨௭வது');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '௨௮வது', '௨௮வது');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '௨௯வது', '௨௯வது');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '௩௦வது', '௩௦வது');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '௩௧வது', '௩௧வது');
- });
- test('format month', function (assert) {
- var expected = 'ஜனவரி ஜனவரி_பிப்ரவரி பிப்ரவரி_மார்ச் மார்ச்_ஏப்ரல் ஏப்ரல்_மே மே_ஜூன் ஜூன்_ஜூலை ஜூலை_ஆகஸ்ட் ஆகஸ்ட்_செப்டெம்பர் செப்டெம்பர்_அக்டோபர் அக்டோபர்_நவம்பர் நவம்பர்_டிசம்பர் டிசம்பர்'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'ஞாயிற்றுக்கிழமை ஞாயிறு ஞா_திங்கட்கிழமை திங்கள் தி_செவ்வாய்கிழமை செவ்வாய் செ_புதன்கிழமை புதன் பு_வியாழக்கிழமை வியாழன் வி_வெள்ளிக்கிழமை வெள்ளி வெ_சனிக்கிழமை சனி ச'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ஒரு சில விநாடிகள்', '44 விநாடிகள் = ஒரு சில விநாடிகள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ஒரு நிமிடம்', '45 விநாடிகள் = ஒரு நிமிடம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ஒரு நிமிடம்', '89 விநாடிகள் = ஒரு நிமிடம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '௨ நிமிடங்கள்', '90 விநாடிகள் = ௨ நிமிடங்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '௪௪ நிமிடங்கள்', '44 நிமிடங்கள் = 44 நிமிடங்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ஒரு மணி நேரம்', '45 நிமிடங்கள் = ஒரு மணி நேரம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ஒரு மணி நேரம்', '89 நிமிடங்கள் = ஒரு மணி நேரம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '௨ மணி நேரம்', '90 நிமிடங்கள் = ௨ மணி நேரம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '௫ மணி நேரம்', '5 மணி நேரம் = 5 மணி நேரம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '௨௧ மணி நேரம்', '௨௧ மணி நேரம் = ௨௧ மணி நேரம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ஒரு நாள்', '௨௨ மணி நேரம் = ஒரு நாள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ஒரு நாள்', '௩5 மணி நேரம் = ஒரு நாள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '௨ நாட்கள்', '௩6 மணி நேரம் = ௨ days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ஒரு நாள்', '௧ நாள் = ஒரு நாள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '௫ நாட்கள்', '5 நாட்கள் = 5 நாட்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '௨௫ நாட்கள்', '௨5 நாட்கள் = ௨5 நாட்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ஒரு மாதம்', '௨6 நாட்கள் = ஒரு மாதம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ஒரு மாதம்', '௩0 நாட்கள் = ஒரு மாதம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ஒரு மாதம்', '45 நாட்கள் = ஒரு மாதம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '௨ மாதங்கள்', '46 நாட்கள் = ௨ மாதங்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '௨ மாதங்கள்', '75 நாட்கள் = ௨ மாதங்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '௩ மாதங்கள்', '76 நாட்கள் = ௩ மாதங்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ஒரு மாதம்', '௧ மாதம் = ஒரு மாதம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '௫ மாதங்கள்', '5 மாதங்கள் = 5 மாதங்கள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ஒரு வருடம்', '௩45 நாட்கள் = ஒரு வருடம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '௨ ஆண்டுகள்', '548 நாட்கள் = ௨ ஆண்டுகள்');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ஒரு வருடம்', '௧ வருடம் = ஒரு வருடம்');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '௫ ஆண்டுகள்', '5 ஆண்டுகள் = 5 ஆண்டுகள்');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'ஒரு சில விநாடிகள் இல்', 'prefix');
- assert.equal(moment(0).from(30000), 'ஒரு சில விநாடிகள் முன்', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'ஒரு சில விநாடிகள் முன்', 'இப்போது இருந்து கடந்த காலத்தில் காட்ட வேண்டும்');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'ஒரு சில விநாடிகள் இல்', 'ஒரு சில விநாடிகள் இல்');
- assert.equal(moment().add({d: 5}).fromNow(), '௫ நாட்கள் இல்', '5 நாட்கள் இல்');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'இன்று ௦௨:௦௦', 'இன்று 02:00');
- assert.equal(moment(a).add({m: 25}).calendar(), 'இன்று ௦௨:௨௫', 'இன்று 02:25');
- assert.equal(moment(a).add({h: 1}).calendar(), 'இன்று ௦௩:௦௦', 'இன்று 03:00');
- assert.equal(moment(a).add({d: 1}).calendar(), 'நாளை ௦௨:௦௦', 'நாளை 02:00');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'இன்று ௦௧:௦௦', 'இன்று 0௧:00');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'நேற்று ௦௨:௦௦', 'நேற்று 02:00');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd, LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd, LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd, LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[கடந்த வாரம்] dddd, LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[கடந்த வாரம்] dddd, LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[கடந்த வாரம்] dddd, LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 0, 30]).format('a'), ' யாமம்', '(after) midnight');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), ' வைகறை', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), ' காலை', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), ' எற்பாடு', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), ' எற்பாடு', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), ' மாலை', 'late evening');
- assert.equal(moment([2011, 2, 23, 23, 30]).format('a'), ' யாமம்', '(before) midnight');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('te');
- test('parse', function (assert) {
- var tests = 'జనవరి జన._ఫిబ్రవరి ఫిబ్ర._మార్చి మార్చి_ఏప్రిల్ ఏప్రి._మే మే_జూన్ జూన్_జూలై జూలై_ఆగస్టు ఆగ._సెప్టెంబర్ సెప్._అక్టోబర్ అక్టో._నవంబర్ నవ._డిసెంబర్ డిసె.'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do తేదీ MMMM YYYY, a h:mm:ss', 'ఆదివారం, 14వ తేదీ ఫిబ్రవరి 2010, మధ్యాహ్నం 3:25:50'],
- ['ddd, a h గంటలు', 'ఆది, మధ్యాహ్నం 3 గంటలు'],
- ['M Mo నెల MM MMMM MMM', '2 2వ నెల 02 ఫిబ్రవరి ఫిబ్ర.'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14వ 14'],
- ['d do dddd ddd dd', '0 0వ ఆదివారం ఆది ఆ'],
- ['DDD DDDo DDDD', '45 45వ 045'],
- ['w wo ww', '8 8వ 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'మధ్యాహ్నం మధ్యాహ్నం'],
- ['LTS', 'మధ్యాహ్నం 3:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 ఫిబ్రవరి 2010'],
- ['LLL', '14 ఫిబ్రవరి 2010, మధ్యాహ్నం 3:25'],
- ['LLLL', 'ఆదివారం, 14 ఫిబ్రవరి 2010, మధ్యాహ్నం 3:25'],
- ['l', '14/2/2010'],
- ['ll', '14 ఫిబ్ర. 2010'],
- ['lll', '14 ఫిబ్ర. 2010, మధ్యాహ్నం 3:25'],
- ['llll', 'ఆది, 14 ఫిబ్ర. 2010, మధ్యాహ్నం 3:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1వ', '1వ');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2వ', '2వ');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3వ', '3వ');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4వ', '4వ');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5వ', '5వ');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6వ', '6వ');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7వ', '7వ');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8వ', '8వ');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9వ', '9వ');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10వ', '10వ');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11వ', '11వ');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12వ', '12వ');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13వ', '13వ');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14వ', '14వ');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15వ', '15వ');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16వ', '16వ');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17వ', '17వ');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18వ', '18వ');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19వ', '19వ');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20వ', '20వ');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21వ', '21వ');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22వ', '22వ');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23వ', '23వ');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24వ', '24వ');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25వ', '25వ');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26వ', '26వ');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27వ', '27వ');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28వ', '28వ');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29వ', '29వ');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30వ', '30వ');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31వ', '31వ');
- });
- test('format month', function (assert) {
- var expected = 'జనవరి జన._ఫిబ్రవరి ఫిబ్ర._మార్చి మార్చి_ఏప్రిల్ ఏప్రి._మే మే_జూన్ జూన్_జూలై జూలై_ఆగస్టు ఆగ._సెప్టెంబర్ సెప్._అక్టోబర్ అక్టో._నవంబర్ నవ._డిసెంబర్ డిసె.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'ఆదివారం ఆది ఆ_సోమవారం సోమ సో_మంగళవారం మంగళ మం_బుధవారం బుధ బు_గురువారం గురు గు_శుక్రవారం శుక్ర శు_శనివారం శని శ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'కొన్ని క్షణాలు', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ఒక నిమిషం', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ఒక నిమిషం', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 నిమిషాలు', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 నిమిషాలు', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ఒక గంట', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ఒక గంట', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 గంటలు', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 గంటలు', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 గంటలు', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ఒక రోజు', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ఒక రోజు', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 రోజులు', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ఒక రోజు', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 రోజులు', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 రోజులు', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ఒక నెల', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ఒక నెల', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ఒక నెల', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 నెలలు', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 నెలలు', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 నెలలు', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ఒక నెల', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 నెలలు', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ఒక సంవత్సరం', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 సంవత్సరాలు', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ఒక సంవత్సరం', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 సంవత్సరాలు', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'కొన్ని క్షణాలు లో', 'prefix');
- assert.equal(moment(0).from(30000), 'కొన్ని క్షణాలు క్రితం', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'కొన్ని క్షణాలు క్రితం', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'కొన్ని క్షణాలు లో', 'కొన్ని క్షణాలు లో');
- assert.equal(moment().add({d: 5}).fromNow(), '5 రోజులు లో', '5 రోజులు లో');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'నేడు రాత్రి 2:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'నేడు రాత్రి 2:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 3}).calendar(), 'నేడు ఉదయం 5:00', 'Now plus 3 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'రేపు రాత్రి 2:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'నేడు రాత్రి 1:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'నిన్న రాత్రి 2:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd[,] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[గత] dddd[,] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[గత] dddd[,] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[గత] dddd[,] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem invariant', function (assert) {
- assert.equal(moment([2011, 2, 23, 2, 30]).format('a'), 'రాత్రి', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('a'), 'ఉదయం', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('a'), 'మధ్యాహ్నం', 'during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('a'), 'సాయంత్రం', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('a'), 'సాయంత్రం', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('a'), 'రాత్రి', 'night');
- assert.equal(moment([2011, 2, 23, 2, 30]).format('A'), 'రాత్రి', 'before dawn');
- assert.equal(moment([2011, 2, 23, 9, 30]).format('A'), 'ఉదయం', 'morning');
- assert.equal(moment([2011, 2, 23, 14, 30]).format('A'), 'మధ్యాహ్నం', ' during day');
- assert.equal(moment([2011, 2, 23, 17, 30]).format('A'), 'సాయంత్రం', 'evening');
- assert.equal(moment([2011, 2, 23, 19, 30]).format('A'), 'సాయంత్రం', 'late evening');
- assert.equal(moment([2011, 2, 23, 21, 20]).format('A'), 'రాత్రి', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1వ', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1వ', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2వ', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2వ', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3వ', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('th');
- test('parse', function (assert) {
- var tests = 'มกราคม มกรา_กุมภาพันธ์ กุมภา_มีนาคม มีนา_เมษายน เมษา_พฤษภาคม พฤษภา_มิถุนายน มิถุนา_กรกฎาคม กรกฎา_สิงหาคม สิงหา_กันยายน กันยา_ตุลาคม ตุลา_พฤศจิกายน พฤศจิกา_ธันวาคม ธันวา'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, h:mm:ss a', 'อาทิตย์, 14 กุมภาพันธ์ 2010, 3:25:50 หลังเที่ยง'],
- ['ddd, h A', 'อาทิตย์, 3 หลังเที่ยง'],
- ['M Mo MM MMMM MMM', '2 2 02 กุมภาพันธ์ กุมภา'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 อาทิตย์ อาทิตย์ อา.'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'หลังเที่ยง หลังเที่ยง'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15 นาฬิกา 25 นาที 50 วินาที'],
- ['L', '2010/02/14'],
- ['LL', '14 กุมภาพันธ์ 2010'],
- ['LLL', '14 กุมภาพันธ์ 2010 เวลา 15 นาฬิกา 25 นาที'],
- ['LLLL', 'วันอาทิตย์ที่ 14 กุมภาพันธ์ 2010 เวลา 15 นาฬิกา 25 นาที'],
- ['l', '2010/2/14'],
- ['ll', '14 กุมภา 2010'],
- ['lll', '14 กุมภา 2010 เวลา 15 นาฬิกา 25 นาที'],
- ['llll', 'วันอาทิตย์ที่ 14 กุมภา 2010 เวลา 15 นาฬิกา 25 นาที']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = 'มกราคม มกรา_กุมภาพันธ์ กุมภา_มีนาคม มีนา_เมษายน เมษา_พฤษภาคม พฤษภา_มิถุนายน มิถุนา_กรกฎาคม กรกฎา_สิงหาคม สิงหา_กันยายน กันยา_ตุลาคม ตุลา_พฤศจิกายน พฤศจิกา_ธันวาคม ธันวา'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'อาทิตย์ อาทิตย์ อา._จันทร์ จันทร์ จ._อังคาร อังคาร อ._พุธ พุธ พ._พฤหัสบดี พฤหัส พฤ._ศุกร์ ศุกร์ ศ._เสาร์ เสาร์ ส.'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ไม่กี่วินาที', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 นาที', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 นาที', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 นาที', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 นาที', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 ชั่วโมง', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 ชั่วโมง', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ชั่วโมง', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ชั่วโมง', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ชั่วโมง', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 วัน', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 วัน', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 วัน', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 วัน', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 วัน', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 วัน', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 เดือน', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 เดือน', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 เดือน', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 เดือน', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 เดือน', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 เดือน', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 เดือน', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 เดือน', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 ปี', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ปี', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 ปี', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ปี', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'อีก ไม่กี่วินาที', 'prefix');
- assert.equal(moment(0).from(30000), 'ไม่กี่วินาทีที่แล้ว', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'ไม่กี่วินาทีที่แล้ว', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'อีก ไม่กี่วินาที', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'อีก 5 วัน', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'วันนี้ เวลา 2 นาฬิกา 0 นาที', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'วันนี้ เวลา 2 นาฬิกา 25 นาที', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'วันนี้ เวลา 3 นาฬิกา 0 นาที', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'พรุ่งนี้ เวลา 2 นาฬิกา 0 นาที', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'วันนี้ เวลา 1 นาฬิกา 0 นาที', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'เมื่อวานนี้ เวลา 2 นาฬิกา 0 นาที', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd[หน้า เวลา] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd[หน้า เวลา] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd[หน้า เวลา] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[วัน]dddd[ที่แล้ว เวลา] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[วัน]dddd[ที่แล้ว เวลา] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[วัน]dddd[ที่แล้ว เวลา] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1', 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2', 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('tl-ph');
- test('parse', function (assert) {
- var tests = 'Enero Ene_Pebrero Peb_Marso Mar_Abril Abr_Mayo May_Hunyo Hun_Hulyo Hul_Agosto Ago_Setyembre Set_Oktubre Okt_Nobyembre Nob_Disyembre Dis'.split('_'),
- i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Linggo, Pebrero 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'Lin, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 Pebrero Peb'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 Linggo Lin Li'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '6 6 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15:25:50'],
- ['L', '02/14/2010'],
- ['LL', 'Pebrero 14, 2010'],
- ['LLL', 'Pebrero 14, 2010 15:25'],
- ['LLLL', 'Linggo, Pebrero 14, 2010 15:25'],
- ['l', '2/14/2010'],
- ['ll', 'Peb 14, 2010'],
- ['lll', 'Peb 14, 2010 15:25'],
- ['llll', 'Lin, Peb 14, 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'Enero Ene_Pebrero Peb_Marso Mar_Abril Abr_Mayo May_Hunyo Hun_Hulyo Hul_Agosto Ago_Setyembre Set_Oktubre Okt_Nobyembre Nob_Disyembre Dis'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Linggo Lin Li_Lunes Lun Lu_Martes Mar Ma_Miyerkules Miy Mi_Huwebes Huw Hu_Biyernes Biy Bi_Sabado Sab Sab'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ilang segundo', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'isang minuto', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'isang minuto', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuto', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuto', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'isang oras', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'isang oras', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 oras', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 oras', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 oras', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'isang araw', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'isang araw', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 araw', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'isang araw', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 araw', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 araw', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'isang buwan', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'isang buwan', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'isang buwan', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 buwan', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 buwan', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 buwan', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'isang buwan', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 buwan', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'isang taon', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 taon', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'isang taon', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 taon', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'sa loob ng ilang segundo', 'prefix');
- assert.equal(moment(0).from(30000), 'ilang segundo ang nakalipas', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'sa loob ng ilang segundo', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'sa loob ng 5 araw', 'in 5 days');
- });
- test('same day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Ngayon sa 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Ngayon sa 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Ngayon sa 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Bukas sa 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Ngayon sa 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Kahapon sa 02:00', 'yesterday at the same time');
- });
- test('same next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [sa] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [sa] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [sa] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('same last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [huling linggo] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [huling linggo] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [huling linggo] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('same all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('tlh');
- //Current parsing method doesn't allow parsing correctly months 10, 11 and 12.
- /*
- * test('parse', function (assert) {
- var tests = 'tera’ jar wa’.jar wa’_tera’ jar cha’.jar cha’_tera’ jar wej.jar wej_tera’ jar loS.jar loS_tera’ jar vagh.jar vagh_tera’ jar jav.jar jav_tera’ jar Soch.jar Soch_tera’ jar chorgh.jar chorgh_tera’ jar Hut.jar Hut_tera’ jar wa’maH.jar wa’maH_tera’ jar wa’maH wa’.jar wa’maH wa’_tera’ jar wa’maH cha’.jar wa’maH cha’'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split('.');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- */
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'lojmItjaj, tera’ jar cha’ 14. 2010, 3:25:50 pm'],
- ['ddd, hA', 'lojmItjaj, 3PM'],
- ['M Mo MM MMMM MMM', '2 2. 02 tera’ jar cha’ jar cha’'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. lojmItjaj lojmItjaj lojmItjaj'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[DIS jaj] DDDo', 'DIS jaj 45.'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 tera’ jar cha’ 2010'],
- ['LLL', '14 tera’ jar cha’ 2010 15:25'],
- ['LLLL', 'lojmItjaj, 14 tera’ jar cha’ 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 jar cha’ 2010'],
- ['lll', '14 jar cha’ 2010 15:25'],
- ['llll', 'lojmItjaj, 14 jar cha’ 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'tera’ jar wa’ jar wa’_tera’ jar cha’ jar cha’_tera’ jar wej jar wej_tera’ jar loS jar loS_tera’ jar vagh jar vagh_tera’ jar jav jar jav_tera’ jar Soch jar Soch_tera’ jar chorgh jar chorgh_tera’ jar Hut jar Hut_tera’ jar wa’maH jar wa’maH_tera’ jar wa’maH wa’ jar wa’maH wa’_tera’ jar wa’maH cha’ jar wa’maH cha’'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'lojmItjaj lojmItjaj lojmItjaj_DaSjaj DaSjaj DaSjaj_povjaj povjaj povjaj_ghItlhjaj ghItlhjaj ghItlhjaj_loghjaj loghjaj loghjaj_buqjaj buqjaj buqjaj_ghInjaj ghInjaj ghInjaj'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'puS lup', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'wa’ tup', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'wa’ tup', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), 'cha’ tup', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), 'loSmaH loS tup', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'wa’ rep', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'wa’ rep', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), 'cha’ rep', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), 'vagh rep', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), 'cha’maH wa’ rep', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'wa’ jaj', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'wa’ jaj', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), 'cha’ jaj', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'wa’ jaj', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), 'vagh jaj', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), 'cha’maH vagh jaj', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'wa’ jar', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'wa’ jar', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'wa’ jar', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), 'cha’ jar', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), 'cha’ jar', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), 'wej jar', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'wa’ jar', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), 'vagh jar', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'wa’ DIS', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), 'cha’ DIS', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'wa’ DIS', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), 'vagh DIS', '5 years = 5 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 112}), true), 'wa’vatlh wa’maH cha’ DIS', '112 years = 112 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 122}), true), 'wa’vatlh cha’maH cha’ DIS', '122 years = 122 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 213}), true), 'cha’vatlh wa’maH wej DIS', '213 years = 213 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 223}), true), 'cha’vatlh cha’maH wej DIS', '223 years = 223 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'puS lup pIq', 'suffix');
- assert.equal(moment(0).from(30000), 'puS lup ret', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'puS lup ret', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'puS lup pIq', 'in a few seconds');
- assert.equal(moment().add({h: 1}).fromNow(), 'wa’ rep pIq', 'in an hour');
- assert.equal(moment().add({d: 5}).fromNow(), 'vagh leS', 'in 5 days');
- assert.equal(moment().add({M: 2}).fromNow(), 'cha’ waQ', 'in 2 months');
- assert.equal(moment().add({y: 1}).fromNow(), 'wa’ nem', 'in a year');
- assert.equal(moment().add({s: -30}).fromNow(), 'puS lup ret', 'a few seconds ago');
- assert.equal(moment().add({h: -1}).fromNow(), 'wa’ rep ret', 'an hour ago');
- assert.equal(moment().add({d: -5}).fromNow(), 'vagh Hu’', '5 days ago');
- assert.equal(moment().add({M: -2}).fromNow(), 'cha’ wen', '2 months ago');
- assert.equal(moment().add({y: -1}).fromNow(), 'wa’ ben', 'a year ago');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'DaHjaj 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'DaHjaj 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'DaHjaj 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'wa’leS 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'DaHjaj 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'wa’Hu’ 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('LLL'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('LLL'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('LLL'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('LLL'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('LLL'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('LLL'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('tr');
- test('parse', function (assert) {
- var tests = 'Ocak Oca_Şubat Şub_Mart Mar_Nisan Nis_Mayıs May_Haziran Haz_Temmuz Tem_Ağustos Ağu_Eylül Eyl_Ekim Eki_Kasım Kas_Aralık Ara'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'Pazar, Şubat 14\'üncü 2010, 3:25:50 pm'],
- ['ddd, hA', 'Paz, 3PM'],
- ['M Mo MM MMMM MMM', '2 2\'nci 02 Şubat Şub'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14\'üncü 14'],
- ['d do dddd ddd dd', '0 0\'ıncı Pazar Paz Pz'],
- ['DDD DDDo DDDD', '45 45\'inci 045'],
- ['w wo ww', '7 7\'nci 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[yılın] DDDo [günü]', 'yılın 45\'inci günü'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 Şubat 2010'],
- ['LLL', '14 Şubat 2010 15:25'],
- ['LLLL', 'Pazar, 14 Şubat 2010 15:25'],
- ['l', '14.2.2010'],
- ['ll', '14 Şub 2010'],
- ['lll', '14 Şub 2010 15:25'],
- ['llll', 'Paz, 14 Şub 2010 15:25']
- ],
- DDDo = [
- [359, '360\'ıncı'],
- [199, '200\'üncü'],
- [149, '150\'nci']
- ],
- dt = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- DDDoDt,
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(dt.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- for (i = 0; i < DDDo.length; i++) {
- DDDoDt = moment([2010]);
- assert.equal(DDDoDt.add(DDDo[i][0], 'days').format('DDDo'), DDDo[i][1], DDDo[i][0] + ' ---> ' + DDDo[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1\'inci', '1st');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2\'nci', '2nd');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3\'üncü', '3rd');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4\'üncü', '4th');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5\'inci', '5th');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6\'ncı', '6th');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7\'nci', '7th');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8\'inci', '8th');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9\'uncu', '9th');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10\'uncu', '10th');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11\'inci', '11th');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12\'nci', '12th');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13\'üncü', '13th');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14\'üncü', '14th');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15\'inci', '15th');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16\'ncı', '16th');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17\'nci', '17th');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18\'inci', '18th');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19\'uncu', '19th');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20\'nci', '20th');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21\'inci', '21th');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22\'nci', '22th');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23\'üncü', '23th');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24\'üncü', '24th');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25\'inci', '25th');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26\'ncı', '26th');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27\'nci', '27th');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28\'inci', '28th');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29\'uncu', '29th');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30\'uncu', '30th');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31\'inci', '31st');
- });
- test('format month', function (assert) {
- var expected = 'Ocak Oca_Şubat Şub_Mart Mar_Nisan Nis_Mayıs May_Haziran Haz_Temmuz Tem_Ağustos Ağu_Eylül Eyl_Ekim Eki_Kasım Kas_Aralık Ara'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Pazar Paz Pz_Pazartesi Pts Pt_Salı Sal Sa_Çarşamba Çar Ça_Perşembe Per Pe_Cuma Cum Cu_Cumartesi Cts Ct'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'birkaç saniye', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'bir dakika', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'bir dakika', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 dakika', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 dakika', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'bir saat', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'bir saat', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 saat', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 saat', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 saat', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'bir gün', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'bir gün', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 gün', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'bir gün', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 gün', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 gün', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'bir ay', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'bir ay', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'bir ay', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ay', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ay', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ay', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'bir ay', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ay', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'bir yıl', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 yıl', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'bir yıl', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 yıl', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'birkaç saniye sonra', 'prefix');
- assert.equal(moment(0).from(30000), 'birkaç saniye önce', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'birkaç saniye önce', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'birkaç saniye sonra', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 gün sonra', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'bugün saat 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'bugün saat 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'bugün saat 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'yarın saat 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'bugün saat 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'dün 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[haftaya] dddd [saat] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[haftaya] dddd [saat] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[haftaya] dddd [saat] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[geçen hafta] dddd [saat] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[geçen hafta] dddd [saat] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[geçen hafta] dddd [saat] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1\'inci', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1\'inci', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2\'nci', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2\'nci', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3\'üncü', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('tzl');
- test('parse', function (assert) {
- var tests = 'Januar Jan_Fevraglh Fev_Març Mar_Avrïu Avr_Mai Mai_Gün Gün_Julia Jul_Guscht Gus_Setemvar Set_Listopäts Lis_Noemvar Noe_Zecemvar Zec'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h.mm.ss a', 'Súladi, Fevraglh 14. 2010, 3.25.50 d\'o'],
- ['ddd, hA', 'Súl, 3D\'O'],
- ['M Mo MM MMMM MMM', '2 2. 02 Fevraglh Fev'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14. 14'],
- ['d do dddd ddd dd', '0 0. Súladi Súl Sú'],
- ['DDD DDDo DDDD', '45 45. 045'],
- ['w wo ww', '6 6. 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'd\'o D\'O'],
- ['[the] DDDo [day of the year]', 'the 45. day of the year'],
- ['LTS', '15.25.50'],
- ['L', '14.02.2010'],
- ['LL', '14. Fevraglh dallas 2010'],
- ['LLL', '14. Fevraglh dallas 2010 15.25'],
- ['LLLL', 'Súladi, li 14. Fevraglh dallas 2010 15.25'],
- ['l', '14.2.2010'],
- ['ll', '14. Fev dallas 2010'],
- ['lll', '14. Fev dallas 2010 15.25'],
- ['llll', 'Súl, li 14. Fev dallas 2010 15.25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.');
- });
- test('format month', function (assert) {
- var expected = 'Januar Jan_Fevraglh Fev_Març Mar_Avrïu Avr_Mai Mai_Gün Gün_Julia Jul_Guscht Gus_Setemvar Set_Listopäts Lis_Noemvar Noe_Zecemvar Zec'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Súladi Súl Sú_Lúneçi Lún Lú_Maitzi Mai Ma_Márcuri Már Má_Xhúadi Xhú Xh_Viénerçi Vié Vi_Sáturi Sát Sá'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'viensas secunds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '\'n míut', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '\'n míut', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 míuts', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 míuts', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '\'n þora', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '\'n þora', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 þoras', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 þoras', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 þoras', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '\'n ziua', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '\'n ziua', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ziuas', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '\'n ziua', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ziuas', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ziuas', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '\'n mes', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '\'n mes', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '\'n mes', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 mesen', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 mesen', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 mesen', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '\'n mes', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 mesen', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '\'n ar', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ars', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '\'n ar', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ars', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'osprei viensas secunds', 'prefix');
- assert.equal(moment(0).from(30000), 'ja\'iensas secunds', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'ja\'iensas secunds', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'osprei viensas secunds', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'osprei 5 ziuas', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'oxhi à 02.00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'oxhi à 02.25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'oxhi à 03.00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'demà à 02.00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'oxhi à 01.00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ieiri à 02.00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [à] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[sür el] dddd [lasteu à] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[sür el] dddd [lasteu à] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[sür el] dddd [lasteu à] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- // Monday is the first day of the week.
- // The week that contains Jan 4th is the first week of the year.
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52.', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1.', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1.', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2.', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2.', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('tzm-latn');
- test('parse', function (assert) {
- var tests = 'innayr innayr_brˤayrˤ brˤayrˤ_marˤsˤ marˤsˤ_ibrir ibrir_mayyw mayyw_ywnyw ywnyw_ywlywz ywlywz_ɣwšt ɣwšt_šwtanbir šwtanbir_ktˤwbrˤ ktˤwbrˤ_nwwanbir nwwanbir_dwjnbir dwjnbir'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'asamas, brˤayrˤ 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'asamas, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 brˤayrˤ brˤayrˤ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 asamas asamas asamas'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 brˤayrˤ 2010'],
- ['LLL', '14 brˤayrˤ 2010 15:25'],
- ['LLLL', 'asamas 14 brˤayrˤ 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 brˤayrˤ 2010'],
- ['lll', '14 brˤayrˤ 2010 15:25'],
- ['llll', 'asamas 14 brˤayrˤ 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'innayr innayr_brˤayrˤ brˤayrˤ_marˤsˤ marˤsˤ_ibrir ibrir_mayyw mayyw_ywnyw ywnyw_ywlywz ywlywz_ɣwšt ɣwšt_šwtanbir šwtanbir_ktˤwbrˤ ktˤwbrˤ_nwwanbir nwwanbir_dwjnbir dwjnbir'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'asamas asamas asamas_aynas aynas aynas_asinas asinas asinas_akras akras akras_akwas akwas akwas_asimwas asimwas asimwas_asiḍyas asiḍyas asiḍyas'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'imik', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'minuḍ', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'minuḍ', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 minuḍ', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 minuḍ', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'saɛa', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'saɛa', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 tassaɛin', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 tassaɛin', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 tassaɛin', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ass', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ass', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ossan', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ass', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ossan', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ossan', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ayowr', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ayowr', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ayowr', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 iyyirn', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 iyyirn', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 iyyirn', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ayowr', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 iyyirn', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'asgas', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 isgasn', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'asgas', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 isgasn', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'dadkh s yan imik', 'prefix');
- assert.equal(moment(0).from(30000), 'yan imik', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'yan imik', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'dadkh s yan imik', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'dadkh s yan 5 ossan', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'asdkh g 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'asdkh g 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'asdkh g 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'aska g 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'asdkh g 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'assant g 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [g] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 31]).week(), 1, 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).week(), 1, 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).week(), 2, 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 30]).week(), 1, 'Dec 30 2006 should be week 1');
- assert.equal(moment([2007, 0, 5]).week(), 1, 'Jan 5 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 2, 'Jan 6 2007 should be week 2');
- assert.equal(moment([2007, 0, 12]).week(), 2, 'Jan 12 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 3, 'Jan 13 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 1, 'Dec 29 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 4]).week(), 1, 'Jan 4 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 2, 'Jan 5 2008 should be week 2');
- assert.equal(moment([2008, 0, 11]).week(), 2, 'Jan 11 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 3, 'Jan 12 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 28]).week(), 1, 'Dec 28 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 3]).week(), 1, 'Jan 3 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 2, 'Jan 4 2003 should be week 2');
- assert.equal(moment([2003, 0, 10]).week(), 2, 'Jan 10 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 3, 'Jan 11 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 27]).week(), 1, 'Dec 27 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 2]).week(), 1, 'Jan 2 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 2, 'Jan 3 2009 should be week 2');
- assert.equal(moment([2009, 0, 9]).week(), 2, 'Jan 9 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 3, 'Jan 10 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 26]).week(), 1, 'Dec 26 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 2, 'Jan 2 2010 should be week 2');
- assert.equal(moment([2010, 0, 8]).week(), 2, 'Jan 8 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 3, 'Jan 9 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 7]).week(), 1, 'Jan 7 2011 should be week 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 14]).week(), 2, 'Jan 14 2011 should be week 2');
- assert.equal(moment([2011, 0, 15]).week(), 3, 'Jan 15 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('tzm');
- test('parse', function (assert) {
- var tests = 'ⵉⵏⵏⴰⵢⵔ ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'ⴰⵙⴰⵎⴰⵙ, ⴱⵕⴰⵢⵕ 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'ⴰⵙⴰⵎⴰⵙ, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 ⴱⵕⴰⵢⵕ ⴱⵕⴰⵢⵕ'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '8 8 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[the] DDDo [day of the year]', 'the 45 day of the year'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 ⴱⵕⴰⵢⵕ 2010'],
- ['LLL', '14 ⴱⵕⴰⵢⵕ 2010 15:25'],
- ['LLLL', 'ⴰⵙⴰⵎⴰⵙ 14 ⴱⵕⴰⵢⵕ 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 ⴱⵕⴰⵢⵕ 2010'],
- ['lll', '14 ⴱⵕⴰⵢⵕ 2010 15:25'],
- ['llll', 'ⴰⵙⴰⵎⴰⵙ 14 ⴱⵕⴰⵢⵕ 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'ⵉⵏⵏⴰⵢⵔ ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ ⴰⴽⵡⴰⵙ ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'ⵉⵎⵉⴽ', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'ⵎⵉⵏⵓⴺ', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'ⵎⵉⵏⵓⴺ', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 ⵎⵉⵏⵓⴺ', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 ⵎⵉⵏⵓⴺ', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'ⵙⴰⵄⴰ', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'ⵙⴰⵄⴰ', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 ⵜⴰⵙⵙⴰⵄⵉⵏ', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 ⵜⴰⵙⵙⴰⵄⵉⵏ', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 ⵜⴰⵙⵙⴰⵄⵉⵏ', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'ⴰⵙⵙ', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'ⴰⵙⵙ', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 oⵙⵙⴰⵏ', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'ⴰⵙⵙ', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 oⵙⵙⴰⵏ', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 oⵙⵙⴰⵏ', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'ⴰⵢoⵓⵔ', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'ⴰⵢoⵓⵔ', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'ⴰⵢoⵓⵔ', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ⵉⵢⵢⵉⵔⵏ', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ⵉⵢⵢⵉⵔⵏ', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ⵉⵢⵢⵉⵔⵏ', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'ⴰⵢoⵓⵔ', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ⵉⵢⵢⵉⵔⵏ', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'ⴰⵙⴳⴰⵙ', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 ⵉⵙⴳⴰⵙⵏ', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'ⴰⵙⴳⴰⵙ', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 ⵉⵙⴳⴰⵙⵏ', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ ⵉⵎⵉⴽ', 'prefix');
- assert.equal(moment(0).from(30000), 'ⵢⴰⵏ ⵉⵎⵉⴽ', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'ⵢⴰⵏ ⵉⵎⵉⴽ', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ ⵉⵎⵉⴽ', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ 5 oⵙⵙⴰⵏ', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'ⴰⵙⴷⵅ ⴴ 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'ⴰⵙⴷⵅ ⴴ 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'ⴰⵙⴷⵅ ⴴ 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'ⴰⵙⴽⴰ ⴴ 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'ⴰⵙⴷⵅ ⴴ 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'ⴰⵚⴰⵏⵜ ⴴ 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [ⴴ] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 31]).week(), 1, 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).week(), 1, 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 2, 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).week(), 2, 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 3, 'Jan 14 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 30]).week(), 1, 'Dec 30 2006 should be week 1');
- assert.equal(moment([2007, 0, 5]).week(), 1, 'Jan 5 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 2, 'Jan 6 2007 should be week 2');
- assert.equal(moment([2007, 0, 12]).week(), 2, 'Jan 12 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 3, 'Jan 13 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 1, 'Dec 29 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 4]).week(), 1, 'Jan 4 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 2, 'Jan 5 2008 should be week 2');
- assert.equal(moment([2008, 0, 11]).week(), 2, 'Jan 11 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 3, 'Jan 12 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 28]).week(), 1, 'Dec 28 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 3]).week(), 1, 'Jan 3 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 2, 'Jan 4 2003 should be week 2');
- assert.equal(moment([2003, 0, 10]).week(), 2, 'Jan 10 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 3, 'Jan 11 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 27]).week(), 1, 'Dec 27 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 2]).week(), 1, 'Jan 2 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 2, 'Jan 3 2009 should be week 2');
- assert.equal(moment([2009, 0, 9]).week(), 2, 'Jan 9 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 3, 'Jan 10 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 26]).week(), 1, 'Dec 26 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 2, 'Jan 2 2010 should be week 2');
- assert.equal(moment([2010, 0, 8]).week(), 2, 'Jan 8 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 3, 'Jan 9 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 7]).week(), 1, 'Jan 7 2011 should be week 1');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 14]).week(), 2, 'Jan 14 2011 should be week 2');
- assert.equal(moment([2011, 0, 15]).week(), 3, 'Jan 15 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1');
- assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2');
- assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('uk');
- test('parse', function (assert) {
- var tests = 'січень січ_лютий лют_березень бер_квітень квіт_травень трав_червень черв_липень лип_серпень серп_вересень вер_жовтень жовт_листопад лист_грудень груд'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do MMMM YYYY, HH:mm:ss', 'неділя, 14-го лютого 2010, 15:25:50'],
- ['ddd, h A', 'нд, 3 дня'],
- ['M Mo MM MMMM MMM', '2 2-й 02 лютий лют'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14-го 14'],
- ['d do dddd ddd dd', '0 0-й неділя нд нд'],
- ['DDD DDDo DDDD', '45 45-й 045'],
- ['w wo ww', '7 7-й 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'дня дня'],
- ['DDDo [день року]', '45-й день року'],
- ['LTS', '15:25:50'],
- ['L', '14.02.2010'],
- ['LL', '14 лютого 2010 р.'],
- ['LLL', '14 лютого 2010 р., 15:25'],
- ['LLLL', 'неділя, 14 лютого 2010 р., 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format meridiem', function (assert) {
- assert.equal(moment([2012, 11, 28, 0, 0]).format('A'), 'ночі', 'night');
- assert.equal(moment([2012, 11, 28, 3, 59]).format('A'), 'ночі', 'night');
- assert.equal(moment([2012, 11, 28, 4, 0]).format('A'), 'ранку', 'morning');
- assert.equal(moment([2012, 11, 28, 11, 59]).format('A'), 'ранку', 'morning');
- assert.equal(moment([2012, 11, 28, 12, 0]).format('A'), 'дня', 'afternoon');
- assert.equal(moment([2012, 11, 28, 16, 59]).format('A'), 'дня', 'afternoon');
- assert.equal(moment([2012, 11, 28, 17, 0]).format('A'), 'вечора', 'evening');
- assert.equal(moment([2012, 11, 28, 23, 59]).format('A'), 'вечора', 'evening');
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1-й', '1-й');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2-й', '2-й');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3-й', '3-й');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4-й', '4-й');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5-й', '5-й');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6-й', '6-й');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7-й', '7-й');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8-й', '8-й');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9-й', '9-й');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10-й', '10-й');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11-й', '11-й');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12-й', '12-й');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13-й', '13-й');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14-й', '14-й');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15-й', '15-й');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16-й', '16-й');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17-й', '17-й');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18-й', '18-й');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19-й', '19-й');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20-й', '20-й');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21-й', '21-й');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22-й', '22-й');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23-й', '23-й');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24-й', '24-й');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25-й', '25-й');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26-й', '26-й');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27-й', '27-й');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28-й', '28-й');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29-й', '29-й');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30-й', '30-й');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31-й', '31-й');
- });
- test('format month', function (assert) {
- var expected = 'січень січ_лютий лют_березень бер_квітень квіт_травень трав_червень черв_липень лип_серпень серп_вересень вер_жовтень жовт_листопад лист_грудень груд'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format month case', function (assert) {
- var months = {
- 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),
- 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')
- }, i;
- for (i = 0; i < 12; i++) {
- assert.equal(moment([2011, i, 1]).format('D MMMM'), '1 ' + months.accusative[i], '1 ' + months.accusative[i]);
- assert.equal(moment([2011, i, 1]).format('MMMM'), months.nominative[i], '1 ' + months.nominative[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'неділя нд нд_понеділок пн пн_вівторок вт вт_середа ср ср_четвер чт чт_п’ятниця пт пт_субота сб сб'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'декілька секунд', '44 seconds = seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'хвилина', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'хвилина', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 хвилини', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 хвилини', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'годину', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'годину', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 години', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 годин', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 година', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'день', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'день', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 дні', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'день', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 днів', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 11}), true), '11 днів', '11 days = 11 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 21}), true), '21 день', '21 days = 21 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 днів', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'місяць', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'місяць', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'місяць', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 місяці', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 місяці', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 місяці', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'місяць', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 місяців', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'рік', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 роки', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'рік', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 років', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'за декілька секунд', 'prefix');
- assert.equal(moment(0).from(30000), 'декілька секунд тому', 'suffix');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'за декілька секунд', 'in seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'за 5 днів', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Сьогодні о 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Сьогодні о 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Сьогодні о 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Завтра о 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Сьогодні о 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Вчора о 02:00', 'yesterday at the same time');
- // A special case for Ukrainian since 11 hours have different preposition
- assert.equal(moment(a).add({h: 9}).calendar(), 'Сьогодні об 11:00', 'same day at 11 o\'clock');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[У] dddd [о' + (m.hours() === 11 ? 'б' : '') + '] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[У] dddd [о] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[У] dddd [о] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- function makeFormat(d) {
- switch (d.day()) {
- case 0:
- case 3:
- case 5:
- case 6:
- return '[Минулої] dddd [о' + (d.hours() === 11 ? 'б' : '') + '] LT';
- case 1:
- case 2:
- case 4:
- return '[Минулого] dddd [о' + (d.hours() === 11 ? 'б' : '') + '] LT';
- }
- }
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format(makeFormat(m)), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2011, 11, 26]).week(), 1, 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 12]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 1');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 2');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 1');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 2');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 3');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2011, 11, 26]).format('w ww wo'), '1 01 1-й', 'Dec 26 2011 should be week 1');
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1-й', 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2-й', 'Jan 2 2012 should be week 2');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2-й', 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3-й', 'Jan 9 2012 should be week 3');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('uz');
- test('parse', function (assert) {
- var tests = 'январ янв_феврал фев_март мар_апрел апр_май май_июн июн_июл июл_август авг_сентябр сен_октябр окт_ноябр ноя_декабр дек'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, Do-MMMM YYYY, h:mm:ss', 'Якшанба, 14-феврал 2010, 3:25:50'],
- ['ddd, h:mm', 'Якш, 3:25'],
- ['M Mo MM MMMM MMM', '2 2 02 феврал фев'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 Якшанба Якш Як'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '7 7 07'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[йилнинг] DDDo-[куни]', 'йилнинг 45-куни'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 феврал 2010'],
- ['LLL', '14 феврал 2010 15:25'],
- ['LLLL', '14 феврал 2010, Якшанба 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 фев 2010'],
- ['lll', '14 фев 2010 15:25'],
- ['llll', '14 фев 2010, Якш 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var expected = 'январ янв_феврал фев_март мар_апрел апр_май май_июн июн_июл июл_август авг_сентябр сен_октябр окт_ноябр ноя_декабр дек'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = 'Якшанба Якш Як_Душанба Душ Ду_Сешанба Сеш Се_Чоршанба Чор Чо_Пайшанба Пай Па_Жума Жум Жу_Шанба Шан Ша'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'фурсат', '44 секунд = фурсат');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'бир дакика', '45 секунд = бир дакика');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'бир дакика', '89 секунд = бир дакика');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 дакика', '90 секунд = 2 дакика');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 дакика', '44 дакика = 44 дакика');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'бир соат', '45 минут = бир соат');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'бир соат', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 соат', '90 минут = 2 соат');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 соат', '5 соат = 5 соат');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 соат', '21 соат = 21 соат');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'бир кун', '22 соат = бир кун');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'бир кун', '35 соат = бир кун');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 кун', '36 соат = 2 кун');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'бир кун', '1 кун = 1 кун');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 кун', '5 кун = 5 кун');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 кун', '25 кун = 25 кун');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'бир ой', '26 кун = бир ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'бир ой', '30 кун = бир ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'бир ой', '45 кун = бир ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ой', '46 кун = 2 ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ой', '75 кун = 2 ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ой', '76 кун = 3 ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'бир ой', 'бир ой = бир ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ой', '5 ой = 5 ой');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'бир йил', '345 кун = бир йил');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 йил', '548 кун = 2 йил');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'бир йил', '1 йил = бир йил');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 йил', '5 йил = 5 йил');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'Якин фурсат ичида', 'prefix');
- assert.equal(moment(0).from(30000), 'Бир неча фурсат олдин', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'Бир неча фурсат олдин', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'Якин фурсат ичида', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), 'Якин 5 кун ичида', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Бугун соат 02:00 да', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Бугун соат 02:25 да', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Бугун соат 03:00 да', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Эртага 02:00 да', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Бугун соат 01:00 да', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Кеча соат 02:00 да', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 2, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 3, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 1, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 1, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 2, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 2, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 3, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 1, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 1, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 2, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 2, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 3, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('vi');
- test('parse', function (assert) {
- var i,
- tests = 'tháng 1,Th01_tháng 2,Th02_tháng 3,Th03_tháng 4,Th04_tháng 5,Th05_tháng 6,Th06_tháng 7,Th07_tháng 8,Th08_tháng 9,Th09_tháng 10,Th10_tháng 11,Th11_tháng 12,Th12'.split('_');
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + i);
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(',');
- equalTest(tests[i][0], '[tháng] M', i);
- equalTest(tests[i][1], '[Th]M', i);
- equalTest(tests[i][0], '[tháng] MM', i);
- equalTest(tests[i][1], '[Th]MM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), '[THÁNG] M', i);
- equalTest(tests[i][1].toLocaleLowerCase(), '[TH]M', i);
- equalTest(tests[i][0].toLocaleUpperCase(), '[THÁNG] MM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), '[TH]MM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, h:mm:ss a', 'chủ nhật, tháng 2 14 2010, 3:25:50 pm'],
- ['ddd, hA', 'CN, 3PM'],
- ['M Mo MM MMMM MMM', '2 2 02 tháng 2 Th02'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14 14'],
- ['d do dddd ddd dd', '0 0 chủ nhật CN CN'],
- ['DDD DDDo DDDD', '45 45 045'],
- ['w wo ww', '6 6 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', 'pm PM'],
- ['[ngày thứ] DDDo [của năm]', 'ngày thứ 45 của năm'],
- ['LTS', '15:25:50'],
- ['L', '14/02/2010'],
- ['LL', '14 tháng 2 năm 2010'],
- ['LLL', '14 tháng 2 năm 2010 15:25'],
- ['LLLL', 'chủ nhật, 14 tháng 2 năm 2010 15:25'],
- ['l', '14/2/2010'],
- ['ll', '14 Th02 2010'],
- ['lll', '14 Th02 2010 15:25'],
- ['llll', 'CN, 14 Th02 2010 15:25']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format ordinal', function (assert) {
- assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
- assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
- assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
- assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
- assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
- assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
- assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
- assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
- assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
- assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
- assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
- assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
- assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
- assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
- assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
- assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
- assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
- assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
- assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
- assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
- assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
- assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
- assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
- assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
- assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
- assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
- assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
- assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
- assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
- assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
- assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
- });
- test('format month', function (assert) {
- var i,
- expected = 'tháng 1,Th01_tháng 2,Th02_tháng 3,Th03_tháng 4,Th04_tháng 5,Th05_tháng 6,Th06_tháng 7,Th07_tháng 8,Th08_tháng 9,Th09_tháng 10,Th10_tháng 11,Th11_tháng 12,Th12'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM,MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var i,
- expected = 'chủ nhật CN CN_thứ hai T2 T2_thứ ba T3 T3_thứ tư T4 T4_thứ năm T5 T5_thứ sáu T6 T6_thứ bảy T7 T7'.split('_');
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'vài giây', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), 'một phút', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), 'một phút', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 phút', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 phút', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), 'một giờ', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), 'một giờ', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 giờ', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 giờ', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 giờ', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'một ngày', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'một ngày', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 ngày', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'một ngày', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 ngày', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 ngày', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'một tháng', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'một tháng', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'một tháng', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 tháng', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 tháng', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 tháng', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'một tháng', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 tháng', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'một năm', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 năm', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'một năm', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 năm', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), 'vài giây tới', 'prefix');
- assert.equal(moment(0).from(30000), 'vài giây trước', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), 'vài giây trước', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), 'vài giây tới', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 ngày tới', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Hôm nay lúc 02:00', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Hôm nay lúc 02:25', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Hôm nay lúc 03:00', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Ngày mai lúc 02:00', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Hôm nay lúc 01:00', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Hôm qua lúc 02:00', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('dddd [tuần tới lúc] LT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [tuần tới lúc] LT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [tuần tới lúc] LT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('dddd [tuần rồi lúc] LT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('dddd [tuần rồi lúc] LT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('dddd [tuần rồi lúc] LT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 1, 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).week(), 2, 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 2, 'Jan 15 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 8]).week(), 2, 'Jan 8 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- assert.equal(moment([2007, 0, 15]).week(), 3, 'Jan 15 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).week(), 1, 'Dec 31 2007 should be week 1');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 7]).week(), 2, 'Jan 7 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- assert.equal(moment([2008, 0, 14]).week(), 3, 'Jan 14 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).week(), 1, 'Dec 30 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 6]).week(), 2, 'Jan 6 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- assert.equal(moment([2003, 0, 13]).week(), 3, 'Jan 13 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).week(), 1, 'Dec 29 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 5]).week(), 2, 'Jan 5 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- assert.equal(moment([2009, 0, 13]).week(), 3, 'Jan 12 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).week(), 53, 'Dec 28 2009 should be week 53');
- assert.equal(moment([2010, 0, 1]).week(), 53, 'Jan 1 2010 should be week 53');
- assert.equal(moment([2010, 0, 3]).week(), 53, 'Jan 3 2010 should be week 53');
- assert.equal(moment([2010, 0, 4]).week(), 1, 'Jan 4 2010 should be week 1');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- assert.equal(moment([2010, 0, 11]).week(), 2, 'Jan 11 2010 should be week 2');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).week(), 52, 'Dec 27 2010 should be week 52');
- assert.equal(moment([2011, 0, 1]).week(), 52, 'Jan 1 2011 should be week 52');
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 3]).week(), 1, 'Jan 3 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- assert.equal(moment([2011, 0, 10]).week(), 2, 'Jan 10 2011 should be week 2');
- });
- test('weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52', 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).format('w ww wo'), '1 01 1', 'Jan 2 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '1 01 1', 'Jan 8 2012 should be week 1');
- assert.equal(moment([2012, 0, 9]).format('w ww wo'), '2 02 2', 'Jan 9 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '2 02 2', 'Jan 15 2012 should be week 2');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('zh-cn');
- test('parse', function (assert) {
- var tests = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, a h:mm:ss', '星期日, 二月 14日 2010, 下午 3:25:50'],
- ['ddd, Ah', '周日, 下午3'],
- ['M Mo MM MMMM MMM', '2 2月 02 二月 2月'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14日 14'],
- ['d do dddd ddd dd', '0 0日 星期日 周日 日'],
- ['DDD DDDo DDDD', '45 45日 045'],
- ['w wo ww', '6 6周 06'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', '下午 下午'],
- ['[这年的第] DDDo', '这年的第 45日'],
- ['LTS', '下午3点25分50秒'],
- ['L', '2010-02-14'],
- ['LL', '2010年2月14日'],
- ['LLL', '2010年2月14日下午3点25分'],
- ['LLLL', '2010年2月14日星期日下午3点25分'],
- ['l', '2010-02-14'],
- ['ll', '2010年2月14日'],
- ['lll', '2010年2月14日下午3点25分'],
- ['llll', '2010年2月14日星期日下午3点25分']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = '星期日 周日 日_星期一 周一 一_星期二 周二 二_星期三 周三 三_星期四 周四 四_星期五 周五 五_星期六 周六 六'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '几秒', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 分钟', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 分钟', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 分钟', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 分钟', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 小时', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 小时', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 小时', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 小时', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 小时', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '1 天', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '1 天', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 天', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '1 天', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 天', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 天', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '1 个月', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '1 个月', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '1 个月', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 个月', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 个月', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 个月', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '1 个月', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 个月', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '1 年', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 年', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '1 年', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 年', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), '几秒内', 'prefix');
- assert.equal(moment(0).from(30000), '几秒前', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), '几秒前', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), '几秒内', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5 天内', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), '今天凌晨2点整', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), '今天凌晨2点25分', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), '今天凌晨3点整', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), '明天凌晨2点整', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), '今天凌晨1点整', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), '昨天凌晨2点整', 'yesterday at the same time');
- });
- test('calendar current week', function (assert) {
- var i, m,
- today = moment().startOf('day');
- for (i = 0; i < 7; i++) {
- m = moment().startOf('week').add({d: i});
- if (Math.abs(m.diff(today, 'days')) <= 1) {
- continue; // skip today, yesterday, tomorrow
- }
- assert.equal(m.calendar(), m.format('[本]ddd凌晨12点整'), 'Monday + ' + i + ' days current time');
- }
- });
- test('calendar next week', function (assert) {
- var i, m,
- today = moment().startOf('day');
- for (i = 7; i < 14; i++) {
- m = moment().startOf('week').add({d: i});
- if (Math.abs(m.diff(today, 'days')) >= 7) {
- continue;
- }
- if (Math.abs(m.diff(today, 'days')) <= 1) {
- continue; // skip today, yesterday, tomorrow
- }
- assert.equal(m.calendar(), m.format('[下]ddd凌晨12点整'), 'Today + ' + i + ' days beginning of day');
- }
- assert.equal(42, 42, 'at least one assert');
- });
- test('calendar last week', function (assert) {
- var i, m,
- today = moment().startOf('day');
- for (i = 1; i < 8; i++) {
- m = moment().startOf('week').subtract({d: i});
- if ((Math.abs(m.diff(today, 'days')) >= 7) || (Math.abs(m.diff(today, 'days')) <= 1)) {
- continue;
- }
- assert.equal(m.calendar(), m.format('[上]ddd凌晨12点整'), 'Monday - ' + i + ' days next week');
- }
- assert.equal(42, 42, 'at least one assert');
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('LL'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('LL'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('LL'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('LL'), 'in 2 weeks');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), '凌晨', 'before dawn');
- assert.equal(moment([2011, 2, 23, 6, 0]).format('A'), '早上', 'morning');
- assert.equal(moment([2011, 2, 23, 9, 0]).format('A'), '上午', 'before noon');
- assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), '中午', 'noon');
- assert.equal(moment([2011, 2, 23, 13, 0]).format('A'), '下午', 'afternoon');
- assert.equal(moment([2011, 2, 23, 18, 0]).format('A'), '晚上', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 52, 'Jan 1 2012 should be week 52');
- assert.equal(moment([2012, 0, 2]).week(), 1, 'Jan 2 2012 should be week 52');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 52, 'Dec 31 2006 should be week 52');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 1, 'Jan 7 2007 should be week 1');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 2, 'Jan 14 2007 should be week 2');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 1, 'Jan 6 2008 should be week 1');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 2, 'Jan 13 2008 should be week 2');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 52, 'Dec 29 2002 should be week 52');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 1, 'Jan 5 2003 should be week 1');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 2, 'Jan 12 2003 should be week 2');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 1, 'Jan 4 2009 should be week 1');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 2, 'Jan 11 2009 should be week 2');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2010, 0, 2]).week(), 53, 'Jan 2 2010 should be week 53');
- assert.equal(moment([2010, 0, 10]).week(), 1, 'Jan 10 2010 should be week 1');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2011, 0, 2]).week(), 52, 'Jan 2 2011 should be week 52');
- assert.equal(moment([2011, 0, 8]).week(), 1, 'Jan 8 2011 should be week 1');
- assert.equal(moment([2011, 0, 9]).week(), 1, 'Jan 9 2011 should be week 1');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '52 52 52周', 'Jan 1 2012 应该是第52周');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1周', 'Jan 7 2012 应该是第 1周');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2周', 'Jan 14 2012 应该是第 2周');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- localeModule('zh-tw');
- test('parse', function (assert) {
- var tests = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i;
- function equalTest(input, mmm, i) {
- assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
- }
- for (i = 0; i < 12; i++) {
- tests[i] = tests[i].split(' ');
- equalTest(tests[i][0], 'MMM', i);
- equalTest(tests[i][1], 'MMM', i);
- equalTest(tests[i][0], 'MMMM', i);
- equalTest(tests[i][1], 'MMMM', i);
- equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
- equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
- equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
- }
- });
- test('format', function (assert) {
- var a = [
- ['dddd, MMMM Do YYYY, a h:mm:ss', '星期日, 二月 14日 2010, 下午 3:25:50'],
- ['ddd, Ah', '週日, 下午3'],
- ['M Mo MM MMMM MMM', '2 2月 02 二月 2月'],
- ['YYYY YY', '2010 10'],
- ['D Do DD', '14 14日 14'],
- ['d do dddd ddd dd', '0 0日 星期日 週日 日'],
- ['DDD DDDo DDDD', '45 45日 045'],
- ['w wo ww', '8 8週 08'],
- ['h hh', '3 03'],
- ['H HH', '15 15'],
- ['m mm', '25 25'],
- ['s ss', '50 50'],
- ['a A', '下午 下午'],
- ['[這年的第] DDDo', '這年的第 45日'],
- ['LTS', '下午3點25分50秒'],
- ['L', '2010年2月14日'],
- ['LL', '2010年2月14日'],
- ['LLL', '2010年2月14日下午3點25分'],
- ['LLLL', '2010年2月14日星期日下午3點25分'],
- ['l', '2010年2月14日'],
- ['ll', '2010年2月14日'],
- ['lll', '2010年2月14日下午3點25分'],
- ['llll', '2010年2月14日星期日下午3點25分']
- ],
- b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
- i;
- for (i = 0; i < a.length; i++) {
- assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('format month', function (assert) {
- var expected = '一月 1月_二月 2月_三月 3月_四月 4月_五月 5月_六月 6月_七月 7月_八月 8月_九月 9月_十月 10月_十一月 11月_十二月 12月'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
- }
- });
- test('format week', function (assert) {
- var expected = '星期日 週日 日_星期一 週一 一_星期二 週二 二_星期三 週三 三_星期四 週四 四_星期五 週五 五_星期六 週六 六'.split('_'), i;
- for (i = 0; i < expected.length; i++) {
- assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
- }
- });
- test('from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), '幾秒', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '一分鐘', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '一分鐘', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2分鐘', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44分鐘', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '一小時', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '一小時', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2小時', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5小時', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21小時', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), '一天', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), '一天', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2天', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), '一天', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5天', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25天', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), '一個月', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), '一個月', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), '一個月', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2個月', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2個月', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3個月', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), '一個月', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5個月', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), '一年', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2年', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), '一年', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5年', '5 years = 5 years');
- });
- test('suffix', function (assert) {
- assert.equal(moment(30000).from(0), '幾秒內', 'prefix');
- assert.equal(moment(0).from(30000), '幾秒前', 'suffix');
- });
- test('now from now', function (assert) {
- assert.equal(moment().fromNow(), '幾秒前', 'now from now should display as in the past');
- });
- test('fromNow', function (assert) {
- assert.equal(moment().add({s: 30}).fromNow(), '幾秒內', 'in a few seconds');
- assert.equal(moment().add({d: 5}).fromNow(), '5天內', 'in 5 days');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), '今天早上2點00分', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), '今天早上2點25分', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), '今天早上3點00分', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), '明天早上2點00分', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), '今天早上1點00分', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), '昨天早上2點00分', 'yesterday at the same time');
- });
- test('calendar next week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().add({d: i});
- assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[下]ddddLT'), 'Today + ' + i + ' days end of day');
- }
- });
- test('calendar last week', function (assert) {
- var i, m;
- for (i = 2; i < 7; i++) {
- m = moment().subtract({d: i});
- assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days current time');
- m.hours(0).minutes(0).seconds(0).milliseconds(0);
- assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days beginning of day');
- m.hours(23).minutes(59).seconds(59).milliseconds(999);
- assert.equal(m.calendar(), m.format('[上]ddddLT'), 'Today - ' + i + ' days end of day');
- }
- });
- test('calendar all else', function (assert) {
- var weeksAgo = moment().subtract({w: 1}),
- weeksFromNow = moment().add({w: 1});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
- weeksAgo = moment().subtract({w: 2});
- weeksFromNow = moment().add({w: 2});
- assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
- assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
- });
- test('meridiem', function (assert) {
- assert.equal(moment([2011, 2, 23, 0, 0]).format('a'), '早上', 'morning');
- assert.equal(moment([2011, 2, 23, 9, 0]).format('a'), '上午', 'before noon');
- assert.equal(moment([2011, 2, 23, 12, 0]).format('a'), '中午', 'noon');
- assert.equal(moment([2011, 2, 23, 13, 0]).format('a'), '下午', 'after noon');
- assert.equal(moment([2011, 2, 23, 18, 0]).format('a'), '晚上', 'night');
- assert.equal(moment([2011, 2, 23, 0, 0]).format('A'), '早上', 'morning');
- assert.equal(moment([2011, 2, 23, 9, 0]).format('A'), '上午', 'before noon');
- assert.equal(moment([2011, 2, 23, 12, 0]).format('A'), '中午', 'noon');
- assert.equal(moment([2011, 2, 23, 13, 0]).format('A'), '下午', 'afternoon');
- assert.equal(moment([2011, 2, 23, 18, 0]).format('A'), '晚上', 'night');
- });
- test('weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).week(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).week(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).week(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).week(), 3, 'Jan 15 2012 should be week 3');
- });
- test('weeks year starting monday', function (assert) {
- assert.equal(moment([2006, 11, 31]).week(), 1, 'Dec 31 2006 should be week 1');
- assert.equal(moment([2007, 0, 1]).week(), 1, 'Jan 1 2007 should be week 1');
- assert.equal(moment([2007, 0, 6]).week(), 1, 'Jan 6 2007 should be week 1');
- assert.equal(moment([2007, 0, 7]).week(), 2, 'Jan 7 2007 should be week 2');
- assert.equal(moment([2007, 0, 13]).week(), 2, 'Jan 13 2007 should be week 2');
- assert.equal(moment([2007, 0, 14]).week(), 3, 'Jan 14 2007 should be week 3');
- });
- test('weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 29]).week(), 52, 'Dec 29 2007 should be week 52');
- assert.equal(moment([2008, 0, 1]).week(), 1, 'Jan 1 2008 should be week 1');
- assert.equal(moment([2008, 0, 5]).week(), 1, 'Jan 5 2008 should be week 1');
- assert.equal(moment([2008, 0, 6]).week(), 2, 'Jan 6 2008 should be week 2');
- assert.equal(moment([2008, 0, 12]).week(), 2, 'Jan 12 2008 should be week 2');
- assert.equal(moment([2008, 0, 13]).week(), 3, 'Jan 13 2008 should be week 3');
- });
- test('weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 29]).week(), 1, 'Dec 29 2002 should be week 1');
- assert.equal(moment([2003, 0, 1]).week(), 1, 'Jan 1 2003 should be week 1');
- assert.equal(moment([2003, 0, 4]).week(), 1, 'Jan 4 2003 should be week 1');
- assert.equal(moment([2003, 0, 5]).week(), 2, 'Jan 5 2003 should be week 2');
- assert.equal(moment([2003, 0, 11]).week(), 2, 'Jan 11 2003 should be week 2');
- assert.equal(moment([2003, 0, 12]).week(), 3, 'Jan 12 2003 should be week 3');
- });
- test('weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 28]).week(), 1, 'Dec 28 2008 should be week 1');
- assert.equal(moment([2009, 0, 1]).week(), 1, 'Jan 1 2009 should be week 1');
- assert.equal(moment([2009, 0, 3]).week(), 1, 'Jan 3 2009 should be week 1');
- assert.equal(moment([2009, 0, 4]).week(), 2, 'Jan 4 2009 should be week 2');
- assert.equal(moment([2009, 0, 10]).week(), 2, 'Jan 10 2009 should be week 2');
- assert.equal(moment([2009, 0, 11]).week(), 3, 'Jan 11 2009 should be week 3');
- });
- test('weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 27]).week(), 1, 'Dec 27 2009 should be week 1');
- assert.equal(moment([2010, 0, 1]).week(), 1, 'Jan 1 2010 should be week 1');
- assert.equal(moment([2010, 0, 2]).week(), 1, 'Jan 2 2010 should be week 1');
- assert.equal(moment([2010, 0, 3]).week(), 2, 'Jan 3 2010 should be week 2');
- assert.equal(moment([2010, 0, 9]).week(), 2, 'Jan 9 2010 should be week 2');
- assert.equal(moment([2010, 0, 10]).week(), 3, 'Jan 10 2010 should be week 3');
- });
- test('weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 26]).week(), 1, 'Dec 26 2010 should be week 1');
- assert.equal(moment([2011, 0, 1]).week(), 1, 'Jan 1 2011 should be week 1');
- assert.equal(moment([2011, 0, 2]).week(), 2, 'Jan 2 2011 should be week 2');
- assert.equal(moment([2011, 0, 8]).week(), 2, 'Jan 8 2011 should be week 2');
- assert.equal(moment([2011, 0, 9]).week(), 3, 'Jan 9 2011 should be week 3');
- });
- test('weeks year starting sunday format', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1週', 'Jan 1 2012 應該是第 1週');
- assert.equal(moment([2012, 0, 7]).format('w ww wo'), '1 01 1週', 'Jan 7 2012 應該是第 1週');
- assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2週', 'Jan 8 2012 應該是第 2週');
- assert.equal(moment([2012, 0, 14]).format('w ww wo'), '2 02 2週', 'Jan 14 2012 應該是第 2週');
- assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3週', 'Jan 15 2012 應該是第 3週');
- });
- test('lenient ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing ' + i + ' date check');
- }
- });
- test('lenient ordinal parsing of number', function (assert) {
- var i, testMoment;
- for (i = 1; i <= 31; ++i) {
- testMoment = moment('2014 01 ' + i, 'YYYY MM Do');
- assert.equal(testMoment.year(), 2014,
- 'lenient ordinal parsing of number ' + i + ' year check');
- assert.equal(testMoment.month(), 0,
- 'lenient ordinal parsing of number ' + i + ' month check');
- assert.equal(testMoment.date(), i,
- 'lenient ordinal parsing of number ' + i + ' date check');
- }
- });
- test('meridiem invariant', function (assert) {
- var h, m, t1, t2;
- for (h = 0; h < 24; ++h) {
- for (m = 0; m < 60; m += 15) {
- t1 = moment.utc([2000, 0, 1, h, m]);
- t2 = moment(t1.format('A h:mm'), 'A h:mm');
- assert.equal(t2.format('HH:mm'), t1.format('HH:mm'),
- 'meridiem at ' + t1.format('HH:mm'));
- }
- }
- });
- test('strict ordinal parsing', function (assert) {
- var i, ordinalStr, testMoment;
- for (i = 1; i <= 31; ++i) {
- ordinalStr = moment([2014, 0, i]).format('YYYY MM Do');
- testMoment = moment(ordinalStr, 'YYYY MM Do', true);
- assert.ok(testMoment.isValid(), 'strict ordinal parsing ' + i);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('add and subtract');
- test('add short reverse args', function (assert) {
- var a = moment(), b, c, d;
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add({ms: 50}).milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add({s: 1}).seconds(), 9, 'Add seconds');
- assert.equal(a.add({m: 1}).minutes(), 8, 'Add minutes');
- assert.equal(a.add({h: 1}).hours(), 7, 'Add hours');
- assert.equal(a.add({d: 1}).date(), 13, 'Add date');
- assert.equal(a.add({w: 1}).date(), 20, 'Add week');
- assert.equal(a.add({M: 1}).month(), 10, 'Add month');
- assert.equal(a.add({y: 1}).year(), 2012, 'Add year');
- assert.equal(a.add({Q: 1}).month(), 1, 'Add quarter');
- b = moment([2010, 0, 31]).add({M: 1});
- c = moment([2010, 1, 28]).subtract({M: 1});
- d = moment([2010, 1, 28]).subtract({Q: 1});
- assert.equal(b.month(), 1, 'add month, jan 31st to feb 28th');
- assert.equal(b.date(), 28, 'add month, jan 31st to feb 28th');
- assert.equal(c.month(), 0, 'subtract month, feb 28th to jan 28th');
- assert.equal(c.date(), 28, 'subtract month, feb 28th to jan 28th');
- assert.equal(d.month(), 10, 'subtract quarter, feb 28th 2010 to nov 28th 2009');
- assert.equal(d.date(), 28, 'subtract quarter, feb 28th 2010 to nov 28th 2009');
- assert.equal(d.year(), 2009, 'subtract quarter, feb 28th 2010 to nov 28th 2009');
- });
- test('add long reverse args', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add({milliseconds: 50}).milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add({seconds: 1}).seconds(), 9, 'Add seconds');
- assert.equal(a.add({minutes: 1}).minutes(), 8, 'Add minutes');
- assert.equal(a.add({hours: 1}).hours(), 7, 'Add hours');
- assert.equal(a.add({days: 1}).date(), 13, 'Add date');
- assert.equal(a.add({weeks: 1}).date(), 20, 'Add week');
- assert.equal(a.add({months: 1}).month(), 10, 'Add month');
- assert.equal(a.add({years: 1}).year(), 2012, 'Add year');
- assert.equal(a.add({quarters: 1}).month(), 1, 'Add quarter');
- });
- test('add long singular reverse args', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add({millisecond: 50}).milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add({second: 1}).seconds(), 9, 'Add seconds');
- assert.equal(a.add({minute: 1}).minutes(), 8, 'Add minutes');
- assert.equal(a.add({hour: 1}).hours(), 7, 'Add hours');
- assert.equal(a.add({day: 1}).date(), 13, 'Add date');
- assert.equal(a.add({week: 1}).date(), 20, 'Add week');
- assert.equal(a.add({month: 1}).month(), 10, 'Add month');
- assert.equal(a.add({year: 1}).year(), 2012, 'Add year');
- assert.equal(a.add({quarter: 1}).month(), 1, 'Add quarter');
- });
- test('add string long reverse args', function (assert) {
- var a = moment(), b;
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- b = a.clone();
- assert.equal(a.add('millisecond', 50).milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add('second', 1).seconds(), 9, 'Add seconds');
- assert.equal(a.add('minute', 1).minutes(), 8, 'Add minutes');
- assert.equal(a.add('hour', 1).hours(), 7, 'Add hours');
- assert.equal(a.add('day', 1).date(), 13, 'Add date');
- assert.equal(a.add('week', 1).date(), 20, 'Add week');
- assert.equal(a.add('month', 1).month(), 10, 'Add month');
- assert.equal(a.add('year', 1).year(), 2012, 'Add year');
- assert.equal(b.add('day', '01').date(), 13, 'Add date');
- assert.equal(a.add('quarter', 1).month(), 1, 'Add quarter');
- });
- test('add string long singular reverse args', function (assert) {
- var a = moment(), b;
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- b = a.clone();
- assert.equal(a.add('milliseconds', 50).milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add('seconds', 1).seconds(), 9, 'Add seconds');
- assert.equal(a.add('minutes', 1).minutes(), 8, 'Add minutes');
- assert.equal(a.add('hours', 1).hours(), 7, 'Add hours');
- assert.equal(a.add('days', 1).date(), 13, 'Add date');
- assert.equal(a.add('weeks', 1).date(), 20, 'Add week');
- assert.equal(a.add('months', 1).month(), 10, 'Add month');
- assert.equal(a.add('years', 1).year(), 2012, 'Add year');
- assert.equal(b.add('days', '01').date(), 13, 'Add date');
- assert.equal(a.add('quarters', 1).month(), 1, 'Add quarter');
- });
- test('add string short reverse args', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add('ms', 50).milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add('s', 1).seconds(), 9, 'Add seconds');
- assert.equal(a.add('m', 1).minutes(), 8, 'Add minutes');
- assert.equal(a.add('h', 1).hours(), 7, 'Add hours');
- assert.equal(a.add('d', 1).date(), 13, 'Add date');
- assert.equal(a.add('w', 1).date(), 20, 'Add week');
- assert.equal(a.add('M', 1).month(), 10, 'Add month');
- assert.equal(a.add('y', 1).year(), 2012, 'Add year');
- assert.equal(a.add('Q', 1).month(), 1, 'Add quarter');
- });
- test('add string long', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add(50, 'millisecond').milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add(1, 'second').seconds(), 9, 'Add seconds');
- assert.equal(a.add(1, 'minute').minutes(), 8, 'Add minutes');
- assert.equal(a.add(1, 'hour').hours(), 7, 'Add hours');
- assert.equal(a.add(1, 'day').date(), 13, 'Add date');
- assert.equal(a.add(1, 'week').date(), 20, 'Add week');
- assert.equal(a.add(1, 'month').month(), 10, 'Add month');
- assert.equal(a.add(1, 'year').year(), 2012, 'Add year');
- assert.equal(a.add(1, 'quarter').month(), 1, 'Add quarter');
- });
- test('add string long singular', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add(50, 'milliseconds').milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add(1, 'seconds').seconds(), 9, 'Add seconds');
- assert.equal(a.add(1, 'minutes').minutes(), 8, 'Add minutes');
- assert.equal(a.add(1, 'hours').hours(), 7, 'Add hours');
- assert.equal(a.add(1, 'days').date(), 13, 'Add date');
- assert.equal(a.add(1, 'weeks').date(), 20, 'Add week');
- assert.equal(a.add(1, 'months').month(), 10, 'Add month');
- assert.equal(a.add(1, 'years').year(), 2012, 'Add year');
- assert.equal(a.add(1, 'quarters').month(), 1, 'Add quarter');
- });
- test('add string short', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add(50, 'ms').milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add(1, 's').seconds(), 9, 'Add seconds');
- assert.equal(a.add(1, 'm').minutes(), 8, 'Add minutes');
- assert.equal(a.add(1, 'h').hours(), 7, 'Add hours');
- assert.equal(a.add(1, 'd').date(), 13, 'Add date');
- assert.equal(a.add(1, 'w').date(), 20, 'Add week');
- assert.equal(a.add(1, 'M').month(), 10, 'Add month');
- assert.equal(a.add(1, 'y').year(), 2012, 'Add year');
- assert.equal(a.add(1, 'Q').month(), 1, 'Add quarter');
- });
- test('add strings string short args', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add('ms', '50').milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add('s', '1').seconds(), 9, 'Add seconds');
- assert.equal(a.add('m', '1').minutes(), 8, 'Add minutes');
- assert.equal(a.add('h', '1').hours(), 7, 'Add hours');
- assert.equal(a.add('d', '1').date(), 13, 'Add date');
- assert.equal(a.add('w', '1').date(), 20, 'Add week');
- assert.equal(a.add('M', '1').month(), 10, 'Add month');
- assert.equal(a.add('y', '1').year(), 2012, 'Add year');
- assert.equal(a.add('Q', '1').month(), 1, 'Add quarter');
- });
- test('subtract strings string short args', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.subtract('ms', '50').milliseconds(), 450, 'Subtract milliseconds');
- assert.equal(a.subtract('s', '1').seconds(), 7, 'Subtract seconds');
- assert.equal(a.subtract('m', '1').minutes(), 6, 'Subtract minutes');
- assert.equal(a.subtract('h', '1').hours(), 5, 'Subtract hours');
- assert.equal(a.subtract('d', '1').date(), 11, 'Subtract date');
- assert.equal(a.subtract('w', '1').date(), 4, 'Subtract week');
- assert.equal(a.subtract('M', '1').month(), 8, 'Subtract month');
- assert.equal(a.subtract('y', '1').year(), 2010, 'Subtract year');
- assert.equal(a.subtract('Q', '1').month(), 5, 'Subtract quarter');
- });
- test('add strings string short', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.add('50', 'ms').milliseconds(), 550, 'Add milliseconds');
- assert.equal(a.add('1', 's').seconds(), 9, 'Add seconds');
- assert.equal(a.add('1', 'm').minutes(), 8, 'Add minutes');
- assert.equal(a.add('1', 'h').hours(), 7, 'Add hours');
- assert.equal(a.add('1', 'd').date(), 13, 'Add date');
- assert.equal(a.add('1', 'w').date(), 20, 'Add week');
- assert.equal(a.add('1', 'M').month(), 10, 'Add month');
- assert.equal(a.add('1', 'y').year(), 2012, 'Add year');
- assert.equal(a.add('1', 'Q').month(), 1, 'Add quarter');
- });
- test('subtract strings string short', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(500);
- assert.equal(a.subtract('50', 'ms').milliseconds(), 450, 'Subtract milliseconds');
- assert.equal(a.subtract('1', 's').seconds(), 7, 'Subtract seconds');
- assert.equal(a.subtract('1', 'm').minutes(), 6, 'Subtract minutes');
- assert.equal(a.subtract('1', 'h').hours(), 5, 'Subtract hours');
- assert.equal(a.subtract('1', 'd').date(), 11, 'Subtract date');
- assert.equal(a.subtract('1', 'w').date(), 4, 'Subtract week');
- assert.equal(a.subtract('1', 'M').month(), 8, 'Subtract month');
- assert.equal(a.subtract('1', 'y').year(), 2010, 'Subtract year');
- assert.equal(a.subtract('1', 'Q').month(), 5, 'Subtract quarter');
- });
- test('add across DST', function (assert) {
- // Detect Safari bug and bail. Hours on 13th March 2011 are shifted
- // with 1 ahead.
- if (new Date(2011, 2, 13, 5, 0, 0).getHours() !== 5) {
- expect(0);
- return;
- }
- var a = moment(new Date(2011, 2, 12, 5, 0, 0)),
- b = moment(new Date(2011, 2, 12, 5, 0, 0)),
- c = moment(new Date(2011, 2, 12, 5, 0, 0)),
- d = moment(new Date(2011, 2, 12, 5, 0, 0)),
- e = moment(new Date(2011, 2, 12, 5, 0, 0));
- a.add(1, 'days');
- b.add(24, 'hours');
- c.add(1, 'months');
- e.add(1, 'quarter');
- assert.equal(a.hours(), 5, 'adding days over DST difference should result in the same hour');
- if (b.isDST() && !d.isDST()) {
- assert.equal(b.hours(), 6, 'adding hours over DST difference should result in a different hour');
- } else if (!b.isDST() && d.isDST()) {
- assert.equal(b.hours(), 4, 'adding hours over DST difference should result in a different hour');
- } else {
- assert.equal(b.hours(), 5, 'adding hours over DST difference should result in a same hour if the timezone does not have daylight savings time');
- }
- assert.equal(c.hours(), 5, 'adding months over DST difference should result in the same hour');
- assert.equal(e.hours(), 5, 'adding quarters over DST difference should result in the same hour');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- // These tests are for locale independent features
- // locale dependent tests would be in locale test folder
- module('calendar');
- test('passing a function', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(null, {
- 'sameDay': function () {
- return 'h:mmA';
- }
- }), '2:00AM', 'should equate');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('create');
- test('array', function (assert) {
- assert.ok(moment([2010]).toDate() instanceof Date, '[2010]');
- assert.ok(moment([2010, 1]).toDate() instanceof Date, '[2010, 1]');
- assert.ok(moment([2010, 1, 12]).toDate() instanceof Date, '[2010, 1, 12]');
- assert.ok(moment([2010, 1, 12, 1]).toDate() instanceof Date, '[2010, 1, 12, 1]');
- assert.ok(moment([2010, 1, 12, 1, 1]).toDate() instanceof Date, '[2010, 1, 12, 1, 1]');
- assert.ok(moment([2010, 1, 12, 1, 1, 1]).toDate() instanceof Date, '[2010, 1, 12, 1, 1, 1]');
- assert.ok(moment([2010, 1, 12, 1, 1, 1, 1]).toDate() instanceof Date, '[2010, 1, 12, 1, 1, 1, 1]');
- assert.equal(+moment(new Date(2010, 1, 14, 15, 25, 50, 125)), +moment([2010, 1, 14, 15, 25, 50, 125]), 'constructing with array === constructing with new Date()');
- });
- test('array with invalid arguments', function (assert) {
- assert.ok(!moment([2010, null, null]).isValid(), '[2010, null, null]');
- assert.ok(!moment([1945, null, null]).isValid(), '[1945, null, null] (pre-1970)');
- });
- test('array copying', function (assert) {
- var importantArray = [2009, 11];
- moment(importantArray);
- assert.deepEqual(importantArray, [2009, 11], 'initializer should not mutate the original array');
- });
- test('object', function (assert) {
- var fmt = 'YYYY-MM-DD HH:mm:ss.SSS',
- tests = [
- [{year: 2010}, '2010-01-01 00:00:00.000'],
- [{year: 2010, month: 1}, '2010-02-01 00:00:00.000'],
- [{year: 2010, month: 1, day: 12}, '2010-02-12 00:00:00.000'],
- [{year: 2010, month: 1, date: 12}, '2010-02-12 00:00:00.000'],
- [{year: 2010, month: 1, day: 12, hours: 1}, '2010-02-12 01:00:00.000'],
- [{year: 2010, month: 1, date: 12, hours: 1}, '2010-02-12 01:00:00.000'],
- [{year: 2010, month: 1, day: 12, hours: 1, minutes: 1}, '2010-02-12 01:01:00.000'],
- [{year: 2010, month: 1, date: 12, hours: 1, minutes: 1}, '2010-02-12 01:01:00.000'],
- [{year: 2010, month: 1, day: 12, hours: 1, minutes: 1, seconds: 1}, '2010-02-12 01:01:01.000'],
- [{year: 2010, month: 1, day: 12, hours: 1, minutes: 1, seconds: 1, milliseconds: 1}, '2010-02-12 01:01:01.001'],
- [{years: 2010, months: 1, days: 14, hours: 15, minutes: 25, seconds: 50, milliseconds: 125}, '2010-02-14 15:25:50.125'],
- [{year: 2010, month: 1, day: 14, hour: 15, minute: 25, second: 50, millisecond: 125}, '2010-02-14 15:25:50.125'],
- [{y: 2010, M: 1, d: 14, h: 15, m: 25, s: 50, ms: 125}, '2010-02-14 15:25:50.125']
- ], i;
- for (i = 0; i < tests.length; ++i) {
- assert.equal(moment(tests[i][0]).format(fmt), tests[i][1]);
- }
- });
- test('multi format array copying', function (assert) {
- var importantArray = ['MM/DD/YYYY', 'YYYY-MM-DD', 'MM-DD-YYYY'];
- moment('1999-02-13', importantArray);
- assert.deepEqual(importantArray, ['MM/DD/YYYY', 'YYYY-MM-DD', 'MM-DD-YYYY'], 'initializer should not mutate the original array');
- });
- test('number', function (assert) {
- assert.ok(moment(1000).toDate() instanceof Date, '1000');
- assert.equal(moment(1000).valueOf(), 1000, 'asserting valueOf');
- assert.equal(moment.utc(1000).valueOf(), 1000, 'asserting valueOf');
- });
- test('unix', function (assert) {
- assert.equal(moment.unix(1).valueOf(), 1000, '1 unix timestamp == 1000 Date.valueOf');
- assert.equal(moment(1000).unix(), 1, '1000 Date.valueOf == 1 unix timestamp');
- assert.equal(moment.unix(1000).valueOf(), 1000000, '1000 unix timestamp == 1000000 Date.valueOf');
- assert.equal(moment(1500).unix(), 1, '1500 Date.valueOf == 1 unix timestamp');
- assert.equal(moment(1900).unix(), 1, '1900 Date.valueOf == 1 unix timestamp');
- assert.equal(moment(2100).unix(), 2, '2100 Date.valueOf == 2 unix timestamp');
- assert.equal(moment(1333129333524).unix(), 1333129333, '1333129333524 Date.valueOf == 1333129333 unix timestamp');
- assert.equal(moment(1333129333524000).unix(), 1333129333524, '1333129333524000 Date.valueOf == 1333129333524 unix timestamp');
- });
- test('date', function (assert) {
- assert.ok(moment(new Date()).toDate() instanceof Date, 'new Date()');
- });
- test('date mutation', function (assert) {
- var a = new Date();
- assert.ok(moment(a).toDate() !== a, 'the date moment uses should not be the date passed in');
- });
- test('moment', function (assert) {
- assert.ok(moment(moment()).toDate() instanceof Date, 'moment(moment())');
- assert.ok(moment(moment(moment())).toDate() instanceof Date, 'moment(moment(moment()))');
- });
- test('cloning moment should only copy own properties', function (assert) {
- assert.ok(!moment().clone().hasOwnProperty('month'), 'Should not clone prototype methods');
- });
- test('cloning moment works with weird clones', function (assert) {
- var extend = function (a, b) {
- var i;
- for (i in b) {
- a[i] = b[i];
- }
- return a;
- },
- now = moment(),
- nowu = moment.utc();
- assert.equal(+extend({}, now).clone(), +now, 'cloning extend-ed now is now');
- assert.equal(+extend({}, nowu).clone(), +nowu, 'cloning extend-ed utc now is utc now');
- });
- test('cloning respects moment.momentProperties', function (assert) {
- var m = moment();
- assert.equal(m.clone()._special, undefined, 'cloning ignores extra properties');
- m._special = 'bacon';
- moment.momentProperties.push('_special');
- assert.equal(m.clone()._special, 'bacon', 'cloning respects momentProperties');
- moment.momentProperties.pop();
- });
- test('undefined', function (assert) {
- assert.ok(moment().toDate() instanceof Date, 'undefined');
- });
- test('iso with bad input', function (assert) {
- assert.ok(!moment('a', moment.ISO_8601).isValid(), 'iso parsing with invalid string');
- assert.ok(!moment('a', moment.ISO_8601, true).isValid(), 'iso parsing with invalid string, strict');
- });
- test('iso format 24hrs', function (assert) {
- assert.equal(moment('2014-01-01T24:00:00.000').format('YYYY-MM-DD[T]HH:mm:ss.SSS'),
- '2014-01-02T00:00:00.000', 'iso format with 24:00 localtime');
- assert.equal(moment.utc('2014-01-01T24:00:00.000').format('YYYY-MM-DD[T]HH:mm:ss.SSS'),
- '2014-01-02T00:00:00.000', 'iso format with 24:00 utc');
- });
- test('string without format - json', function (assert) {
- assert.equal(moment('Date(1325132654000)').valueOf(), 1325132654000, 'Date(1325132654000)');
- assert.equal(moment('Date(-1325132654000)').valueOf(), -1325132654000, 'Date(-1325132654000)');
- assert.equal(moment('/Date(1325132654000)/').valueOf(), 1325132654000, '/Date(1325132654000)/');
- assert.equal(moment('/Date(1325132654000+0700)/').valueOf(), 1325132654000, '/Date(1325132654000+0700)/');
- assert.equal(moment('/Date(1325132654000-0700)/').valueOf(), 1325132654000, '/Date(1325132654000-0700)/');
- });
- test('string with format dropped am/pm bug', function (assert) {
- moment.locale('en');
- assert.equal(moment('05/1/2012 12:25:00', 'MM/DD/YYYY h:m:s a').format('MM/DD/YYYY'), '05/01/2012', 'should not break if am/pm is left off from the parsing tokens');
- assert.equal(moment('05/1/2012 12:25:00 am', 'MM/DD/YYYY h:m:s a').format('MM/DD/YYYY'), '05/01/2012', 'should not break if am/pm is left off from the parsing tokens');
- assert.equal(moment('05/1/2012 12:25:00 pm', 'MM/DD/YYYY h:m:s a').format('MM/DD/YYYY'), '05/01/2012', 'should not break if am/pm is left off from the parsing tokens');
- assert.ok(moment('05/1/2012 12:25:00', 'MM/DD/YYYY h:m:s a').isValid());
- assert.ok(moment('05/1/2012 12:25:00 am', 'MM/DD/YYYY h:m:s a').isValid());
- assert.ok(moment('05/1/2012 12:25:00 pm', 'MM/DD/YYYY h:m:s a').isValid());
- });
- test('empty string with formats', function (assert) {
- assert.equal(moment('', 'MM').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date');
- assert.equal(moment(' ', 'MM').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date');
- assert.equal(moment(' ', 'DD').format('YYYY-MM-DD HH:mm:ss'), 'Invalid date');
- assert.equal(moment(' ', ['MM', 'DD']).format('YYYY-MM-DD HH:mm:ss'), 'Invalid date');
- assert.ok(!moment('', 'MM').isValid());
- assert.ok(!moment(' ', 'MM').isValid());
- assert.ok(!moment(' ', 'DD').isValid());
- assert.ok(!moment(' ', ['MM', 'DD']).isValid());
- });
- test('defaulting to current date', function (assert) {
- var now = moment();
- assert.equal(moment('12:13:14', 'hh:mm:ss').format('YYYY-MM-DD hh:mm:ss'),
- now.clone().hour(12).minute(13).second(14).format('YYYY-MM-DD hh:mm:ss'),
- 'given only time default to current date');
- assert.equal(moment('05', 'DD').format('YYYY-MM-DD'),
- now.clone().date(5).format('YYYY-MM-DD'),
- 'given day of month default to current month, year');
- assert.equal(moment('05', 'MM').format('YYYY-MM-DD'),
- now.clone().month(4).date(1).format('YYYY-MM-DD'),
- 'given month default to current year');
- assert.equal(moment('1996', 'YYYY').format('YYYY-MM-DD'),
- now.clone().year(1996).month(0).date(1).format('YYYY-MM-DD'),
- 'given year do not default');
- });
- test('matching am/pm', function (assert) {
- assert.equal(moment('2012-09-03T03:00PM', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for PM');
- assert.equal(moment('2012-09-03T03:00P.M.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for P.M.');
- assert.equal(moment('2012-09-03T03:00P', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for P');
- assert.equal(moment('2012-09-03T03:00pm', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for pm');
- assert.equal(moment('2012-09-03T03:00p.m.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for p.m.');
- assert.equal(moment('2012-09-03T03:00p', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00PM', 'am/pm should parse correctly for p');
- assert.equal(moment('2012-09-03T03:00AM', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for AM');
- assert.equal(moment('2012-09-03T03:00A.M.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for A.M.');
- assert.equal(moment('2012-09-03T03:00A', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for A');
- assert.equal(moment('2012-09-03T03:00am', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for am');
- assert.equal(moment('2012-09-03T03:00a.m.', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for a.m.');
- assert.equal(moment('2012-09-03T03:00a', 'YYYY-MM-DDThh:mmA').format('YYYY-MM-DDThh:mmA'), '2012-09-03T03:00AM', 'am/pm should parse correctly for a');
- assert.equal(moment('5:00p.m.March 4 2012', 'h:mmAMMMM D YYYY').format('YYYY-MM-DDThh:mmA'), '2012-03-04T05:00PM', 'am/pm should parse correctly before month names');
- });
- test('string with format', function (assert) {
- moment.locale('en');
- var a = [
- ['YYYY-Q', '2014-4'],
- ['MM-DD-YYYY', '12-02-1999'],
- ['DD-MM-YYYY', '12-02-1999'],
- ['DD/MM/YYYY', '12/02/1999'],
- ['DD_MM_YYYY', '12_02_1999'],
- ['DD:MM:YYYY', '12:02:1999'],
- ['D-M-YY', '2-2-99'],
- ['YY', '99'],
- ['DDD-YYYY', '300-1999'],
- ['DD-MM-YYYY h:m:s', '12-02-1999 2:45:10'],
- ['DD-MM-YYYY h:m:s a', '12-02-1999 2:45:10 am'],
- ['DD-MM-YYYY h:m:s a', '12-02-1999 2:45:10 pm'],
- ['h:mm a', '12:00 pm'],
- ['h:mm a', '12:30 pm'],
- ['h:mm a', '12:00 am'],
- ['h:mm a', '12:30 am'],
- ['HH:mm', '12:00'],
- ['YYYY-MM-DDTHH:mm:ss', '2011-11-11T11:11:11'],
- ['MM-DD-YYYY [M]', '12-02-1999 M'],
- ['ddd MMM DD HH:mm:ss YYYY', 'Tue Apr 07 22:52:51 2009'],
- ['HH:mm:ss', '12:00:00'],
- ['HH:mm:ss', '12:30:00'],
- ['HH:mm:ss', '00:00:00'],
- ['HH:mm:ss S', '00:30:00 1'],
- ['HH:mm:ss SS', '00:30:00 12'],
- ['HH:mm:ss SSS', '00:30:00 123'],
- ['HH:mm:ss S', '00:30:00 7'],
- ['HH:mm:ss SS', '00:30:00 78'],
- ['HH:mm:ss SSS', '00:30:00 789'],
- ['X', '1234567890'],
- ['x', '1234567890123'],
- ['LT', '12:30 AM'],
- ['LTS', '12:30:29 AM'],
- ['L', '09/02/1999'],
- ['l', '9/2/1999'],
- ['LL', 'September 2, 1999'],
- ['ll', 'Sep 2, 1999'],
- ['LLL', 'September 2, 1999 12:30 AM'],
- ['lll', 'Sep 2, 1999 12:30 AM'],
- ['LLLL', 'Thursday, September 2, 1999 12:30 AM'],
- ['llll', 'Thu, Sep 2, 1999 12:30 AM']
- ],
- m,
- i;
- for (i = 0; i < a.length; i++) {
- m = moment(a[i][1], a[i][0]);
- assert.ok(m.isValid());
- assert.equal(m.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('2 digit year with YYYY format', function (assert) {
- assert.equal(moment('9/2/99', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/1999', 'D/M/YYYY ---> 9/2/99');
- assert.equal(moment('9/2/1999', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/1999', 'D/M/YYYY ---> 9/2/1999');
- assert.equal(moment('9/2/68', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/2068', 'D/M/YYYY ---> 9/2/68');
- assert.equal(moment('9/2/69', 'D/M/YYYY').format('DD/MM/YYYY'), '09/02/1969', 'D/M/YYYY ---> 9/2/69');
- });
- test('unix timestamp format', function (assert) {
- var formats = ['X', 'X.S', 'X.SS', 'X.SSS'], i, format;
- for (i = 0; i < formats.length; i++) {
- format = formats[i];
- assert.equal(moment('1234567890', format).valueOf(), 1234567890 * 1000, format + ' matches timestamp without milliseconds');
- assert.equal(moment('1234567890.1', format).valueOf(), 1234567890 * 1000 + 100, format + ' matches timestamp with deciseconds');
- assert.equal(moment('1234567890.12', format).valueOf(), 1234567890 * 1000 + 120, format + ' matches timestamp with centiseconds');
- assert.equal(moment('1234567890.123', format).valueOf(), 1234567890 * 1000 + 123, format + ' matches timestamp with milliseconds');
- }
- });
- test('unix offset milliseconds', function (assert) {
- assert.equal(moment('1234567890123', 'x').valueOf(), 1234567890123, 'x matches unix offset in milliseconds');
- });
- test('milliseconds format', function (assert) {
- assert.equal(moment('1', 'S').get('ms'), 100, 'deciseconds');
- // assert.equal(moment('10', 'S', true).isValid(), false, 'deciseconds with two digits');
- // assert.equal(moment('1', 'SS', true).isValid(), false, 'centiseconds with one digits');
- assert.equal(moment('12', 'SS').get('ms'), 120, 'centiseconds');
- // assert.equal(moment('123', 'SS', true).isValid(), false, 'centiseconds with three digits');
- assert.equal(moment('123', 'SSS').get('ms'), 123, 'milliseconds');
- assert.equal(moment('1234', 'SSSS').get('ms'), 123, 'milliseconds with SSSS');
- assert.equal(moment('123456789101112', 'SSSS').get('ms'), 123, 'milliseconds with SSSS');
- });
- test('string with format no separators', function (assert) {
- moment.locale('en');
- var a = [
- ['MMDDYYYY', '12021999'],
- ['DDMMYYYY', '12021999'],
- ['YYYYMMDD', '19991202'],
- ['DDMMMYYYY', '10Sep2001']
- ], i;
- for (i = 0; i < a.length; i++) {
- assert.equal(moment(a[i][1], a[i][0]).format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
- }
- });
- test('string with format (timezone)', function (assert) {
- assert.equal(moment('5 -0700', 'H ZZ').toDate().getUTCHours(), 12, 'parse hours \'5 -0700\' ---> \'H ZZ\'');
- assert.equal(moment('5 -07:00', 'H Z').toDate().getUTCHours(), 12, 'parse hours \'5 -07:00\' ---> \'H Z\'');
- assert.equal(moment('5 -0730', 'H ZZ').toDate().getUTCMinutes(), 30, 'parse hours \'5 -0730\' ---> \'H ZZ\'');
- assert.equal(moment('5 -07:30', 'H Z').toDate().getUTCMinutes(), 30, 'parse hours \'5 -07:0\' ---> \'H Z\'');
- assert.equal(moment('5 +0100', 'H ZZ').toDate().getUTCHours(), 4, 'parse hours \'5 +0100\' ---> \'H ZZ\'');
- assert.equal(moment('5 +01:00', 'H Z').toDate().getUTCHours(), 4, 'parse hours \'5 +01:00\' ---> \'H Z\'');
- assert.equal(moment('5 +0130', 'H ZZ').toDate().getUTCMinutes(), 30, 'parse hours \'5 +0130\' ---> \'H ZZ\'');
- assert.equal(moment('5 +01:30', 'H Z').toDate().getUTCMinutes(), 30, 'parse hours \'5 +01:30\' ---> \'H Z\'');
- });
- test('string with format (timezone offset)', function (assert) {
- var a, b, c, d, e, f;
- a = new Date(Date.UTC(2011, 0, 1, 1));
- b = moment('2011 1 1 0 -01:00', 'YYYY MM DD HH Z');
- assert.equal(a.getHours(), b.hours(), 'date created with utc == parsed string with timezone offset');
- assert.equal(+a, +b, 'date created with utc == parsed string with timezone offset');
- c = moment('2011 2 1 10 -05:00', 'YYYY MM DD HH Z');
- d = moment('2011 2 1 8 -07:00', 'YYYY MM DD HH Z');
- assert.equal(c.hours(), d.hours(), '10 am central time == 8 am pacific time');
- e = moment.utc('Fri, 20 Jul 2012 17:15:00', 'ddd, DD MMM YYYY HH:mm:ss');
- f = moment.utc('Fri, 20 Jul 2012 10:15:00 -0700', 'ddd, DD MMM YYYY HH:mm:ss ZZ');
- assert.equal(e.hours(), f.hours(), 'parse timezone offset in utc');
- });
- test('string with timezone around start of year', function (assert) {
- assert.equal(moment('2000-01-01T00:00:00.000+01:00').toISOString(), '1999-12-31T23:00:00.000Z', '+1:00 around 2000');
- assert.equal(moment('2000-01-01T00:00:00.000-01:00').toISOString(), '2000-01-01T01:00:00.000Z', '-1:00 around 2000');
- assert.equal(moment('1970-01-01T00:00:00.000+01:00').toISOString(), '1969-12-31T23:00:00.000Z', '+1:00 around 1970');
- assert.equal(moment('1970-01-01T00:00:00.000-01:00').toISOString(), '1970-01-01T01:00:00.000Z', '-1:00 around 1970');
- assert.equal(moment('1200-01-01T00:00:00.000+01:00').toISOString(), '1199-12-31T23:00:00.000Z', '+1:00 around 1200');
- assert.equal(moment('1200-01-01T00:00:00.000-01:00').toISOString(), '1200-01-01T01:00:00.000Z', '-1:00 around 1200');
- });
- test('string with array of formats', function (assert) {
- assert.equal(moment('11-02-1999', ['MM-DD-YYYY', 'DD-MM-YYYY']).format('MM DD YYYY'), '11 02 1999', 'switching month and day');
- assert.equal(moment('02-11-1999', ['MM/DD/YYYY', 'YYYY MM DD', 'MM-DD-YYYY']).format('MM DD YYYY'), '02 11 1999', 'year last');
- assert.equal(moment('1999-02-11', ['MM/DD/YYYY', 'YYYY MM DD', 'MM-DD-YYYY']).format('MM DD YYYY'), '02 11 1999', 'year first');
- assert.equal(moment('02-11-1999', ['MM/DD/YYYY', 'YYYY MM DD']).format('MM DD YYYY'), '02 11 1999', 'year last');
- assert.equal(moment('1999-02-11', ['MM/DD/YYYY', 'YYYY MM DD']).format('MM DD YYYY'), '02 11 1999', 'year first');
- assert.equal(moment('02-11-1999', ['YYYY MM DD', 'MM/DD/YYYY']).format('MM DD YYYY'), '02 11 1999', 'year last');
- assert.equal(moment('1999-02-11', ['YYYY MM DD', 'MM/DD/YYYY']).format('MM DD YYYY'), '02 11 1999', 'year first');
- assert.equal(moment('13-11-1999', ['MM/DD/YYYY', 'DD/MM/YYYY']).format('MM DD YYYY'), '11 13 1999', 'second must be month');
- assert.equal(moment('11-13-1999', ['MM/DD/YYYY', 'DD/MM/YYYY']).format('MM DD YYYY'), '11 13 1999', 'first must be month');
- assert.equal(moment('01-02-2000', ['MM/DD/YYYY', 'DD/MM/YYYY']).format('MM DD YYYY'), '01 02 2000', 'either can be a month, month first format');
- assert.equal(moment('02-01-2000', ['DD/MM/YYYY', 'MM/DD/YYYY']).format('MM DD YYYY'), '01 02 2000', 'either can be a month, day first format');
- assert.equal(moment('11-02-10', ['MM/DD/YY', 'YY MM DD', 'DD-MM-YY']).format('MM DD YYYY'), '02 11 2010', 'all unparsed substrings have influence on format penalty');
- assert.equal(moment('11-02-10', ['MM-DD-YY HH:mm', 'YY MM DD']).format('MM DD YYYY'), '02 10 2011', 'prefer formats without extra tokens');
- assert.equal(moment('11-02-10 junk', ['MM-DD-YY', 'YY.MM.DD junk']).format('MM DD YYYY'), '02 10 2011', 'prefer formats that dont result in extra characters');
- assert.equal(moment('11-22-10', ['YY-MM-DD', 'YY-DD-MM']).format('MM DD YYYY'), '10 22 2011', 'prefer valid results');
- assert.equal(moment('gibberish', ['YY-MM-DD', 'YY-DD-MM']).format('MM DD YYYY'), 'Invalid date', 'doest throw for invalid strings');
- assert.equal(moment('gibberish', []).format('MM DD YYYY'), 'Invalid date', 'doest throw for an empty array');
- //https://github.com/moment/moment/issues/1143
- assert.equal(moment(
- 'System Administrator and Database Assistant (7/1/2011), System Administrator and Database Assistant (7/1/2011), Database Coordinator (7/1/2011), Vice President (7/1/2011), System Administrator and Database Assistant (5/31/2012), Database Coordinator (7/1/2012), System Administrator and Database Assistant (7/1/2013)',
- ['MM/DD/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm:ssZ'])
- .format('YYYY-MM-DD'), '2011-07-01', 'Works for long strings');
- assert.equal(moment('11-02-10', ['MM.DD.YY', 'DD-MM-YY']).format('MM DD YYYY'), '02 11 2010', 'escape RegExp special characters on comparing');
- assert.equal(moment('13-10-98', ['DD MM YY', 'DD MM YYYY'])._f, 'DD MM YY', 'use two digit year');
- assert.equal(moment('13-10-1998', ['DD MM YY', 'DD MM YYYY'])._f, 'DD MM YYYY', 'use four digit year');
- assert.equal(moment('01', ['MM', 'DD'])._f, 'MM', 'Should use first valid format');
- });
- test('string with array of formats + ISO', function (assert) {
- assert.equal(moment('1994', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).year(), 1994, 'iso: assert parse YYYY');
- assert.equal(moment('17:15', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).hour(), 17, 'iso: assert parse HH:mm (1)');
- assert.equal(moment('17:15', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).minutes(), 15, 'iso: assert parse HH:mm (2)');
- assert.equal(moment('06', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).month(), 6 - 1, 'iso: assert parse MM');
- assert.equal(moment('2012-06-01', [moment.ISO_8601, 'MM', 'HH:mm', 'YYYY']).parsingFlags().iso, true, 'iso: assert parse iso');
- assert.equal(moment('2014-05-05', [moment.ISO_8601, 'YYYY-MM-DD']).parsingFlags().iso, true, 'iso: edge case array precedence iso');
- assert.equal(moment('2014-05-05', ['YYYY-MM-DD', moment.ISO_8601]).parsingFlags().iso, false, 'iso: edge case array precedence not iso');
- });
- test('string with format - years', function (assert) {
- assert.equal(moment('67', 'YY').format('YYYY'), '2067', '67 > 2067');
- assert.equal(moment('68', 'YY').format('YYYY'), '2068', '68 > 2068');
- assert.equal(moment('69', 'YY').format('YYYY'), '1969', '69 > 1969');
- assert.equal(moment('70', 'YY').format('YYYY'), '1970', '70 > 1970');
- });
- test('implicit cloning', function (assert) {
- var momentA = moment([2011, 10, 10]),
- momentB = moment(momentA);
- momentA.month(5);
- assert.equal(momentB.month(), 10, 'Calling moment() on a moment will create a clone');
- assert.equal(momentA.month(), 5, 'Calling moment() on a moment will create a clone');
- });
- test('explicit cloning', function (assert) {
- var momentA = moment([2011, 10, 10]),
- momentB = momentA.clone();
- momentA.month(5);
- assert.equal(momentB.month(), 10, 'Calling moment() on a moment will create a clone');
- assert.equal(momentA.month(), 5, 'Calling moment() on a moment will create a clone');
- });
- test('cloning carrying over utc mode', function (assert) {
- assert.equal(moment().local().clone()._isUTC, false, 'An explicit cloned local moment should have _isUTC == false');
- assert.equal(moment().utc().clone()._isUTC, true, 'An cloned utc moment should have _isUTC == true');
- assert.equal(moment().clone()._isUTC, false, 'An explicit cloned local moment should have _isUTC == false');
- assert.equal(moment.utc().clone()._isUTC, true, 'An explicit cloned utc moment should have _isUTC == true');
- assert.equal(moment(moment().local())._isUTC, false, 'An implicit cloned local moment should have _isUTC == false');
- assert.equal(moment(moment().utc())._isUTC, true, 'An implicit cloned utc moment should have _isUTC == true');
- assert.equal(moment(moment())._isUTC, false, 'An implicit cloned local moment should have _isUTC == false');
- assert.equal(moment(moment.utc())._isUTC, true, 'An implicit cloned utc moment should have _isUTC == true');
- });
- test('parsing iso', function (assert) {
- var offset = moment([2011, 9, 8]).utcOffset(),
- pad = function (input) {
- if (input < 10) {
- return '0' + input;
- }
- return '' + input;
- },
- hourOffset = (offset > 0 ? Math.floor(offset / 60) : Math.ceil(offset / 60)),
- minOffset = offset - (hourOffset * 60),
- tz = (offset >= 0) ?
- '+' + pad(hourOffset) + ':' + pad(minOffset) :
- '-' + pad(-hourOffset) + ':' + pad(-minOffset),
- tz2 = tz.replace(':', ''),
- tz3 = tz2.slice(0, 3),
- //Tz3 removes minutes digit so will break the tests when parsed if they all use the same minutes digit
- minutesForTz3 = pad((4 + minOffset) % 60),
- minute = pad(4 + minOffset),
- formats = [
- ['2011-10-08', '2011-10-08T00:00:00.000' + tz],
- ['2011-10-08T18', '2011-10-08T18:00:00.000' + tz],
- ['2011-10-08T18:04', '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08T18:04:20', '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08T18:04' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08T18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011-10-08T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011-10-08T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011-10-08T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011-10-08T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011-10-08 18', '2011-10-08T18:00:00.000' + tz],
- ['2011-10-08 18:04', '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08 18:04:20', '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08 18:04' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08 18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011-10-08 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-10-08 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011-10-08 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011-10-08 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011-10-08 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011-10-08 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011-W40', '2011-10-03T00:00:00.000' + tz],
- ['2011-W40-6', '2011-10-08T00:00:00.000' + tz],
- ['2011-W40-6T18', '2011-10-08T18:00:00.000' + tz],
- ['2011-W40-6T18:04', '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6T18:04:20', '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6T18:04' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6T18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011-W40-6T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011-W40-6T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011-W40-6T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011-W40-6T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011-W40-6 18', '2011-10-08T18:00:00.000' + tz],
- ['2011-W40-6 18:04', '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6 18:04:20', '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6 18:04' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6 18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011-W40-6 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-W40-6 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011-W40-6 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011-W40-6 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011-W40-6 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011-W40-6 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011-281', '2011-10-08T00:00:00.000' + tz],
- ['2011-281T18', '2011-10-08T18:00:00.000' + tz],
- ['2011-281T18:04', '2011-10-08T18:04:00.000' + tz],
- ['2011-281T18:04:20', '2011-10-08T18:04:20.000' + tz],
- ['2011-281T18:04' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011-281T18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011-281T18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011-281T18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-281T18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011-281T18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011-281T18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011-281T18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011-281T18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011-281 18', '2011-10-08T18:00:00.000' + tz],
- ['2011-281 18:04', '2011-10-08T18:04:00.000' + tz],
- ['2011-281 18:04:20', '2011-10-08T18:04:20.000' + tz],
- ['2011-281 18:04' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011-281 18:04:20' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011-281 18:04' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011-281 18:04:20' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011-281 18:04' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011-281 18:04:20' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011-281 18:04:20.1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011-281 18:04:20.11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011-281 18:04:20.111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['20111008T18', '2011-10-08T18:00:00.000' + tz],
- ['20111008T1804', '2011-10-08T18:04:00.000' + tz],
- ['20111008T180420', '2011-10-08T18:04:20.000' + tz],
- ['20111008T1804' + tz, '2011-10-08T18:04:00.000' + tz],
- ['20111008T180420' + tz, '2011-10-08T18:04:20.000' + tz],
- ['20111008T1804' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['20111008T180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['20111008T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['20111008T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['20111008T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['20111008T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['20111008T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['20111008 18', '2011-10-08T18:00:00.000' + tz],
- ['20111008 1804', '2011-10-08T18:04:00.000' + tz],
- ['20111008 180420', '2011-10-08T18:04:20.000' + tz],
- ['20111008 1804' + tz, '2011-10-08T18:04:00.000' + tz],
- ['20111008 180420' + tz, '2011-10-08T18:04:20.000' + tz],
- ['20111008 1804' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['20111008 180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['20111008 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['20111008 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['20111008 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['20111008 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['20111008 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011W40', '2011-10-03T00:00:00.000' + tz],
- ['2011W406', '2011-10-08T00:00:00.000' + tz],
- ['2011W406T18', '2011-10-08T18:00:00.000' + tz],
- ['2011W406T1804', '2011-10-08T18:04:00.000' + tz],
- ['2011W406T180420', '2011-10-08T18:04:20.000' + tz],
- ['2011W406 1804' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011W406T1804' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011W406T180420' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011W406T1804' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011W406T180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011W406T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011W406T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011W406T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011W406T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011W406T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011W406 18', '2011-10-08T18:00:00.000' + tz],
- ['2011W406 1804', '2011-10-08T18:04:00.000' + tz],
- ['2011W406 180420', '2011-10-08T18:04:20.000' + tz],
- ['2011W406 1804' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011W406 180420' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011W406 180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011W406 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011W406 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011W406 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011W406 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011W406 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011281', '2011-10-08T00:00:00.000' + tz],
- ['2011281T18', '2011-10-08T18:00:00.000' + tz],
- ['2011281T1804', '2011-10-08T18:04:00.000' + tz],
- ['2011281T180420', '2011-10-08T18:04:20.000' + tz],
- ['2011281T1804' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011281T180420' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011281T1804' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011281T180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011281T1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011281T180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011281T180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011281T180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011281T180420,111' + tz2, '2011-10-08T18:04:20.111' + tz],
- ['2011281 18', '2011-10-08T18:00:00.000' + tz],
- ['2011281 1804', '2011-10-08T18:04:00.000' + tz],
- ['2011281 180420', '2011-10-08T18:04:20.000' + tz],
- ['2011281 1804' + tz, '2011-10-08T18:04:00.000' + tz],
- ['2011281 180420' + tz, '2011-10-08T18:04:20.000' + tz],
- ['2011281 1804' + tz2, '2011-10-08T18:04:00.000' + tz],
- ['2011281 180420' + tz2, '2011-10-08T18:04:20.000' + tz],
- ['2011281 1804' + tz3, '2011-10-08T18:' + minutesForTz3 + ':00.000' + tz],
- ['2011281 180420' + tz3, '2011-10-08T18:' + minutesForTz3 + ':20.000' + tz],
- ['2011281 180420,1' + tz2, '2011-10-08T18:04:20.100' + tz],
- ['2011281 180420,11' + tz2, '2011-10-08T18:04:20.110' + tz],
- ['2011281 180420,111' + tz2, '2011-10-08T18:04:20.111' + tz]
- ], i;
- for (i = 0; i < formats.length; i++) {
- assert.equal(moment(formats[i][0]).format('YYYY-MM-DDTHH:mm:ss.SSSZ'),
- formats[i][1], 'moment should be able to parse ISO ' + formats[i][0]);
- assert.equal(moment(formats[i][0], moment.ISO_8601).format('YYYY-MM-DDTHH:mm:ss.SSSZ'),
- formats[i][1], 'moment should be able to parse specified ISO ' + formats[i][0]);
- assert.equal(moment(formats[i][0], moment.ISO_8601, true).format('YYYY-MM-DDTHH:mm:ss.SSSZ'),
- formats[i][1], 'moment should be able to parse specified strict ISO ' + formats[i][0]);
- }
- });
- test('non iso 8601 strings', function (assert) {
- assert.ok(!moment('2015-10T10:15', moment.ISO_8601, true).isValid(), 'incomplete date with time');
- assert.ok(!moment('2015-W10T10:15', moment.ISO_8601, true).isValid(), 'incomplete week date with time');
- assert.ok(!moment('201510', moment.ISO_8601, true).isValid(), 'basic YYYYMM is not allowed');
- assert.ok(!moment('2015W10T1015', moment.ISO_8601, true).isValid(), 'incomplete week date with time (basic)');
- assert.ok(!moment('2015-10-08T1015', moment.ISO_8601, true).isValid(), 'mixing extended and basic format');
- assert.ok(!moment('20151008T10:15', moment.ISO_8601, true).isValid(), 'mixing basic and extended format');
- });
- test('parsing iso week year/week/weekday', function (assert) {
- assert.equal(moment.utc('2007-W01').format(), '2007-01-01T00:00:00+00:00', '2008 week 1 (1st Jan Mon)');
- assert.equal(moment.utc('2008-W01').format(), '2007-12-31T00:00:00+00:00', '2008 week 1 (1st Jan Tue)');
- assert.equal(moment.utc('2003-W01').format(), '2002-12-30T00:00:00+00:00', '2008 week 1 (1st Jan Wed)');
- assert.equal(moment.utc('2009-W01').format(), '2008-12-29T00:00:00+00:00', '2009 week 1 (1st Jan Thu)');
- assert.equal(moment.utc('2010-W01').format(), '2010-01-04T00:00:00+00:00', '2010 week 1 (1st Jan Fri)');
- assert.equal(moment.utc('2011-W01').format(), '2011-01-03T00:00:00+00:00', '2011 week 1 (1st Jan Sat)');
- assert.equal(moment.utc('2012-W01').format(), '2012-01-02T00:00:00+00:00', '2012 week 1 (1st Jan Sun)');
- });
- test('parsing week year/week/weekday (dow 1, doy 4)', function (assert) {
- moment.locale('dow:1,doy:4', {week: {dow: 1, doy: 4}});
- assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2007-01-01T00:00:00+00:00', '2007 week 1 (1st Jan Mon)');
- assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-31T00:00:00+00:00', '2008 week 1 (1st Jan Tue)');
- assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-30T00:00:00+00:00', '2003 week 1 (1st Jan Wed)');
- assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-29T00:00:00+00:00', '2009 week 1 (1st Jan Thu)');
- assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2010-01-04T00:00:00+00:00', '2010 week 1 (1st Jan Fri)');
- assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2011-01-03T00:00:00+00:00', '2011 week 1 (1st Jan Sat)');
- assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2012-01-02T00:00:00+00:00', '2012 week 1 (1st Jan Sun)');
- moment.defineLocale('dow:1,doy:4', null);
- });
- test('parsing week year/week/weekday (dow 1, doy 7)', function (assert) {
- moment.locale('dow:1,doy:7', {week: {dow: 1, doy: 7}});
- assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2007-01-01T00:00:00+00:00', '2007 week 1 (1st Jan Mon)');
- assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-31T00:00:00+00:00', '2008 week 1 (1st Jan Tue)');
- assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-30T00:00:00+00:00', '2003 week 1 (1st Jan Wed)');
- assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-29T00:00:00+00:00', '2009 week 1 (1st Jan Thu)');
- assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2009-12-28T00:00:00+00:00', '2010 week 1 (1st Jan Fri)');
- assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2010-12-27T00:00:00+00:00', '2011 week 1 (1st Jan Sat)');
- assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2011-12-26T00:00:00+00:00', '2012 week 1 (1st Jan Sun)');
- moment.defineLocale('dow:1,doy:7', null);
- });
- test('parsing week year/week/weekday (dow 0, doy 6)', function (assert) {
- moment.locale('dow:0,doy:6', {week: {dow: 0, doy: 6}});
- assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2006-12-31T00:00:00+00:00', '2007 week 1 (1st Jan Mon)');
- assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-30T00:00:00+00:00', '2008 week 1 (1st Jan Tue)');
- assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-29T00:00:00+00:00', '2003 week 1 (1st Jan Wed)');
- assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-28T00:00:00+00:00', '2009 week 1 (1st Jan Thu)');
- assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2009-12-27T00:00:00+00:00', '2010 week 1 (1st Jan Fri)');
- assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2010-12-26T00:00:00+00:00', '2011 week 1 (1st Jan Sat)');
- assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2012-01-01T00:00:00+00:00', '2012 week 1 (1st Jan Sun)');
- moment.defineLocale('dow:0,doy:6', null);
- });
- test('parsing week year/week/weekday (dow 6, doy 12)', function (assert) {
- moment.locale('dow:6,doy:12', {week: {dow: 6, doy: 12}});
- assert.equal(moment.utc('2007-01', 'gggg-ww').format(), '2006-12-30T00:00:00+00:00', '2007 week 1 (1st Jan Mon)');
- assert.equal(moment.utc('2008-01', 'gggg-ww').format(), '2007-12-29T00:00:00+00:00', '2008 week 1 (1st Jan Tue)');
- assert.equal(moment.utc('2003-01', 'gggg-ww').format(), '2002-12-28T00:00:00+00:00', '2003 week 1 (1st Jan Wed)');
- assert.equal(moment.utc('2009-01', 'gggg-ww').format(), '2008-12-27T00:00:00+00:00', '2009 week 1 (1st Jan Thu)');
- assert.equal(moment.utc('2010-01', 'gggg-ww').format(), '2009-12-26T00:00:00+00:00', '2010 week 1 (1st Jan Fri)');
- assert.equal(moment.utc('2011-01', 'gggg-ww').format(), '2011-01-01T00:00:00+00:00', '2011 week 1 (1st Jan Sat)');
- assert.equal(moment.utc('2012-01', 'gggg-ww').format(), '2011-12-31T00:00:00+00:00', '2012 week 1 (1st Jan Sun)');
- });
- test('parsing ISO with Z', function (assert) {
- var i, mom, formats = [
- ['2011-10-08T18:04', '2011-10-08T18:04:00.000'],
- ['2011-10-08T18:04:20', '2011-10-08T18:04:20.000'],
- ['2011-10-08T18:04:20.1', '2011-10-08T18:04:20.100'],
- ['2011-10-08T18:04:20.11', '2011-10-08T18:04:20.110'],
- ['2011-10-08T18:04:20.111', '2011-10-08T18:04:20.111'],
- ['2011-W40-6T18', '2011-10-08T18:00:00.000'],
- ['2011-W40-6T18:04', '2011-10-08T18:04:00.000'],
- ['2011-W40-6T18:04:20', '2011-10-08T18:04:20.000'],
- ['2011-W40-6T18:04:20.1', '2011-10-08T18:04:20.100'],
- ['2011-W40-6T18:04:20.11', '2011-10-08T18:04:20.110'],
- ['2011-W40-6T18:04:20.111', '2011-10-08T18:04:20.111'],
- ['2011-281T18', '2011-10-08T18:00:00.000'],
- ['2011-281T18:04', '2011-10-08T18:04:00.000'],
- ['2011-281T18:04:20', '2011-10-08T18:04:20.000'],
- ['2011-281T18:04:20', '2011-10-08T18:04:20.000'],
- ['2011-281T18:04:20.1', '2011-10-08T18:04:20.100'],
- ['2011-281T18:04:20.11', '2011-10-08T18:04:20.110'],
- ['2011-281T18:04:20.111', '2011-10-08T18:04:20.111']
- ];
- for (i = 0; i < formats.length; i++) {
- mom = moment(formats[i][0] + 'Z').utc();
- assert.equal(mom.format('YYYY-MM-DDTHH:mm:ss.SSS'), formats[i][1], 'moment should be able to parse ISO in UTC ' + formats[i][0] + 'Z');
- mom = moment(formats[i][0] + ' Z').utc();
- assert.equal(mom.format('YYYY-MM-DDTHH:mm:ss.SSS'), formats[i][1], 'moment should be able to parse ISO in UTC ' + formats[i][0] + ' Z');
- }
- });
- test('parsing iso with T', function (assert) {
- assert.equal(moment('2011-10-08T18')._f, 'YYYY-MM-DDTHH', 'should include \'T\' in the format');
- assert.equal(moment('2011-10-08T18:20')._f, 'YYYY-MM-DDTHH:mm', 'should include \'T\' in the format');
- assert.equal(moment('2011-10-08T18:20:13')._f, 'YYYY-MM-DDTHH:mm:ss', 'should include \'T\' in the format');
- assert.equal(moment('2011-10-08T18:20:13.321')._f, 'YYYY-MM-DDTHH:mm:ss.SSSS', 'should include \'T\' in the format');
- assert.equal(moment('2011-10-08 18')._f, 'YYYY-MM-DD HH', 'should not include \'T\' in the format');
- assert.equal(moment('2011-10-08 18:20')._f, 'YYYY-MM-DD HH:mm', 'should not include \'T\' in the format');
- assert.equal(moment('2011-10-08 18:20:13')._f, 'YYYY-MM-DD HH:mm:ss', 'should not include \'T\' in the format');
- assert.equal(moment('2011-10-08 18:20:13.321')._f, 'YYYY-MM-DD HH:mm:ss.SSSS', 'should not include \'T\' in the format');
- });
- test('parsing iso Z timezone', function (assert) {
- var i,
- formats = [
- ['2011-10-08T18:04Z', '2011-10-08T18:04:00.000+00:00'],
- ['2011-10-08T18:04:20Z', '2011-10-08T18:04:20.000+00:00'],
- ['2011-10-08T18:04:20.111Z', '2011-10-08T18:04:20.111+00:00']
- ];
- for (i = 0; i < formats.length; i++) {
- assert.equal(moment.utc(formats[i][0]).format('YYYY-MM-DDTHH:mm:ss.SSSZ'), formats[i][1], 'moment should be able to parse ISO ' + formats[i][0]);
- }
- });
- test('parsing iso Z timezone into local', function (assert) {
- var m = moment('2011-10-08T18:04:20.111Z');
- assert.equal(m.utc().format('YYYY-MM-DDTHH:mm:ss.SSS'), '2011-10-08T18:04:20.111', 'moment should be able to parse ISO 2011-10-08T18:04:20.111Z');
- });
- test('parsing iso with more subsecond precision digits', function (assert) {
- assert.equal(moment.utc('2013-07-31T22:00:00.0000000Z').format(), '2013-07-31T22:00:00+00:00', 'more than 3 subsecond digits');
- });
- test('null or empty', function (assert) {
- assert.equal(moment('').isValid(), false, 'moment(\'\') is not valid');
- assert.equal(moment(null).isValid(), false, 'moment(null) is not valid');
- assert.equal(moment(null, 'YYYY-MM-DD').isValid(), false, 'moment(\'\', \'format\') is not valid');
- assert.equal(moment('', 'YYYY-MM-DD').isValid(), false, 'moment(\'\', \'format\') is not valid');
- assert.equal(moment.utc('').isValid(), false, 'moment.utc(\'\') is not valid');
- assert.equal(moment.utc(null).isValid(), false, 'moment.utc(null) is not valid');
- assert.equal(moment.utc(null, 'YYYY-MM-DD').isValid(), false, 'moment.utc(null) is not valid');
- assert.equal(moment.utc('', 'YYYY-MM-DD').isValid(), false, 'moment.utc(\'\', \'YYYY-MM-DD\') is not valid');
- });
- test('first century', function (assert) {
- assert.equal(moment([0, 0, 1]).format('YYYY-MM-DD'), '0000-01-01', 'Year AD 0');
- assert.equal(moment([99, 0, 1]).format('YYYY-MM-DD'), '0099-01-01', 'Year AD 99');
- assert.equal(moment([999, 0, 1]).format('YYYY-MM-DD'), '0999-01-01', 'Year AD 999');
- assert.equal(moment('0 1 1', 'YYYY MM DD').format('YYYY-MM-DD'), '0000-01-01', 'Year AD 0');
- assert.equal(moment('999 1 1', 'YYYY MM DD').format('YYYY-MM-DD'), '0999-01-01', 'Year AD 999');
- assert.equal(moment('0 1 1', 'YYYYY MM DD').format('YYYYY-MM-DD'), '00000-01-01', 'Year AD 0');
- assert.equal(moment('99 1 1', 'YYYYY MM DD').format('YYYYY-MM-DD'), '00099-01-01', 'Year AD 99');
- assert.equal(moment('999 1 1', 'YYYYY MM DD').format('YYYYY-MM-DD'), '00999-01-01', 'Year AD 999');
- });
- test('six digit years', function (assert) {
- assert.equal(moment([-270000, 0, 1]).format('YYYYY-MM-DD'), '-270000-01-01', 'format BC 270,001');
- assert.equal(moment([270000, 0, 1]).format('YYYYY-MM-DD'), '270000-01-01', 'format AD 270,000');
- assert.equal(moment('-270000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), -270000, 'parse BC 270,001');
- assert.equal(moment('270000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), 270000, 'parse AD 270,000');
- assert.equal(moment('+270000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), 270000, 'parse AD +270,000');
- assert.equal(moment.utc('-270000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), -270000, 'parse utc BC 270,001');
- assert.equal(moment.utc('270000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), 270000, 'parse utc AD 270,000');
- assert.equal(moment.utc('+270000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), 270000, 'parse utc AD +270,000');
- });
- test('negative four digit years', function (assert) {
- assert.equal(moment('-1000-01-01', 'YYYYY-MM-DD').toDate().getFullYear(), -1000, 'parse BC 1,001');
- assert.equal(moment.utc('-1000-01-01', 'YYYYY-MM-DD').toDate().getUTCFullYear(), -1000, 'parse utc BC 1,001');
- });
- test('strict parsing', function (assert) {
- assert.equal(moment('2014-', 'YYYY-Q', true).isValid(), false, 'fail missing quarter');
- assert.equal(moment('2012-05', 'YYYY-MM', true).format('YYYY-MM'), '2012-05', 'parse correct string');
- assert.equal(moment(' 2012-05', 'YYYY-MM', true).isValid(), false, 'fail on extra whitespace');
- assert.equal(moment('foo 2012-05', '[foo] YYYY-MM', true).format('YYYY-MM'), '2012-05', 'handle fixed text');
- assert.equal(moment('2012 05', 'YYYY-MM', true).isValid(), false, 'fail on different separator');
- assert.equal(moment('2012 05', 'YYYY MM DD', true).isValid(), false, 'fail on too many tokens');
- assert.equal(moment('05 30 2010', ['DD MM YYYY', 'MM DD YYYY'], true).format('MM DD YYYY'), '05 30 2010', 'array with bad date');
- assert.equal(moment('05 30 2010', ['', 'MM DD YYYY'], true).format('MM DD YYYY'), '05 30 2010', 'array with invalid format');
- assert.equal(moment('05 30 2010', [' DD MM YYYY', 'MM DD YYYY'], true).format('MM DD YYYY'), '05 30 2010', 'array with non-matching format');
- assert.equal(moment('2010.*...', 'YYYY.*', true).isValid(), false, 'invalid format with regex chars');
- assert.equal(moment('2010.*', 'YYYY.*', true).year(), 2010, 'valid format with regex chars');
- assert.equal(moment('.*2010.*', '.*YYYY.*', true).year(), 2010, 'valid format with regex chars on both sides');
- //strict tokens
- assert.equal(moment('-5-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid negative year');
- assert.equal(moment('2-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid one-digit year');
- assert.equal(moment('20-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid two-digit year');
- assert.equal(moment('201-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid three-digit year');
- assert.equal(moment('2010-05-25', 'YYYY-MM-DD', true).isValid(), true, 'valid four-digit year');
- assert.equal(moment('22010-05-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid five-digit year');
- assert.equal(moment('12-05-25', 'YY-MM-DD', true).isValid(), true, 'valid two-digit year');
- assert.equal(moment('2012-05-25', 'YY-MM-DD', true).isValid(), false, 'invalid four-digit year');
- assert.equal(moment('-5-05-25', 'Y-MM-DD', true).isValid(), true, 'valid negative year');
- assert.equal(moment('2-05-25', 'Y-MM-DD', true).isValid(), true, 'valid one-digit year');
- assert.equal(moment('20-05-25', 'Y-MM-DD', true).isValid(), true, 'valid two-digit year');
- assert.equal(moment('201-05-25', 'Y-MM-DD', true).isValid(), true, 'valid three-digit year');
- assert.equal(moment('2012-5-25', 'YYYY-M-DD', true).isValid(), true, 'valid one-digit month');
- assert.equal(moment('2012-5-25', 'YYYY-MM-DD', true).isValid(), false, 'invalid one-digit month');
- assert.equal(moment('2012-05-25', 'YYYY-M-DD', true).isValid(), true, 'valid one-digit month');
- assert.equal(moment('2012-05-25', 'YYYY-MM-DD', true).isValid(), true, 'valid one-digit month');
- assert.equal(moment('2012-05-2', 'YYYY-MM-D', true).isValid(), true, 'valid one-digit day');
- assert.equal(moment('2012-05-2', 'YYYY-MM-DD', true).isValid(), false, 'invalid one-digit day');
- assert.equal(moment('2012-05-02', 'YYYY-MM-D', true).isValid(), true, 'valid two-digit day');
- assert.equal(moment('2012-05-02', 'YYYY-MM-DD', true).isValid(), true, 'valid two-digit day');
- assert.equal(moment('+002012-05-25', 'YYYYY-MM-DD', true).isValid(), true, 'valid six-digit year');
- assert.equal(moment('+2012-05-25', 'YYYYY-MM-DD', true).isValid(), false, 'invalid four-digit year');
- //thse are kinda pointless, but they should work as expected
- assert.equal(moment('1', 'S', true).isValid(), true, 'valid one-digit milisecond');
- assert.equal(moment('12', 'S', true).isValid(), false, 'invalid two-digit milisecond');
- assert.equal(moment('123', 'S', true).isValid(), false, 'invalid three-digit milisecond');
- assert.equal(moment('1', 'SS', true).isValid(), false, 'invalid one-digit milisecond');
- assert.equal(moment('12', 'SS', true).isValid(), true, 'valid two-digit milisecond');
- assert.equal(moment('123', 'SS', true).isValid(), false, 'invalid three-digit milisecond');
- assert.equal(moment('1', 'SSS', true).isValid(), false, 'invalid one-digit milisecond');
- assert.equal(moment('12', 'SSS', true).isValid(), false, 'invalid two-digit milisecond');
- assert.equal(moment('123', 'SSS', true).isValid(), true, 'valid three-digit milisecond');
- // strict parsing respects month length
- assert.ok(moment('1 January 2000', 'D MMMM YYYY', true).isValid(), 'capital long-month + MMMM');
- assert.ok(!moment('1 January 2000', 'D MMM YYYY', true).isValid(), 'capital long-month + MMM');
- assert.ok(!moment('1 Jan 2000', 'D MMMM YYYY', true).isValid(), 'capital short-month + MMMM');
- assert.ok(moment('1 Jan 2000', 'D MMM YYYY', true).isValid(), 'capital short-month + MMM');
- assert.ok(moment('1 january 2000', 'D MMMM YYYY', true).isValid(), 'lower long-month + MMMM');
- assert.ok(!moment('1 january 2000', 'D MMM YYYY', true).isValid(), 'lower long-month + MMM');
- assert.ok(!moment('1 jan 2000', 'D MMMM YYYY', true).isValid(), 'lower short-month + MMMM');
- assert.ok(moment('1 jan 2000', 'D MMM YYYY', true).isValid(), 'lower short-month + MMM');
- });
- test('parsing into a locale', function (assert) {
- moment.defineLocale('parselocale', {
- months : 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_'),
- monthsShort : 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_')
- });
- moment.locale('en');
- assert.equal(moment('2012 seven', 'YYYY MMM', 'parselocale').month(), 6, 'should be able to parse in a specific locale');
- moment.locale('parselocale');
- assert.equal(moment('2012 july', 'YYYY MMM', 'en').month(), 6, 'should be able to parse in a specific locale');
- moment.defineLocale('parselocale', null);
- });
- function getVerifier(test) {
- return function (input, format, expected, description, asymetrical) {
- var m = moment(input, format);
- test.equal(m.format('YYYY MM DD'), expected, 'compare: ' + description);
- //test round trip
- if (!asymetrical) {
- test.equal(m.format(format), input, 'round trip: ' + description);
- }
- };
- }
- test('parsing week and weekday information', function (assert) {
- var ver = getVerifier(assert);
- // year
- ver('12', 'gg', '2012 01 01', 'week-year two digits');
- ver('2012', 'gggg', '2012 01 01', 'week-year four digits');
- ver('99', 'gg', '1998 12 27', 'week-year two digits previous year');
- ver('1999', 'gggg', '1998 12 27', 'week-year four digits previous year');
- ver('99', 'GG', '1999 01 04', 'iso week-year two digits');
- ver('1999', 'GGGG', '1999 01 04', 'iso week-year four digits');
- ver('13', 'GG', '2012 12 31', 'iso week-year two digits previous year');
- ver('2013', 'GGGG', '2012 12 31', 'iso week-year four digits previous year');
- // year + week
- ver('1999 37', 'gggg w', '1999 09 05', 'week');
- ver('1999 37', 'gggg ww', '1999 09 05', 'week double');
- ver('1999 37', 'GGGG W', '1999 09 13', 'iso week');
- ver('1999 37', 'GGGG WW', '1999 09 13', 'iso week double');
- ver('1999 37 4', 'GGGG WW E', '1999 09 16', 'iso day');
- ver('1999 37 04', 'GGGG WW E', '1999 09 16', 'iso day wide', true);
- ver('1999 37 4', 'gggg ww e', '1999 09 09', 'day');
- ver('1999 37 04', 'gggg ww e', '1999 09 09', 'day wide', true);
- // year + week + day
- ver('1999 37 4', 'gggg ww d', '1999 09 09', 'd');
- ver('1999 37 Th', 'gggg ww dd', '1999 09 09', 'dd');
- ver('1999 37 Thu', 'gggg ww ddd', '1999 09 09', 'ddd');
- ver('1999 37 Thursday', 'gggg ww dddd', '1999 09 09', 'dddd');
- // lower-order only
- assert.equal(moment('22', 'ww').week(), 22, 'week sets the week by itself');
- assert.equal(moment('22', 'ww').weekYear(), moment().weekYear(), 'week keeps this year');
- assert.equal(moment('2012 22', 'YYYY ww').weekYear(), 2012, 'week keeps parsed year');
- assert.equal(moment('22', 'WW').isoWeek(), 22, 'iso week sets the week by itself');
- assert.equal(moment('2012 22', 'YYYY WW').weekYear(), 2012, 'iso week keeps parsed year');
- assert.equal(moment('22', 'WW').isoWeekYear(), moment().isoWeekYear(), 'iso week keeps this year');
- // order
- ver('6 2013 2', 'e gggg w', '2013 01 12', 'order doesn\'t matter');
- ver('6 2013 2', 'E GGGG W', '2013 01 12', 'iso order doesn\'t matter');
- //can parse other stuff too
- assert.equal(moment('1999-W37-4 3:30', 'GGGG-[W]WW-E HH:mm').format('YYYY MM DD HH:mm'), '1999 09 16 03:30', 'parsing weeks and hours');
- // In safari, all years before 1300 are shifted back with one day.
- // http://stackoverflow.com/questions/20768975/safari-subtracts-1-day-from-dates-before-1300
- if (new Date('1300-01-01').getUTCFullYear() === 1300) {
- // Years less than 100
- ver('0098-06', 'GGGG-WW', '0098 02 03', 'small years work', true);
- }
- });
- test('parsing localized weekdays', function (assert) {
- var ver = getVerifier(assert);
- try {
- moment.locale('dow:1,doy:4', {
- weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
- weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
- weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
- week: {dow: 1, doy: 4}
- });
- ver('1999 37 4', 'GGGG WW E', '1999 09 16', 'iso ignores locale');
- ver('1999 37 7', 'GGGG WW E', '1999 09 19', 'iso ignores locale');
- ver('1999 37 0', 'gggg ww e', '1999 09 13', 'localized e uses local doy and dow: 0 = monday');
- ver('1999 37 4', 'gggg ww e', '1999 09 17', 'localized e uses local doy and dow: 4 = friday');
- ver('1999 37 1', 'gggg ww d', '1999 09 13', 'localized d uses 0-indexed days: 1 = monday');
- ver('1999 37 Lu', 'gggg ww dd', '1999 09 13', 'localized d uses 0-indexed days: Mo');
- ver('1999 37 lun.', 'gggg ww ddd', '1999 09 13', 'localized d uses 0-indexed days: Mon');
- ver('1999 37 lundi', 'gggg ww dddd', '1999 09 13', 'localized d uses 0-indexed days: Monday');
- ver('1999 37 4', 'gggg ww d', '1999 09 16', 'localized d uses 0-indexed days: 4');
- //sunday goes at the end of the week
- ver('1999 37 0', 'gggg ww d', '1999 09 19', 'localized d uses 0-indexed days: 0 = sund');
- ver('1999 37 Di', 'gggg ww dd', '1999 09 19', 'localized d uses 0-indexed days: 0 = sund');
- }
- finally {
- moment.locale('en');
- }
- });
- test('parsing with customized two-digit year', function (assert) {
- var original = moment.parseTwoDigitYear;
- try {
- assert.equal(moment('68', 'YY').year(), 2068);
- assert.equal(moment('69', 'YY').year(), 1969);
- moment.parseTwoDigitYear = function (input) {
- return +input + (+input > 30 ? 1900 : 2000);
- };
- assert.equal(moment('68', 'YY').year(), 1968);
- assert.equal(moment('67', 'YY').year(), 1967);
- assert.equal(moment('31', 'YY').year(), 1931);
- assert.equal(moment('30', 'YY').year(), 2030);
- }
- finally {
- moment.parseTwoDigitYear = original;
- }
- });
- test('array with strings', function (assert) {
- assert.equal(moment(['2014', '7', '31']).isValid(), true, 'string array + isValid');
- });
- test('object with strings', function (assert) {
- assert.equal(moment({year: '2014', month: '7', day: '31'}).isValid(), true, 'string object + isValid');
- });
- test('utc with array of formats', function (assert) {
- assert.equal(moment.utc('2014-01-01', ['YYYY-MM-DD', 'YYYY-MM']).format(), '2014-01-01T00:00:00+00:00', 'moment.utc works with array of formats');
- });
- test('parsing invalid string weekdays', function (assert) {
- assert.equal(false, moment('a', 'dd').isValid(),
- 'dd with invalid weekday, non-strict');
- assert.equal(false, moment('a', 'dd', true).isValid(),
- 'dd with invalid weekday, strict');
- assert.equal(false, moment('a', 'ddd').isValid(),
- 'ddd with invalid weekday, non-strict');
- assert.equal(false, moment('a', 'ddd', true).isValid(),
- 'ddd with invalid weekday, strict');
- assert.equal(false, moment('a', 'dddd').isValid(),
- 'dddd with invalid weekday, non-strict');
- assert.equal(false, moment('a', 'dddd', true).isValid(),
- 'dddd with invalid weekday, strict');
- });
- test('milliseconds', function (assert) {
- assert.equal(moment('1', 'S').millisecond(), 100);
- assert.equal(moment('12', 'SS').millisecond(), 120);
- assert.equal(moment('123', 'SSS').millisecond(), 123);
- assert.equal(moment('1234', 'SSSS').millisecond(), 123);
- assert.equal(moment('12345', 'SSSSS').millisecond(), 123);
- assert.equal(moment('123456', 'SSSSSS').millisecond(), 123);
- assert.equal(moment('1234567', 'SSSSSSS').millisecond(), 123);
- assert.equal(moment('12345678', 'SSSSSSSS').millisecond(), 123);
- assert.equal(moment('123456789', 'SSSSSSSSS').millisecond(), 123);
- });
- test('hmm', function (assert) {
- assert.equal(moment('123', 'hmm', true).format('HH:mm:ss'), '01:23:00', '123 with hmm');
- assert.equal(moment('123a', 'hmmA', true).format('HH:mm:ss'), '01:23:00', '123a with hmmA');
- assert.equal(moment('123p', 'hmmA', true).format('HH:mm:ss'), '13:23:00', '123p with hmmA');
- assert.equal(moment('1234', 'hmm', true).format('HH:mm:ss'), '12:34:00', '1234 with hmm');
- assert.equal(moment('1234a', 'hmmA', true).format('HH:mm:ss'), '00:34:00', '1234a with hmmA');
- assert.equal(moment('1234p', 'hmmA', true).format('HH:mm:ss'), '12:34:00', '1234p with hmmA');
- assert.equal(moment('12345', 'hmmss', true).format('HH:mm:ss'), '01:23:45', '12345 with hmmss');
- assert.equal(moment('12345a', 'hmmssA', true).format('HH:mm:ss'), '01:23:45', '12345a with hmmssA');
- assert.equal(moment('12345p', 'hmmssA', true).format('HH:mm:ss'), '13:23:45', '12345p with hmmssA');
- assert.equal(moment('112345', 'hmmss', true).format('HH:mm:ss'), '11:23:45', '112345 with hmmss');
- assert.equal(moment('112345a', 'hmmssA', true).format('HH:mm:ss'), '11:23:45', '112345a with hmmssA');
- assert.equal(moment('112345p', 'hmmssA', true).format('HH:mm:ss'), '23:23:45', '112345p with hmmssA');
- assert.equal(moment('023', 'Hmm', true).format('HH:mm:ss'), '00:23:00', '023 with Hmm');
- assert.equal(moment('123', 'Hmm', true).format('HH:mm:ss'), '01:23:00', '123 with Hmm');
- assert.equal(moment('1234', 'Hmm', true).format('HH:mm:ss'), '12:34:00', '1234 with Hmm');
- assert.equal(moment('1534', 'Hmm', true).format('HH:mm:ss'), '15:34:00', '1234 with Hmm');
- assert.equal(moment('12345', 'Hmmss', true).format('HH:mm:ss'), '01:23:45', '12345 with Hmmss');
- assert.equal(moment('112345', 'Hmmss', true).format('HH:mm:ss'), '11:23:45', '112345 with Hmmss');
- assert.equal(moment('172345', 'Hmmss', true).format('HH:mm:ss'), '17:23:45', '112345 with Hmmss');
- });
- test('Y token', function (assert) {
- assert.equal(moment('1-1-2010', 'M-D-Y', true).year(), 2010, 'parsing Y');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('creation data');
- test('valid date', function (assert) {
- var dat = moment('1992-10-22');
- var orig = dat.creationData();
- assert.equal(dat.isValid(), true, '1992-10-22 is valid');
- assert.equal(orig.input, '1992-10-22', 'original input is not correct.');
- assert.equal(orig.format, 'YYYY-MM-DD', 'original format is defined.');
- assert.equal(orig.locale._abbr, 'en', 'default locale is en');
- assert.equal(orig.isUTC, false, 'not a UTC date');
- });
- test('valid date at fr locale', function (assert) {
- var dat = moment('1992-10-22', 'YYYY-MM-DD', 'fr');
- var orig = dat.creationData();
- assert.equal(orig.locale._abbr, 'fr', 'locale is fr');
- });
- test('valid date with formats', function (assert) {
- var dat = moment('29-06-1995', ['MM-DD-YYYY', 'DD-MM', 'DD-MM-YYYY']);
- var orig = dat.creationData();
- assert.equal(orig.format, 'DD-MM-YYYY', 'DD-MM-YYYY format is defined.');
- });
- test('strict', function (assert) {
- assert.ok(moment('2015-01-02', 'YYYY-MM-DD', true).creationData().strict, 'strict is true');
- assert.ok(!moment('2015-01-02', 'YYYY-MM-DD').creationData().strict, 'strict is true');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function each(array, callback) {
- var i;
- for (i = 0; i < array.length; i++) {
- callback(array[i], i, array);
- }
- }
- module('days in month');
- test('days in month', function (assert) {
- each([31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], function (days, i) {
- var firstDay = moment([2012, i]),
- lastDay = moment([2012, i, days]);
- assert.equal(firstDay.daysInMonth(), days, firstDay.format('L') + ' should have ' + days + ' days.');
- assert.equal(lastDay.daysInMonth(), days, lastDay.format('L') + ' should have ' + days + ' days.');
- });
- });
- test('days in month leap years', function (assert) {
- assert.equal(moment([2010, 1]).daysInMonth(), 28, 'Feb 2010 should have 28 days');
- assert.equal(moment([2100, 1]).daysInMonth(), 28, 'Feb 2100 should have 28 days');
- assert.equal(moment([2008, 1]).daysInMonth(), 29, 'Feb 2008 should have 29 days');
- assert.equal(moment([2000, 1]).daysInMonth(), 29, 'Feb 2000 should have 29 days');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function hasOwnProp(a, b) {
- return Object.prototype.hasOwnProperty.call(a, b);
- }
- function extend(a, b) {
- for (var i in b) {
- if (hasOwnProp(b, i)) {
- a[i] = b[i];
- }
- }
- if (hasOwnProp(b, 'toString')) {
- a.toString = b.toString;
- }
- if (hasOwnProp(b, 'valueOf')) {
- a.valueOf = b.valueOf;
- }
- return a;
- }
- var hookCallback;
- function hooks () {
- return hookCallback.apply(null, arguments);
- }
- // This is done to register the method called with moment()
- // without creating circular dependencies.
- function setHookCallback (callback) {
- hookCallback = callback;
- }
- function isUndefined(input) {
- return input === void 0;
- }
- function warn(msg) {
- if (hooks.suppressDeprecationWarnings === false &&
- (typeof console !== 'undefined') && console.warn) {
- console.warn('Deprecation warning: ' + msg);
- }
- }
- function deprecate(msg, fn) {
- var firstTime = true;
- return extend(function () {
- if (firstTime) {
- warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack);
- firstTime = false;
- }
- return fn.apply(this, arguments);
- }, fn);
- }
- var deprecations = {};
- function deprecateSimple(name, msg) {
- if (!deprecations[name]) {
- warn(msg);
- deprecations[name] = true;
- }
- }
- hooks.suppressDeprecationWarnings = false;
- module('deprecate');
- test('deprecate', function (assert) {
- var fn = function () {};
- var deprecatedFn = deprecate('testing deprecation', fn);
- deprecatedFn();
- expect(0);
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function equal(assert, a, b, message) {
- assert.ok(Math.abs(a - b) < 0.00000001, '(' + a + ' === ' + b + ') ' + message);
- }
- function dstForYear(year) {
- var start = moment([year]),
- end = moment([year + 1]),
- current = start.clone(),
- last;
- while (current < end) {
- last = current.clone();
- current.add(24, 'hour');
- if (last.utcOffset() !== current.utcOffset()) {
- end = current.clone();
- current = last.clone();
- break;
- }
- }
- while (current < end) {
- last = current.clone();
- current.add(1, 'hour');
- if (last.utcOffset() !== current.utcOffset()) {
- return {
- moment : last,
- diff : -(current.utcOffset() - last.utcOffset()) / 60
- };
- }
- }
- }
- module('diff');
- test('diff', function (assert) {
- assert.equal(moment(1000).diff(0), 1000, '1 second - 0 = 1000');
- assert.equal(moment(1000).diff(500), 500, '1 second - 0.5 seconds = 500');
- assert.equal(moment(0).diff(1000), -1000, '0 - 1 second = -1000');
- assert.equal(moment(new Date(1000)).diff(1000), 0, '1 second - 1 second = 0');
- var oneHourDate = new Date(2015, 5, 21),
- nowDate = new Date(+oneHourDate);
- oneHourDate.setHours(oneHourDate.getHours() + 1);
- assert.equal(moment(oneHourDate).diff(nowDate), 60 * 60 * 1000, '1 hour from now = 3600000');
- });
- test('diff key after', function (assert) {
- assert.equal(moment([2010]).diff([2011], 'years'), -1, 'year diff');
- assert.equal(moment([2010]).diff([2010, 2], 'months'), -2, 'month diff');
- assert.equal(moment([2010]).diff([2010, 0, 7], 'weeks'), 0, 'week diff');
- assert.equal(moment([2010]).diff([2010, 0, 8], 'weeks'), -1, 'week diff');
- assert.equal(moment([2010]).diff([2010, 0, 21], 'weeks'), -2, 'week diff');
- assert.equal(moment([2010]).diff([2010, 0, 22], 'weeks'), -3, 'week diff');
- assert.equal(moment([2010]).diff([2010, 0, 4], 'days'), -3, 'day diff');
- assert.equal(moment([2010]).diff([2010, 0, 1, 4], 'hours'), -4, 'hour diff');
- assert.equal(moment([2010]).diff([2010, 0, 1, 0, 5], 'minutes'), -5, 'minute diff');
- assert.equal(moment([2010]).diff([2010, 0, 1, 0, 0, 6], 'seconds'), -6, 'second diff');
- });
- test('diff key before', function (assert) {
- assert.equal(moment([2011]).diff([2010], 'years'), 1, 'year diff');
- assert.equal(moment([2010, 2]).diff([2010], 'months'), 2, 'month diff');
- assert.equal(moment([2010, 0, 4]).diff([2010], 'days'), 3, 'day diff');
- assert.equal(moment([2010, 0, 7]).diff([2010], 'weeks'), 0, 'week diff');
- assert.equal(moment([2010, 0, 8]).diff([2010], 'weeks'), 1, 'week diff');
- assert.equal(moment([2010, 0, 21]).diff([2010], 'weeks'), 2, 'week diff');
- assert.equal(moment([2010, 0, 22]).diff([2010], 'weeks'), 3, 'week diff');
- assert.equal(moment([2010, 0, 1, 4]).diff([2010], 'hours'), 4, 'hour diff');
- assert.equal(moment([2010, 0, 1, 0, 5]).diff([2010], 'minutes'), 5, 'minute diff');
- assert.equal(moment([2010, 0, 1, 0, 0, 6]).diff([2010], 'seconds'), 6, 'second diff');
- });
- test('diff key before singular', function (assert) {
- assert.equal(moment([2011]).diff([2010], 'year'), 1, 'year diff singular');
- assert.equal(moment([2010, 2]).diff([2010], 'month'), 2, 'month diff singular');
- assert.equal(moment([2010, 0, 4]).diff([2010], 'day'), 3, 'day diff singular');
- assert.equal(moment([2010, 0, 7]).diff([2010], 'week'), 0, 'week diff singular');
- assert.equal(moment([2010, 0, 8]).diff([2010], 'week'), 1, 'week diff singular');
- assert.equal(moment([2010, 0, 21]).diff([2010], 'week'), 2, 'week diff singular');
- assert.equal(moment([2010, 0, 22]).diff([2010], 'week'), 3, 'week diff singular');
- assert.equal(moment([2010, 0, 1, 4]).diff([2010], 'hour'), 4, 'hour diff singular');
- assert.equal(moment([2010, 0, 1, 0, 5]).diff([2010], 'minute'), 5, 'minute diff singular');
- assert.equal(moment([2010, 0, 1, 0, 0, 6]).diff([2010], 'second'), 6, 'second diff singular');
- });
- test('diff key before abbreviated', function (assert) {
- assert.equal(moment([2011]).diff([2010], 'y'), 1, 'year diff abbreviated');
- assert.equal(moment([2010, 2]).diff([2010], 'M'), 2, 'month diff abbreviated');
- assert.equal(moment([2010, 0, 4]).diff([2010], 'd'), 3, 'day diff abbreviated');
- assert.equal(moment([2010, 0, 7]).diff([2010], 'w'), 0, 'week diff abbreviated');
- assert.equal(moment([2010, 0, 8]).diff([2010], 'w'), 1, 'week diff abbreviated');
- assert.equal(moment([2010, 0, 21]).diff([2010], 'w'), 2, 'week diff abbreviated');
- assert.equal(moment([2010, 0, 22]).diff([2010], 'w'), 3, 'week diff abbreviated');
- assert.equal(moment([2010, 0, 1, 4]).diff([2010], 'h'), 4, 'hour diff abbreviated');
- assert.equal(moment([2010, 0, 1, 0, 5]).diff([2010], 'm'), 5, 'minute diff abbreviated');
- assert.equal(moment([2010, 0, 1, 0, 0, 6]).diff([2010], 's'), 6, 'second diff abbreviated');
- });
- test('diff month', function (assert) {
- assert.equal(moment([2011, 0, 31]).diff([2011, 2, 1], 'months'), -1, 'month diff');
- });
- test('diff across DST', function (assert) {
- var dst = dstForYear(2012), a, b, daysInMonth;
- if (!dst) {
- assert.equal(42, 42, 'at least one assertion');
- return;
- }
- a = dst.moment;
- b = a.clone().utc().add(12, 'hours').local();
- daysInMonth = (a.daysInMonth() + b.daysInMonth()) / 2;
- assert.equal(b.diff(a, 'milliseconds', true), 12 * 60 * 60 * 1000,
- 'ms diff across DST');
- assert.equal(b.diff(a, 'seconds', true), 12 * 60 * 60,
- 'second diff across DST');
- assert.equal(b.diff(a, 'minutes', true), 12 * 60,
- 'minute diff across DST');
- assert.equal(b.diff(a, 'hours', true), 12,
- 'hour diff across DST');
- assert.equal(b.diff(a, 'days', true), (12 - dst.diff) / 24,
- 'day diff across DST');
- equal(assert, b.diff(a, 'weeks', true), (12 - dst.diff) / 24 / 7,
- 'week diff across DST');
- assert.ok(0.95 / (2 * 31) < b.diff(a, 'months', true),
- 'month diff across DST, lower bound');
- assert.ok(b.diff(a, 'month', true) < 1.05 / (2 * 28),
- 'month diff across DST, upper bound');
- assert.ok(0.95 / (2 * 31 * 12) < b.diff(a, 'years', true),
- 'year diff across DST, lower bound');
- assert.ok(b.diff(a, 'year', true) < 1.05 / (2 * 28 * 12),
- 'year diff across DST, upper bound');
- a = dst.moment;
- b = a.clone().utc().add(12 + dst.diff, 'hours').local();
- daysInMonth = (a.daysInMonth() + b.daysInMonth()) / 2;
- assert.equal(b.diff(a, 'milliseconds', true),
- (12 + dst.diff) * 60 * 60 * 1000,
- 'ms diff across DST');
- assert.equal(b.diff(a, 'seconds', true), (12 + dst.diff) * 60 * 60,
- 'second diff across DST');
- assert.equal(b.diff(a, 'minutes', true), (12 + dst.diff) * 60,
- 'minute diff across DST');
- assert.equal(b.diff(a, 'hours', true), (12 + dst.diff),
- 'hour diff across DST');
- assert.equal(b.diff(a, 'days', true), 12 / 24, 'day diff across DST');
- equal(assert, b.diff(a, 'weeks', true), 12 / 24 / 7,
- 'week diff across DST');
- assert.ok(0.95 / (2 * 31) < b.diff(a, 'months', true),
- 'month diff across DST, lower bound');
- assert.ok(b.diff(a, 'month', true) < 1.05 / (2 * 28),
- 'month diff across DST, upper bound');
- assert.ok(0.95 / (2 * 31 * 12) < b.diff(a, 'years', true),
- 'year diff across DST, lower bound');
- assert.ok(b.diff(a, 'year', true) < 1.05 / (2 * 28 * 12),
- 'year diff across DST, upper bound');
- });
- test('diff overflow', function (assert) {
- assert.equal(moment([2011]).diff([2010], 'months'), 12, 'month diff');
- assert.equal(moment([2010, 0, 2]).diff([2010], 'hours'), 24, 'hour diff');
- assert.equal(moment([2010, 0, 1, 2]).diff([2010], 'minutes'), 120, 'minute diff');
- assert.equal(moment([2010, 0, 1, 0, 4]).diff([2010], 'seconds'), 240, 'second diff');
- });
- test('diff between utc and local', function (assert) {
- if (moment([2012]).utcOffset() === moment([2011]).utcOffset()) {
- // Russia's utc offset on 1st of Jan 2012 vs 2011 is different
- assert.equal(moment([2012]).utc().diff([2011], 'years'), 1, 'year diff');
- }
- assert.equal(moment([2010, 2, 2]).utc().diff([2010, 0, 2], 'months'), 2, 'month diff');
- assert.equal(moment([2010, 0, 4]).utc().diff([2010], 'days'), 3, 'day diff');
- assert.equal(moment([2010, 0, 22]).utc().diff([2010], 'weeks'), 3, 'week diff');
- assert.equal(moment([2010, 0, 1, 4]).utc().diff([2010], 'hours'), 4, 'hour diff');
- assert.equal(moment([2010, 0, 1, 0, 5]).utc().diff([2010], 'minutes'), 5, 'minute diff');
- assert.equal(moment([2010, 0, 1, 0, 0, 6]).utc().diff([2010], 'seconds'), 6, 'second diff');
- });
- test('diff floored', function (assert) {
- assert.equal(moment([2010, 0, 1, 23]).diff([2010], 'day'), 0, '23 hours = 0 days');
- assert.equal(moment([2010, 0, 1, 23, 59]).diff([2010], 'day'), 0, '23:59 hours = 0 days');
- assert.equal(moment([2010, 0, 1, 24]).diff([2010], 'day'), 1, '24 hours = 1 day');
- assert.equal(moment([2010, 0, 2]).diff([2011, 0, 1], 'year'), 0, 'year rounded down');
- assert.equal(moment([2011, 0, 1]).diff([2010, 0, 2], 'year'), 0, 'year rounded down');
- assert.equal(moment([2010, 0, 2]).diff([2011, 0, 2], 'year'), -1, 'year rounded down');
- assert.equal(moment([2011, 0, 2]).diff([2010, 0, 2], 'year'), 1, 'year rounded down');
- });
- test('year diffs include dates', function (assert) {
- assert.ok(moment([2012, 1, 19]).diff(moment([2002, 1, 20]), 'years', true) < 10, 'year diff should include date of month');
- });
- test('month diffs', function (assert) {
- // due to floating point math errors, these tests just need to be accurate within 0.00000001
- assert.equal(moment([2012, 0, 1]).diff([2012, 1, 1], 'months', true), -1, 'Jan 1 to Feb 1 should be 1 month');
- equal(assert, moment([2012, 0, 1]).diff([2012, 0, 1, 12], 'months', true), -0.5 / 31, 'Jan 1 to Jan 1 noon should be 0.5 / 31 months');
- assert.equal(moment([2012, 0, 15]).diff([2012, 1, 15], 'months', true), -1, 'Jan 15 to Feb 15 should be 1 month');
- assert.equal(moment([2012, 0, 28]).diff([2012, 1, 28], 'months', true), -1, 'Jan 28 to Feb 28 should be 1 month');
- assert.ok(moment([2012, 0, 31]).diff([2012, 1, 29], 'months', true), -1, 'Jan 31 to Feb 29 should be 1 month');
- assert.ok(-1 > moment([2012, 0, 31]).diff([2012, 2, 1], 'months', true), 'Jan 31 to Mar 1 should be more than 1 month');
- assert.ok(-30 / 28 < moment([2012, 0, 31]).diff([2012, 2, 1], 'months', true), 'Jan 31 to Mar 1 should be less than 1 month and 1 day');
- equal(assert, moment([2012, 0, 1]).diff([2012, 0, 31], 'months', true), -(30 / 31), 'Jan 1 to Jan 31 should be 30 / 31 months');
- assert.ok(0 < moment('2014-02-01').diff(moment('2014-01-31'), 'months', true), 'jan-31 to feb-1 diff is positive');
- });
- test('exact month diffs', function (assert) {
- // generate all pairs of months and compute month diff, with fixed day
- // of month = 15.
- var m1, m2;
- for (m1 = 0; m1 < 12; ++m1) {
- for (m2 = m1; m2 < 12; ++m2) {
- assert.equal(moment([2013, m2, 15]).diff(moment([2013, m1, 15]), 'months', true), m2 - m1,
- 'month diff from 2013-' + m1 + '-15 to 2013-' + m2 + '-15');
- }
- }
- });
- test('year diffs', function (assert) {
- // due to floating point math errors, these tests just need to be accurate within 0.00000001
- equal(assert, moment([2012, 0, 1]).diff([2013, 0, 1], 'years', true), -1, 'Jan 1 2012 to Jan 1 2013 should be 1 year');
- equal(assert, moment([2012, 1, 28]).diff([2013, 1, 28], 'years', true), -1, 'Feb 28 2012 to Feb 28 2013 should be 1 year');
- equal(assert, moment([2012, 2, 1]).diff([2013, 2, 1], 'years', true), -1, 'Mar 1 2012 to Mar 1 2013 should be 1 year');
- equal(assert, moment([2012, 11, 1]).diff([2013, 11, 1], 'years', true), -1, 'Dec 1 2012 to Dec 1 2013 should be 1 year');
- equal(assert, moment([2012, 11, 31]).diff([2013, 11, 31], 'years', true), -1, 'Dec 31 2012 to Dec 31 2013 should be 1 year');
- equal(assert, moment([2012, 0, 1]).diff([2013, 6, 1], 'years', true), -1.5, 'Jan 1 2012 to Jul 1 2013 should be 1.5 years');
- equal(assert, moment([2012, 0, 31]).diff([2013, 6, 31], 'years', true), -1.5, 'Jan 31 2012 to Jul 31 2013 should be 1.5 years');
- equal(assert, moment([2012, 0, 1]).diff([2013, 0, 1, 12], 'years', true), -1 - (0.5 / 31) / 12, 'Jan 1 2012 to Jan 1 2013 noon should be 1+(0.5 / 31) / 12 years');
- equal(assert, moment([2012, 0, 1]).diff([2013, 6, 1, 12], 'years', true), -1.5 - (0.5 / 31) / 12, 'Jan 1 2012 to Jul 1 2013 noon should be 1.5+(0.5 / 31) / 12 years');
- equal(assert, moment([2012, 1, 29]).diff([2013, 1, 28], 'years', true), -1, 'Feb 29 2012 to Feb 28 2013 should be 1-(1 / 28.5) / 12 years');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('duration');
- test('object instantiation', function (assert) {
- var d = moment.duration({
- years: 2,
- months: 3,
- weeks: 2,
- days: 1,
- hours: 8,
- minutes: 9,
- seconds: 20,
- milliseconds: 12
- });
- assert.equal(d.years(), 2, 'years');
- assert.equal(d.months(), 3, 'months');
- assert.equal(d.weeks(), 2, 'weeks');
- assert.equal(d.days(), 15, 'days'); // two weeks + 1 day
- assert.equal(d.hours(), 8, 'hours');
- assert.equal(d.minutes(), 9, 'minutes');
- assert.equal(d.seconds(), 20, 'seconds');
- assert.equal(d.milliseconds(), 12, 'milliseconds');
- });
- test('object instantiation with strings', function (assert) {
- var d = moment.duration({
- years: '2',
- months: '3',
- weeks: '2',
- days: '1',
- hours: '8',
- minutes: '9',
- seconds: '20',
- milliseconds: '12'
- });
- assert.equal(d.years(), 2, 'years');
- assert.equal(d.months(), 3, 'months');
- assert.equal(d.weeks(), 2, 'weeks');
- assert.equal(d.days(), 15, 'days'); // two weeks + 1 day
- assert.equal(d.hours(), 8, 'hours');
- assert.equal(d.minutes(), 9, 'minutes');
- assert.equal(d.seconds(), 20, 'seconds');
- assert.equal(d.milliseconds(), 12, 'milliseconds');
- });
- test('milliseconds instantiation', function (assert) {
- assert.equal(moment.duration(72).milliseconds(), 72, 'milliseconds');
- });
- test('undefined instantiation', function (assert) {
- assert.equal(moment.duration(undefined).milliseconds(), 0, 'milliseconds');
- });
- test('null instantiation', function (assert) {
- assert.equal(moment.duration(null).milliseconds(), 0, 'milliseconds');
- });
- test('instantiation by type', function (assert) {
- assert.equal(moment.duration(1, 'years').years(), 1, 'years');
- assert.equal(moment.duration(1, 'y').years(), 1, 'y');
- assert.equal(moment.duration(2, 'months').months(), 2, 'months');
- assert.equal(moment.duration(2, 'M').months(), 2, 'M');
- assert.equal(moment.duration(3, 'weeks').weeks(), 3, 'weeks');
- assert.equal(moment.duration(3, 'w').weeks(), 3, 'weeks');
- assert.equal(moment.duration(4, 'days').days(), 4, 'days');
- assert.equal(moment.duration(4, 'd').days(), 4, 'd');
- assert.equal(moment.duration(5, 'hours').hours(), 5, 'hours');
- assert.equal(moment.duration(5, 'h').hours(), 5, 'h');
- assert.equal(moment.duration(6, 'minutes').minutes(), 6, 'minutes');
- assert.equal(moment.duration(6, 'm').minutes(), 6, 'm');
- assert.equal(moment.duration(7, 'seconds').seconds(), 7, 'seconds');
- assert.equal(moment.duration(7, 's').seconds(), 7, 's');
- assert.equal(moment.duration(8, 'milliseconds').milliseconds(), 8, 'milliseconds');
- assert.equal(moment.duration(8, 'ms').milliseconds(), 8, 'ms');
- });
- test('shortcuts', function (assert) {
- assert.equal(moment.duration({y: 1}).years(), 1, 'years = y');
- assert.equal(moment.duration({M: 2}).months(), 2, 'months = M');
- assert.equal(moment.duration({w: 3}).weeks(), 3, 'weeks = w');
- assert.equal(moment.duration({d: 4}).days(), 4, 'days = d');
- assert.equal(moment.duration({h: 5}).hours(), 5, 'hours = h');
- assert.equal(moment.duration({m: 6}).minutes(), 6, 'minutes = m');
- assert.equal(moment.duration({s: 7}).seconds(), 7, 'seconds = s');
- assert.equal(moment.duration({ms: 8}).milliseconds(), 8, 'milliseconds = ms');
- });
- test('generic getter', function (assert) {
- assert.equal(moment.duration(1, 'years').get('years'), 1, 'years');
- assert.equal(moment.duration(1, 'years').get('year'), 1, 'years = year');
- assert.equal(moment.duration(1, 'years').get('y'), 1, 'years = y');
- assert.equal(moment.duration(2, 'months').get('months'), 2, 'months');
- assert.equal(moment.duration(2, 'months').get('month'), 2, 'months = month');
- assert.equal(moment.duration(2, 'months').get('M'), 2, 'months = M');
- assert.equal(moment.duration(3, 'weeks').get('weeks'), 3, 'weeks');
- assert.equal(moment.duration(3, 'weeks').get('week'), 3, 'weeks = week');
- assert.equal(moment.duration(3, 'weeks').get('w'), 3, 'weeks = w');
- assert.equal(moment.duration(4, 'days').get('days'), 4, 'days');
- assert.equal(moment.duration(4, 'days').get('day'), 4, 'days = day');
- assert.equal(moment.duration(4, 'days').get('d'), 4, 'days = d');
- assert.equal(moment.duration(5, 'hours').get('hours'), 5, 'hours');
- assert.equal(moment.duration(5, 'hours').get('hour'), 5, 'hours = hour');
- assert.equal(moment.duration(5, 'hours').get('h'), 5, 'hours = h');
- assert.equal(moment.duration(6, 'minutes').get('minutes'), 6, 'minutes');
- assert.equal(moment.duration(6, 'minutes').get('minute'), 6, 'minutes = minute');
- assert.equal(moment.duration(6, 'minutes').get('m'), 6, 'minutes = m');
- assert.equal(moment.duration(7, 'seconds').get('seconds'), 7, 'seconds');
- assert.equal(moment.duration(7, 'seconds').get('second'), 7, 'seconds = second');
- assert.equal(moment.duration(7, 'seconds').get('s'), 7, 'seconds = s');
- assert.equal(moment.duration(8, 'milliseconds').get('milliseconds'), 8, 'milliseconds');
- assert.equal(moment.duration(8, 'milliseconds').get('millisecond'), 8, 'milliseconds = millisecond');
- assert.equal(moment.duration(8, 'milliseconds').get('ms'), 8, 'milliseconds = ms');
- });
- test('instantiation from another duration', function (assert) {
- var simple = moment.duration(1234),
- lengthy = moment.duration(60 * 60 * 24 * 360 * 1e3),
- complicated = moment.duration({
- years: 2,
- months: 3,
- weeks: 4,
- days: 1,
- hours: 8,
- minutes: 9,
- seconds: 20,
- milliseconds: 12
- }),
- modified = moment.duration(1, 'day').add(moment.duration(1, 'day'));
- assert.deepEqual(moment.duration(simple), simple, 'simple clones are equal');
- assert.deepEqual(moment.duration(lengthy), lengthy, 'lengthy clones are equal');
- assert.deepEqual(moment.duration(complicated), complicated, 'complicated clones are equal');
- assert.deepEqual(moment.duration(modified), modified, 'cloning modified duration works');
- });
- test('instantiation from 24-hour time zero', function (assert) {
- assert.equal(moment.duration('00:00').years(), 0, '0 years');
- assert.equal(moment.duration('00:00').days(), 0, '0 days');
- assert.equal(moment.duration('00:00').hours(), 0, '0 hours');
- assert.equal(moment.duration('00:00').minutes(), 0, '0 minutes');
- assert.equal(moment.duration('00:00').seconds(), 0, '0 seconds');
- assert.equal(moment.duration('00:00').milliseconds(), 0, '0 milliseconds');
- });
- test('instantiation from 24-hour time <24 hours', function (assert) {
- assert.equal(moment.duration('06:45').years(), 0, '0 years');
- assert.equal(moment.duration('06:45').days(), 0, '0 days');
- assert.equal(moment.duration('06:45').hours(), 6, '6 hours');
- assert.equal(moment.duration('06:45').minutes(), 45, '45 minutes');
- assert.equal(moment.duration('06:45').seconds(), 0, '0 seconds');
- assert.equal(moment.duration('06:45').milliseconds(), 0, '0 milliseconds');
- });
- test('instantiation from 24-hour time >24 hours', function (assert) {
- assert.equal(moment.duration('26:45').years(), 0, '0 years');
- assert.equal(moment.duration('26:45').days(), 1, '0 days');
- assert.equal(moment.duration('26:45').hours(), 2, '2 hours');
- assert.equal(moment.duration('26:45').minutes(), 45, '45 minutes');
- assert.equal(moment.duration('26:45').seconds(), 0, '0 seconds');
- assert.equal(moment.duration('26:45').milliseconds(), 0, '0 milliseconds');
- });
- test('instatiation from serialized C# TimeSpan zero', function (assert) {
- assert.equal(moment.duration('00:00:00').years(), 0, '0 years');
- assert.equal(moment.duration('00:00:00').days(), 0, '0 days');
- assert.equal(moment.duration('00:00:00').hours(), 0, '0 hours');
- assert.equal(moment.duration('00:00:00').minutes(), 0, '0 minutes');
- assert.equal(moment.duration('00:00:00').seconds(), 0, '0 seconds');
- assert.equal(moment.duration('00:00:00').milliseconds(), 0, '0 milliseconds');
- });
- test('instatiation from serialized C# TimeSpan with days', function (assert) {
- assert.equal(moment.duration('1.02:03:04.9999999').years(), 0, '0 years');
- assert.equal(moment.duration('1.02:03:04.9999999').days(), 1, '1 day');
- assert.equal(moment.duration('1.02:03:04.9999999').hours(), 2, '2 hours');
- assert.equal(moment.duration('1.02:03:04.9999999').minutes(), 3, '3 minutes');
- assert.equal(moment.duration('1.02:03:04.9999999').seconds(), 4, '4 seconds');
- assert.equal(moment.duration('1.02:03:04.9999999').milliseconds(), 999, '999 milliseconds');
- assert.equal(moment.duration('1 02:03:04.9999999').years(), 0, '0 years');
- assert.equal(moment.duration('1 02:03:04.9999999').days(), 1, '1 day');
- assert.equal(moment.duration('1 02:03:04.9999999').hours(), 2, '2 hours');
- assert.equal(moment.duration('1 02:03:04.9999999').minutes(), 3, '3 minutes');
- assert.equal(moment.duration('1 02:03:04.9999999').seconds(), 4, '4 seconds');
- assert.equal(moment.duration('1 02:03:04.9999999').milliseconds(), 999, '999 milliseconds');
- });
- test('instatiation from serialized C# TimeSpan without days', function (assert) {
- assert.equal(moment.duration('01:02:03.9999999').years(), 0, '0 years');
- assert.equal(moment.duration('01:02:03.9999999').days(), 0, '0 days');
- assert.equal(moment.duration('01:02:03.9999999').hours(), 1, '1 hour');
- assert.equal(moment.duration('01:02:03.9999999').minutes(), 2, '2 minutes');
- assert.equal(moment.duration('01:02:03.9999999').seconds(), 3, '3 seconds');
- assert.equal(moment.duration('01:02:03.9999999').milliseconds(), 999, '999 milliseconds');
- assert.equal(moment.duration('23:59:59.9999999').days(), 0, '0 days');
- assert.equal(moment.duration('23:59:59.9999999').hours(), 23, '23 hours');
- assert.equal(moment.duration('500:59:59.9999999').days(), 20, '500 hours overflows to 20 days');
- assert.equal(moment.duration('500:59:59.9999999').hours(), 20, '500 hours overflows to 20 hours');
- });
- test('instatiation from serialized C# TimeSpan without days or milliseconds', function (assert) {
- assert.equal(moment.duration('01:02:03').years(), 0, '0 years');
- assert.equal(moment.duration('01:02:03').days(), 0, '0 days');
- assert.equal(moment.duration('01:02:03').hours(), 1, '1 hour');
- assert.equal(moment.duration('01:02:03').minutes(), 2, '2 minutes');
- assert.equal(moment.duration('01:02:03').seconds(), 3, '3 seconds');
- assert.equal(moment.duration('01:02:03').milliseconds(), 0, '0 milliseconds');
- });
- test('instatiation from serialized C# TimeSpan without milliseconds', function (assert) {
- assert.equal(moment.duration('1.02:03:04').years(), 0, '0 years');
- assert.equal(moment.duration('1.02:03:04').days(), 1, '1 day');
- assert.equal(moment.duration('1.02:03:04').hours(), 2, '2 hours');
- assert.equal(moment.duration('1.02:03:04').minutes(), 3, '3 minutes');
- assert.equal(moment.duration('1.02:03:04').seconds(), 4, '4 seconds');
- assert.equal(moment.duration('1.02:03:04').milliseconds(), 0, '0 milliseconds');
- });
- test('instatiation from serialized C# TimeSpan maxValue', function (assert) {
- var d = moment.duration('10675199.02:48:05.4775807');
- assert.equal(d.years(), 29227, '29227 years');
- assert.equal(d.months(), 8, '8 months');
- assert.equal(d.days(), 12, '12 day'); // if you have to change this value -- just do it
- assert.equal(d.hours(), 2, '2 hours');
- assert.equal(d.minutes(), 48, '48 minutes');
- assert.equal(d.seconds(), 5, '5 seconds');
- assert.equal(d.milliseconds(), 477, '477 milliseconds');
- });
- test('instatiation from serialized C# TimeSpan minValue', function (assert) {
- var d = moment.duration('-10675199.02:48:05.4775808');
- assert.equal(d.years(), -29227, '29653 years');
- assert.equal(d.months(), -8, '8 day');
- assert.equal(d.days(), -12, '12 day'); // if you have to change this value -- just do it
- assert.equal(d.hours(), -2, '2 hours');
- assert.equal(d.minutes(), -48, '48 minutes');
- assert.equal(d.seconds(), -5, '5 seconds');
- assert.equal(d.milliseconds(), -477, '477 milliseconds');
- });
- test('instantiation from ISO 8601 duration', function (assert) {
- assert.equal(moment.duration('P1Y2M3DT4H5M6S').asSeconds(), moment.duration({y: 1, M: 2, d: 3, h: 4, m: 5, s: 6}).asSeconds(), 'all fields');
- assert.equal(moment.duration('P1M').asSeconds(), moment.duration({M: 1}).asSeconds(), 'single month field');
- assert.equal(moment.duration('PT1M').asSeconds(), moment.duration({m: 1}).asSeconds(), 'single minute field');
- assert.equal(moment.duration('P1MT2H').asSeconds(), moment.duration({M: 1, h: 2}).asSeconds(), 'random fields missing');
- assert.equal(moment.duration('-P60D').asSeconds(), moment.duration({d: -60}).asSeconds(), 'negative days');
- assert.equal(moment.duration('PT0.5S').asSeconds(), moment.duration({s: 0.5}).asSeconds(), 'fractional seconds');
- assert.equal(moment.duration('PT0,5S').asSeconds(), moment.duration({s: 0.5}).asSeconds(), 'fractional seconds (comma)');
- });
- test('serialization to ISO 8601 duration strings', function (assert) {
- assert.equal(moment.duration({y: 1, M: 2, d: 3, h: 4, m: 5, s: 6}).toISOString(), 'P1Y2M3DT4H5M6S', 'all fields');
- assert.equal(moment.duration({M: -1}).toISOString(), '-P1M', 'one month ago');
- assert.equal(moment.duration({m: -1}).toISOString(), '-PT1M', 'one minute ago');
- assert.equal(moment.duration({s: -0.5}).toISOString(), '-PT0.5S', 'one half second ago');
- assert.equal(moment.duration({y: -0.5, M: 1}).toISOString(), '-P5M', 'a month after half a year ago');
- assert.equal(moment.duration({}).toISOString(), 'P0D', 'zero duration');
- assert.equal(moment.duration({M: 16, d:40, s: 86465}).toISOString(), 'P1Y4M40DT24H1M5S', 'all fields');
- });
- test('toString acts as toISOString', function (assert) {
- assert.equal(moment.duration({y: 1, M: 2, d: 3, h: 4, m: 5, s: 6}).toString(), 'P1Y2M3DT4H5M6S', 'all fields');
- assert.equal(moment.duration({M: -1}).toString(), '-P1M', 'one month ago');
- assert.equal(moment.duration({m: -1}).toString(), '-PT1M', 'one minute ago');
- assert.equal(moment.duration({s: -0.5}).toString(), '-PT0.5S', 'one half second ago');
- assert.equal(moment.duration({y: -0.5, M: 1}).toString(), '-P5M', 'a month after half a year ago');
- assert.equal(moment.duration({}).toString(), 'P0D', 'zero duration');
- assert.equal(moment.duration({M: 16, d:40, s: 86465}).toString(), 'P1Y4M40DT24H1M5S', 'all fields');
- });
- test('toIsoString deprecation', function (assert) {
- assert.equal(moment.duration({}).toIsoString(), moment.duration({}).toISOString(), 'toIsoString delegates to toISOString');
- });
- test('`isodate` (python) test cases', function (assert) {
- assert.equal(moment.duration('P18Y9M4DT11H9M8S').asSeconds(), moment.duration({y: 18, M: 9, d: 4, h: 11, m: 9, s: 8}).asSeconds(), 'python isodate 1');
- assert.equal(moment.duration('P2W').asSeconds(), moment.duration({w: 2}).asSeconds(), 'python isodate 2');
- assert.equal(moment.duration('P3Y6M4DT12H30M5S').asSeconds(), moment.duration({y: 3, M: 6, d: 4, h: 12, m: 30, s: 5}).asSeconds(), 'python isodate 3');
- assert.equal(moment.duration('P23DT23H').asSeconds(), moment.duration({d: 23, h: 23}).asSeconds(), 'python isodate 4');
- assert.equal(moment.duration('P4Y').asSeconds(), moment.duration({y: 4}).asSeconds(), 'python isodate 5');
- assert.equal(moment.duration('P1M').asSeconds(), moment.duration({M: 1}).asSeconds(), 'python isodate 6');
- assert.equal(moment.duration('PT1M').asSeconds(), moment.duration({m: 1}).asSeconds(), 'python isodate 7');
- assert.equal(moment.duration('P0.5Y').asSeconds(), moment.duration({y: 0.5}).asSeconds(), 'python isodate 8');
- assert.equal(moment.duration('PT36H').asSeconds(), moment.duration({h: 36}).asSeconds(), 'python isodate 9');
- assert.equal(moment.duration('P1DT12H').asSeconds(), moment.duration({d: 1, h: 12}).asSeconds(), 'python isodate 10');
- assert.equal(moment.duration('-P2W').asSeconds(), moment.duration({w: -2}).asSeconds(), 'python isodate 11');
- assert.equal(moment.duration('-P2.2W').asSeconds(), moment.duration({w: -2.2}).asSeconds(), 'python isodate 12');
- assert.equal(moment.duration('P1DT2H3M4S').asSeconds(), moment.duration({d: 1, h: 2, m: 3, s: 4}).asSeconds(), 'python isodate 13');
- assert.equal(moment.duration('P1DT2H3M').asSeconds(), moment.duration({d: 1, h: 2, m: 3}).asSeconds(), 'python isodate 14');
- assert.equal(moment.duration('P1DT2H').asSeconds(), moment.duration({d: 1, h: 2}).asSeconds(), 'python isodate 15');
- assert.equal(moment.duration('PT2H').asSeconds(), moment.duration({h: 2}).asSeconds(), 'python isodate 16');
- assert.equal(moment.duration('PT2.3H').asSeconds(), moment.duration({h: 2.3}).asSeconds(), 'python isodate 17');
- assert.equal(moment.duration('PT2H3M4S').asSeconds(), moment.duration({h: 2, m: 3, s: 4}).asSeconds(), 'python isodate 18');
- assert.equal(moment.duration('PT3M4S').asSeconds(), moment.duration({m: 3, s: 4}).asSeconds(), 'python isodate 19');
- assert.equal(moment.duration('PT22S').asSeconds(), moment.duration({s: 22}).asSeconds(), 'python isodate 20');
- assert.equal(moment.duration('PT22.22S').asSeconds(), moment.duration({s: 22.22}).asSeconds(), 'python isodate 21');
- assert.equal(moment.duration('-P2Y').asSeconds(), moment.duration({y: -2}).asSeconds(), 'python isodate 22');
- assert.equal(moment.duration('-P3Y6M4DT12H30M5S').asSeconds(), moment.duration({y: -3, M: -6, d: -4, h: -12, m: -30, s: -5}).asSeconds(), 'python isodate 23');
- assert.equal(moment.duration('-P1DT2H3M4S').asSeconds(), moment.duration({d: -1, h: -2, m: -3, s: -4}).asSeconds(), 'python isodate 24');
- });
- test('ISO 8601 misuse cases', function (assert) {
- assert.equal(moment.duration('P').asSeconds(), 0, 'lonely P');
- assert.equal(moment.duration('PT').asSeconds(), 0, 'just P and T');
- assert.equal(moment.duration('P1H').asSeconds(), 0, 'missing T');
- assert.equal(moment.duration('P1D1Y').asSeconds(), 0, 'out of order');
- assert.equal(moment.duration('PT.5S').asSeconds(), 0.5, 'accept no leading zero for decimal');
- assert.equal(moment.duration('PT1,S').asSeconds(), 1, 'accept trailing decimal separator');
- assert.equal(moment.duration('PT1M0,,5S').asSeconds(), 60, 'extra decimal separators are ignored as 0');
- assert.equal(moment.duration('P-1DS').asSeconds(), 0, 'wrong position of negative');
- });
- test('humanize', function (assert) {
- moment.locale('en');
- assert.equal(moment.duration({seconds: 44}).humanize(), 'a few seconds', '44 seconds = a few seconds');
- assert.equal(moment.duration({seconds: 45}).humanize(), 'a minute', '45 seconds = a minute');
- assert.equal(moment.duration({seconds: 89}).humanize(), 'a minute', '89 seconds = a minute');
- assert.equal(moment.duration({seconds: 90}).humanize(), '2 minutes', '90 seconds = 2 minutes');
- assert.equal(moment.duration({minutes: 44}).humanize(), '44 minutes', '44 minutes = 44 minutes');
- assert.equal(moment.duration({minutes: 45}).humanize(), 'an hour', '45 minutes = an hour');
- assert.equal(moment.duration({minutes: 89}).humanize(), 'an hour', '89 minutes = an hour');
- assert.equal(moment.duration({minutes: 90}).humanize(), '2 hours', '90 minutes = 2 hours');
- assert.equal(moment.duration({hours: 5}).humanize(), '5 hours', '5 hours = 5 hours');
- assert.equal(moment.duration({hours: 21}).humanize(), '21 hours', '21 hours = 21 hours');
- assert.equal(moment.duration({hours: 22}).humanize(), 'a day', '22 hours = a day');
- assert.equal(moment.duration({hours: 35}).humanize(), 'a day', '35 hours = a day');
- assert.equal(moment.duration({hours: 36}).humanize(), '2 days', '36 hours = 2 days');
- assert.equal(moment.duration({days: 1}).humanize(), 'a day', '1 day = a day');
- assert.equal(moment.duration({days: 5}).humanize(), '5 days', '5 days = 5 days');
- assert.equal(moment.duration({weeks: 1}).humanize(), '7 days', '1 week = 7 days');
- assert.equal(moment.duration({days: 25}).humanize(), '25 days', '25 days = 25 days');
- assert.equal(moment.duration({days: 26}).humanize(), 'a month', '26 days = a month');
- assert.equal(moment.duration({days: 30}).humanize(), 'a month', '30 days = a month');
- assert.equal(moment.duration({days: 45}).humanize(), 'a month', '45 days = a month');
- assert.equal(moment.duration({days: 46}).humanize(), '2 months', '46 days = 2 months');
- assert.equal(moment.duration({days: 74}).humanize(), '2 months', '74 days = 2 months');
- assert.equal(moment.duration({days: 77}).humanize(), '3 months', '77 days = 3 months');
- assert.equal(moment.duration({months: 1}).humanize(), 'a month', '1 month = a month');
- assert.equal(moment.duration({months: 5}).humanize(), '5 months', '5 months = 5 months');
- assert.equal(moment.duration({days: 344}).humanize(), 'a year', '344 days = a year');
- assert.equal(moment.duration({days: 345}).humanize(), 'a year', '345 days = a year');
- assert.equal(moment.duration({days: 547}).humanize(), 'a year', '547 days = a year');
- assert.equal(moment.duration({days: 548}).humanize(), '2 years', '548 days = 2 years');
- assert.equal(moment.duration({years: 1}).humanize(), 'a year', '1 year = a year');
- assert.equal(moment.duration({years: 5}).humanize(), '5 years', '5 years = 5 years');
- assert.equal(moment.duration(7200000).humanize(), '2 hours', '7200000 = 2 minutes');
- });
- test('humanize duration with suffix', function (assert) {
- moment.locale('en');
- assert.equal(moment.duration({seconds: 44}).humanize(true), 'in a few seconds', '44 seconds = a few seconds');
- assert.equal(moment.duration({seconds: -44}).humanize(true), 'a few seconds ago', '44 seconds = a few seconds');
- });
- test('bubble value up', function (assert) {
- assert.equal(moment.duration({milliseconds: 61001}).milliseconds(), 1, '61001 milliseconds has 1 millisecond left over');
- assert.equal(moment.duration({milliseconds: 61001}).seconds(), 1, '61001 milliseconds has 1 second left over');
- assert.equal(moment.duration({milliseconds: 61001}).minutes(), 1, '61001 milliseconds has 1 minute left over');
- assert.equal(moment.duration({minutes: 350}).minutes(), 50, '350 minutes has 50 minutes left over');
- assert.equal(moment.duration({minutes: 350}).hours(), 5, '350 minutes has 5 hours left over');
- });
- test('clipping', function (assert) {
- assert.equal(moment.duration({months: 11}).months(), 11, '11 months is 11 months');
- assert.equal(moment.duration({months: 11}).years(), 0, '11 months makes no year');
- assert.equal(moment.duration({months: 12}).months(), 0, '12 months is 0 months left over');
- assert.equal(moment.duration({months: 12}).years(), 1, '12 months makes 1 year');
- assert.equal(moment.duration({months: 13}).months(), 1, '13 months is 1 month left over');
- assert.equal(moment.duration({months: 13}).years(), 1, '13 months makes 1 year');
- assert.equal(moment.duration({days: 30}).days(), 30, '30 days is 30 days');
- assert.equal(moment.duration({days: 30}).months(), 0, '30 days makes no month');
- assert.equal(moment.duration({days: 31}).days(), 0, '31 days is 0 days left over');
- assert.equal(moment.duration({days: 31}).months(), 1, '31 days is a month');
- assert.equal(moment.duration({days: 32}).days(), 1, '32 days is 1 day left over');
- assert.equal(moment.duration({days: 32}).months(), 1, '32 days is a month');
- assert.equal(moment.duration({hours: 23}).hours(), 23, '23 hours is 23 hours');
- assert.equal(moment.duration({hours: 23}).days(), 0, '23 hours makes no day');
- assert.equal(moment.duration({hours: 24}).hours(), 0, '24 hours is 0 hours left over');
- assert.equal(moment.duration({hours: 24}).days(), 1, '24 hours makes 1 day');
- assert.equal(moment.duration({hours: 25}).hours(), 1, '25 hours is 1 hour left over');
- assert.equal(moment.duration({hours: 25}).days(), 1, '25 hours makes 1 day');
- });
- test('bubbling consistency', function (assert) {
- var days = 0, months = 0, newDays, newMonths, totalDays, d;
- for (totalDays = 1; totalDays <= 500; ++totalDays) {
- d = moment.duration(totalDays, 'days');
- newDays = d.days();
- newMonths = d.months() + d.years() * 12;
- assert.ok(
- (months === newMonths && days + 1 === newDays) ||
- (months + 1 === newMonths && newDays === 0),
- 'consistent total days ' + totalDays +
- ' was ' + months + ' ' + days +
- ' now ' + newMonths + ' ' + newDays);
- days = newDays;
- months = newMonths;
- }
- });
- test('effective equivalency', function (assert) {
- assert.deepEqual(moment.duration({seconds: 1})._data, moment.duration({milliseconds: 1000})._data, '1 second is the same as 1000 milliseconds');
- assert.deepEqual(moment.duration({seconds: 60})._data, moment.duration({minutes: 1})._data, '1 minute is the same as 60 seconds');
- assert.deepEqual(moment.duration({minutes: 60})._data, moment.duration({hours: 1})._data, '1 hour is the same as 60 minutes');
- assert.deepEqual(moment.duration({hours: 24})._data, moment.duration({days: 1})._data, '1 day is the same as 24 hours');
- assert.deepEqual(moment.duration({days: 7})._data, moment.duration({weeks: 1})._data, '1 week is the same as 7 days');
- assert.deepEqual(moment.duration({days: 31})._data, moment.duration({months: 1})._data, '1 month is the same as 30 days');
- assert.deepEqual(moment.duration({months: 12})._data, moment.duration({years: 1})._data, '1 years is the same as 12 months');
- });
- test('asGetters', function (assert) {
- // 400 years have exactly 146097 days
- // years
- assert.equal(moment.duration(1, 'year').asYears(), 1, '1 year as years');
- assert.equal(moment.duration(1, 'year').asMonths(), 12, '1 year as months');
- assert.equal(moment.duration(400, 'year').asMonths(), 4800, '400 years as months');
- assert.equal(moment.duration(1, 'year').asWeeks().toFixed(3), 52.143, '1 year as weeks');
- assert.equal(moment.duration(1, 'year').asDays(), 365, '1 year as days');
- assert.equal(moment.duration(2, 'year').asDays(), 730, '2 years as days');
- assert.equal(moment.duration(3, 'year').asDays(), 1096, '3 years as days');
- assert.equal(moment.duration(4, 'year').asDays(), 1461, '4 years as days');
- assert.equal(moment.duration(400, 'year').asDays(), 146097, '400 years as days');
- assert.equal(moment.duration(1, 'year').asHours(), 8760, '1 year as hours');
- assert.equal(moment.duration(1, 'year').asMinutes(), 525600, '1 year as minutes');
- assert.equal(moment.duration(1, 'year').asSeconds(), 31536000, '1 year as seconds');
- assert.equal(moment.duration(1, 'year').asMilliseconds(), 31536000000, '1 year as milliseconds');
- // months
- assert.equal(moment.duration(1, 'month').asYears().toFixed(4), 0.0833, '1 month as years');
- assert.equal(moment.duration(1, 'month').asMonths(), 1, '1 month as months');
- assert.equal(moment.duration(1, 'month').asWeeks().toFixed(3), 4.286, '1 month as weeks');
- assert.equal(moment.duration(1, 'month').asDays(), 30, '1 month as days');
- assert.equal(moment.duration(2, 'month').asDays(), 61, '2 months as days');
- assert.equal(moment.duration(3, 'month').asDays(), 91, '3 months as days');
- assert.equal(moment.duration(4, 'month').asDays(), 122, '4 months as days');
- assert.equal(moment.duration(5, 'month').asDays(), 152, '5 months as days');
- assert.equal(moment.duration(6, 'month').asDays(), 183, '6 months as days');
- assert.equal(moment.duration(7, 'month').asDays(), 213, '7 months as days');
- assert.equal(moment.duration(8, 'month').asDays(), 243, '8 months as days');
- assert.equal(moment.duration(9, 'month').asDays(), 274, '9 months as days');
- assert.equal(moment.duration(10, 'month').asDays(), 304, '10 months as days');
- assert.equal(moment.duration(11, 'month').asDays(), 335, '11 months as days');
- assert.equal(moment.duration(12, 'month').asDays(), 365, '12 months as days');
- assert.equal(moment.duration(24, 'month').asDays(), 730, '24 months as days');
- assert.equal(moment.duration(36, 'month').asDays(), 1096, '36 months as days');
- assert.equal(moment.duration(48, 'month').asDays(), 1461, '48 months as days');
- assert.equal(moment.duration(4800, 'month').asDays(), 146097, '4800 months as days');
- assert.equal(moment.duration(1, 'month').asHours(), 720, '1 month as hours');
- assert.equal(moment.duration(1, 'month').asMinutes(), 43200, '1 month as minutes');
- assert.equal(moment.duration(1, 'month').asSeconds(), 2592000, '1 month as seconds');
- assert.equal(moment.duration(1, 'month').asMilliseconds(), 2592000000, '1 month as milliseconds');
- // weeks
- assert.equal(moment.duration(1, 'week').asYears().toFixed(4), 0.0192, '1 week as years');
- assert.equal(moment.duration(1, 'week').asMonths().toFixed(3), 0.230, '1 week as months');
- assert.equal(moment.duration(1, 'week').asWeeks(), 1, '1 week as weeks');
- assert.equal(moment.duration(1, 'week').asDays(), 7, '1 week as days');
- assert.equal(moment.duration(1, 'week').asHours(), 168, '1 week as hours');
- assert.equal(moment.duration(1, 'week').asMinutes(), 10080, '1 week as minutes');
- assert.equal(moment.duration(1, 'week').asSeconds(), 604800, '1 week as seconds');
- assert.equal(moment.duration(1, 'week').asMilliseconds(), 604800000, '1 week as milliseconds');
- // days
- assert.equal(moment.duration(1, 'day').asYears().toFixed(4), 0.0027, '1 day as years');
- assert.equal(moment.duration(1, 'day').asMonths().toFixed(3), 0.033, '1 day as months');
- assert.equal(moment.duration(1, 'day').asWeeks().toFixed(3), 0.143, '1 day as weeks');
- assert.equal(moment.duration(1, 'day').asDays(), 1, '1 day as days');
- assert.equal(moment.duration(1, 'day').asHours(), 24, '1 day as hours');
- assert.equal(moment.duration(1, 'day').asMinutes(), 1440, '1 day as minutes');
- assert.equal(moment.duration(1, 'day').asSeconds(), 86400, '1 day as seconds');
- assert.equal(moment.duration(1, 'day').asMilliseconds(), 86400000, '1 day as milliseconds');
- // hours
- assert.equal(moment.duration(1, 'hour').asYears().toFixed(6), 0.000114, '1 hour as years');
- assert.equal(moment.duration(1, 'hour').asMonths().toFixed(5), 0.00137, '1 hour as months');
- assert.equal(moment.duration(1, 'hour').asWeeks().toFixed(5), 0.00595, '1 hour as weeks');
- assert.equal(moment.duration(1, 'hour').asDays().toFixed(4), 0.0417, '1 hour as days');
- assert.equal(moment.duration(1, 'hour').asHours(), 1, '1 hour as hours');
- assert.equal(moment.duration(1, 'hour').asMinutes(), 60, '1 hour as minutes');
- assert.equal(moment.duration(1, 'hour').asSeconds(), 3600, '1 hour as seconds');
- assert.equal(moment.duration(1, 'hour').asMilliseconds(), 3600000, '1 hour as milliseconds');
- // minutes
- assert.equal(moment.duration(1, 'minute').asYears().toFixed(8), 0.00000190, '1 minute as years');
- assert.equal(moment.duration(1, 'minute').asMonths().toFixed(7), 0.0000228, '1 minute as months');
- assert.equal(moment.duration(1, 'minute').asWeeks().toFixed(7), 0.0000992, '1 minute as weeks');
- assert.equal(moment.duration(1, 'minute').asDays().toFixed(6), 0.000694, '1 minute as days');
- assert.equal(moment.duration(1, 'minute').asHours().toFixed(4), 0.0167, '1 minute as hours');
- assert.equal(moment.duration(1, 'minute').asMinutes(), 1, '1 minute as minutes');
- assert.equal(moment.duration(1, 'minute').asSeconds(), 60, '1 minute as seconds');
- assert.equal(moment.duration(1, 'minute').asMilliseconds(), 60000, '1 minute as milliseconds');
- // seconds
- assert.equal(moment.duration(1, 'second').asYears().toFixed(10), 0.0000000317, '1 second as years');
- assert.equal(moment.duration(1, 'second').asMonths().toFixed(9), 0.000000380, '1 second as months');
- assert.equal(moment.duration(1, 'second').asWeeks().toFixed(8), 0.00000165, '1 second as weeks');
- assert.equal(moment.duration(1, 'second').asDays().toFixed(7), 0.0000116, '1 second as days');
- assert.equal(moment.duration(1, 'second').asHours().toFixed(6), 0.000278, '1 second as hours');
- assert.equal(moment.duration(1, 'second').asMinutes().toFixed(4), 0.0167, '1 second as minutes');
- assert.equal(moment.duration(1, 'second').asSeconds(), 1, '1 second as seconds');
- assert.equal(moment.duration(1, 'second').asMilliseconds(), 1000, '1 second as milliseconds');
- // milliseconds
- assert.equal(moment.duration(1, 'millisecond').asYears().toFixed(13), 0.0000000000317, '1 millisecond as years');
- assert.equal(moment.duration(1, 'millisecond').asMonths().toFixed(12), 0.000000000380, '1 millisecond as months');
- assert.equal(moment.duration(1, 'millisecond').asWeeks().toFixed(11), 0.00000000165, '1 millisecond as weeks');
- assert.equal(moment.duration(1, 'millisecond').asDays().toFixed(10), 0.0000000116, '1 millisecond as days');
- assert.equal(moment.duration(1, 'millisecond').asHours().toFixed(9), 0.000000278, '1 millisecond as hours');
- assert.equal(moment.duration(1, 'millisecond').asMinutes().toFixed(7), 0.0000167, '1 millisecond as minutes');
- assert.equal(moment.duration(1, 'millisecond').asSeconds(), 0.001, '1 millisecond as seconds');
- assert.equal(moment.duration(1, 'millisecond').asMilliseconds(), 1, '1 millisecond as milliseconds');
- });
- test('as getters for small units', function (assert) {
- var dS = moment.duration(1, 'milliseconds'),
- ds = moment.duration(3, 'seconds'),
- dm = moment.duration(13, 'minutes');
- // Tests for issue #1867.
- // Floating point errors for small duration units were introduced in version 2.8.0.
- assert.equal(dS.as('milliseconds'), 1, 'as("milliseconds")');
- assert.equal(dS.asMilliseconds(), 1, 'asMilliseconds()');
- assert.equal(ds.as('seconds'), 3, 'as("seconds")');
- assert.equal(ds.asSeconds(), 3, 'asSeconds()');
- assert.equal(dm.as('minutes'), 13, 'as("minutes")');
- assert.equal(dm.asMinutes(), 13, 'asMinutes()');
- });
- test('isDuration', function (assert) {
- assert.ok(moment.isDuration(moment.duration(12345678)), 'correctly says true');
- assert.ok(!moment.isDuration(moment()), 'moment object is not a duration');
- assert.ok(!moment.isDuration({milliseconds: 1}), 'plain object is not a duration');
- });
- test('add', function (assert) {
- var d = moment.duration({months: 4, weeks: 3, days: 2});
- // for some reason, d._data._months does not get updated; use d._months instead.
- assert.equal(d.add(1, 'month')._months, 5, 'Add months');
- assert.equal(d.add(5, 'days')._days, 28, 'Add days');
- assert.equal(d.add(10000)._milliseconds, 10000, 'Add milliseconds');
- assert.equal(d.add({h: 23, m: 59})._milliseconds, 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 10000, 'Add hour:minute');
- });
- test('add and bubble', function (assert) {
- var d;
- assert.equal(moment.duration(1, 'second').add(1000, 'milliseconds').seconds(), 2, 'Adding milliseconds should bubble up to seconds');
- assert.equal(moment.duration(1, 'minute').add(60, 'second').minutes(), 2, 'Adding seconds should bubble up to minutes');
- assert.equal(moment.duration(1, 'hour').add(60, 'minutes').hours(), 2, 'Adding minutes should bubble up to hours');
- assert.equal(moment.duration(1, 'day').add(24, 'hours').days(), 2, 'Adding hours should bubble up to days');
- d = moment.duration(-1, 'day').add(1, 'hour');
- assert.equal(d.hours(), -23, '-1 day + 1 hour == -23 hour (component)');
- assert.equal(d.asHours(), -23, '-1 day + 1 hour == -23 hours');
- d = moment.duration(-1, 'year').add(1, 'day');
- assert.equal(d.days(), -30, '- 1 year + 1 day == -30 days (component)');
- assert.equal(d.months(), -11, '- 1 year + 1 day == -11 months (component)');
- assert.equal(d.years(), 0, '- 1 year + 1 day == 0 years (component)');
- assert.equal(d.asDays(), -364, '- 1 year + 1 day == -364 days');
- d = moment.duration(-1, 'year').add(1, 'hour');
- assert.equal(d.hours(), -23, '- 1 year + 1 hour == -23 hours (component)');
- assert.equal(d.days(), -30, '- 1 year + 1 hour == -30 days (component)');
- assert.equal(d.months(), -11, '- 1 year + 1 hour == -11 months (component)');
- assert.equal(d.years(), 0, '- 1 year + 1 hour == 0 years (component)');
- });
- test('subtract and bubble', function (assert) {
- var d;
- assert.equal(moment.duration(2, 'second').subtract(1000, 'milliseconds').seconds(), 1, 'Subtracting milliseconds should bubble up to seconds');
- assert.equal(moment.duration(2, 'minute').subtract(60, 'second').minutes(), 1, 'Subtracting seconds should bubble up to minutes');
- assert.equal(moment.duration(2, 'hour').subtract(60, 'minutes').hours(), 1, 'Subtracting minutes should bubble up to hours');
- assert.equal(moment.duration(2, 'day').subtract(24, 'hours').days(), 1, 'Subtracting hours should bubble up to days');
- d = moment.duration(1, 'day').subtract(1, 'hour');
- assert.equal(d.hours(), 23, '1 day - 1 hour == 23 hour (component)');
- assert.equal(d.asHours(), 23, '1 day - 1 hour == 23 hours');
- d = moment.duration(1, 'year').subtract(1, 'day');
- assert.equal(d.days(), 30, '1 year - 1 day == 30 days (component)');
- assert.equal(d.months(), 11, '1 year - 1 day == 11 months (component)');
- assert.equal(d.years(), 0, '1 year - 1 day == 0 years (component)');
- assert.equal(d.asDays(), 364, '1 year - 1 day == 364 days');
- d = moment.duration(1, 'year').subtract(1, 'hour');
- assert.equal(d.hours(), 23, '1 year - 1 hour == 23 hours (component)');
- assert.equal(d.days(), 30, '1 year - 1 hour == 30 days (component)');
- assert.equal(d.months(), 11, '1 year - 1 hour == 11 months (component)');
- assert.equal(d.years(), 0, '1 year - 1 hour == 0 years (component)');
- });
- test('subtract', function (assert) {
- var d = moment.duration({months: 2, weeks: 2, days: 0, hours: 5});
- // for some reason, d._data._months does not get updated; use d._months instead.
- assert.equal(d.subtract(1, 'months')._months, 1, 'Subtract months');
- assert.equal(d.subtract(14, 'days')._days, 0, 'Subtract days');
- assert.equal(d.subtract(10000)._milliseconds, 5 * 60 * 60 * 1000 - 10000, 'Subtract milliseconds');
- assert.equal(d.subtract({h: 1, m: 59})._milliseconds, 3 * 60 * 60 * 1000 + 1 * 60 * 1000 - 10000, 'Subtract hour:minute');
- });
- test('JSON.stringify duration', function (assert) {
- var d = moment.duration(1024, 'h');
- assert.equal(JSON.stringify(d), '"' + d.toISOString() + '"', 'JSON.stringify on duration should return ISO string');
- });
- test('duration plugins', function (assert) {
- var durationObject = moment.duration();
- moment.duration.fn.foo = function (arg) {
- assert.equal(this, durationObject);
- assert.equal(arg, 5);
- };
- durationObject.foo(5);
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('duration from moments');
- test('pure year diff', function (assert) {
- var m1 = moment('2012-01-01T00:00:00.000Z'),
- m2 = moment('2013-01-01T00:00:00.000Z');
- assert.equal(moment.duration({from: m1, to: m2}).as('years'), 1, 'year moment difference');
- assert.equal(moment.duration({from: m2, to: m1}).as('years'), -1, 'negative year moment difference');
- });
- test('month and day diff', function (assert) {
- var m1 = moment('2012-01-15T00:00:00.000Z'),
- m2 = moment('2012-02-17T00:00:00.000Z'),
- d = moment.duration({from: m1, to: m2});
- assert.equal(d.get('days'), 2);
- assert.equal(d.get('months'), 1);
- });
- test('day diff, separate months', function (assert) {
- var m1 = moment('2012-01-15T00:00:00.000Z'),
- m2 = moment('2012-02-13T00:00:00.000Z'),
- d = moment.duration({from: m1, to: m2});
- assert.equal(d.as('days'), 29);
- });
- test('hour diff', function (assert) {
- var m1 = moment('2012-01-15T17:00:00.000Z'),
- m2 = moment('2012-01-16T03:00:00.000Z'),
- d = moment.duration({from: m1, to: m2});
- assert.equal(d.as('hours'), 10);
- });
- test('minute diff', function (assert) {
- var m1 = moment('2012-01-15T17:45:00.000Z'),
- m2 = moment('2012-01-16T03:15:00.000Z'),
- d = moment.duration({from: m1, to: m2});
- assert.equal(d.as('hours'), 9.5);
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('format');
- test('format YY', function (assert) {
- var b = moment(new Date(2009, 1, 14, 15, 25, 50, 125));
- assert.equal(b.format('YY'), '09', 'YY ---> 09');
- });
- test('format escape brackets', function (assert) {
- moment.locale('en');
- var b = moment(new Date(2009, 1, 14, 15, 25, 50, 125));
- assert.equal(b.format('[day]'), 'day', 'Single bracket');
- assert.equal(b.format('[day] YY [YY]'), 'day 09 YY', 'Double bracket');
- assert.equal(b.format('[YY'), '[09', 'Un-ended bracket');
- assert.equal(b.format('[[YY]]'), '[YY]', 'Double nested brackets');
- assert.equal(b.format('[[]'), '[', 'Escape open bracket');
- assert.equal(b.format('[Last]'), 'Last', 'localized tokens');
- assert.equal(b.format('[L] L'), 'L 02/14/2009', 'localized tokens with escaped localized tokens');
- assert.equal(b.format('[L LL LLL LLLL aLa]'), 'L LL LLL LLLL aLa', 'localized tokens with escaped localized tokens');
- assert.equal(b.format('[LLL] LLL'), 'LLL February 14, 2009 3:25 PM', 'localized tokens with escaped localized tokens (recursion)');
- assert.equal(b.format('YYYY[\n]DD[\n]'), '2009\n14\n', 'Newlines');
- });
- test('handle negative years', function (assert) {
- moment.locale('en');
- assert.equal(moment.utc().year(-1).format('YY'), '-01', 'YY with negative year');
- assert.equal(moment.utc().year(-1).format('YYYY'), '-0001', 'YYYY with negative year');
- assert.equal(moment.utc().year(-12).format('YY'), '-12', 'YY with negative year');
- assert.equal(moment.utc().year(-12).format('YYYY'), '-0012', 'YYYY with negative year');
- assert.equal(moment.utc().year(-123).format('YY'), '-23', 'YY with negative year');
- assert.equal(moment.utc().year(-123).format('YYYY'), '-0123', 'YYYY with negative year');
- assert.equal(moment.utc().year(-1234).format('YY'), '-34', 'YY with negative year');
- assert.equal(moment.utc().year(-1234).format('YYYY'), '-1234', 'YYYY with negative year');
- assert.equal(moment.utc().year(-12345).format('YY'), '-45', 'YY with negative year');
- assert.equal(moment.utc().year(-12345).format('YYYY'), '-12345', 'YYYY with negative year');
- });
- test('format milliseconds', function (assert) {
- var b = moment(new Date(2009, 1, 14, 15, 25, 50, 123));
- assert.equal(b.format('S'), '1', 'Deciseconds');
- assert.equal(b.format('SS'), '12', 'Centiseconds');
- assert.equal(b.format('SSS'), '123', 'Milliseconds');
- b.milliseconds(789);
- assert.equal(b.format('S'), '7', 'Deciseconds');
- assert.equal(b.format('SS'), '78', 'Centiseconds');
- assert.equal(b.format('SSS'), '789', 'Milliseconds');
- });
- test('format timezone', function (assert) {
- var b = moment(new Date(2010, 1, 14, 15, 25, 50, 125));
- assert.ok(b.format('Z').match(/^[\+\-]\d\d:\d\d$/), b.format('Z') + ' should be something like \'+07:30\'');
- assert.ok(b.format('ZZ').match(/^[\+\-]\d{4}$/), b.format('ZZ') + ' should be something like \'+0700\'');
- });
- test('format multiple with utc offset', function (assert) {
- var b = moment('2012-10-08 -1200', ['YYYY-MM-DD HH:mm ZZ', 'YYYY-MM-DD ZZ', 'YYYY-MM-DD']);
- assert.equal(b.format('YYYY-MM'), '2012-10', 'Parsing multiple formats should not crash with different sized formats');
- });
- test('isDST', function (assert) {
- var janOffset = new Date(2011, 0, 1).getTimezoneOffset(),
- julOffset = new Date(2011, 6, 1).getTimezoneOffset(),
- janIsDst = janOffset < julOffset,
- julIsDst = julOffset < janOffset,
- jan1 = moment([2011]),
- jul1 = moment([2011, 6]);
- if (janIsDst && julIsDst) {
- assert.ok(0, 'January and July cannot both be in DST');
- assert.ok(0, 'January and July cannot both be in DST');
- } else if (janIsDst) {
- assert.ok(jan1.isDST(), 'January 1 is DST');
- assert.ok(!jul1.isDST(), 'July 1 is not DST');
- } else if (julIsDst) {
- assert.ok(!jan1.isDST(), 'January 1 is not DST');
- assert.ok(jul1.isDST(), 'July 1 is DST');
- } else {
- assert.ok(!jan1.isDST(), 'January 1 is not DST');
- assert.ok(!jul1.isDST(), 'July 1 is not DST');
- }
- });
- test('unix timestamp', function (assert) {
- var m = moment('1234567890.123', 'X');
- assert.equal(m.format('X'), '1234567890', 'unix timestamp without milliseconds');
- assert.equal(m.format('X.S'), '1234567890.1', 'unix timestamp with deciseconds');
- assert.equal(m.format('X.SS'), '1234567890.12', 'unix timestamp with centiseconds');
- assert.equal(m.format('X.SSS'), '1234567890.123', 'unix timestamp with milliseconds');
- m = moment(1234567890.123, 'X');
- assert.equal(m.format('X'), '1234567890', 'unix timestamp as integer');
- });
- test('unix offset milliseconds', function (assert) {
- var m = moment('1234567890123', 'x');
- assert.equal(m.format('x'), '1234567890123', 'unix offset in milliseconds');
- m = moment(1234567890123, 'x');
- assert.equal(m.format('x'), '1234567890123', 'unix offset in milliseconds as integer');
- });
- test('utcOffset sanity checks', function (assert) {
- assert.equal(moment().utcOffset() % 15, 0,
- 'utc offset should be a multiple of 15 (was ' + moment().utcOffset() + ')');
- assert.equal(moment().utcOffset(), -(new Date()).getTimezoneOffset(),
- 'utcOffset should return the opposite of getTimezoneOffset');
- });
- test('default format', function (assert) {
- var isoRegex = /\d{4}.\d\d.\d\dT\d\d.\d\d.\d\d[\+\-]\d\d:\d\d/;
- assert.ok(isoRegex.exec(moment().format()), 'default format (' + moment().format() + ') should match ISO');
- });
- test('toJSON', function (assert) {
- var supportsJson = typeof JSON !== 'undefined' && JSON.stringify && JSON.stringify.call,
- date = moment('2012-10-09T21:30:40.678+0100');
- assert.equal(date.toJSON(), '2012-10-09T20:30:40.678Z', 'should output ISO8601 on moment.fn.toJSON');
- if (supportsJson) {
- assert.equal(JSON.stringify({
- date : date
- }), '{"date":"2012-10-09T20:30:40.678Z"}', 'should output ISO8601 on JSON.stringify');
- }
- });
- test('toISOString', function (assert) {
- var date = moment.utc('2012-10-09T20:30:40.678');
- assert.equal(date.toISOString(), '2012-10-09T20:30:40.678Z', 'should output ISO8601 on moment.fn.toISOString');
- // big years
- date = moment.utc('+020123-10-09T20:30:40.678');
- assert.equal(date.toISOString(), '+020123-10-09T20:30:40.678Z', 'ISO8601 format on big positive year');
- // negative years
- date = moment.utc('-000001-10-09T20:30:40.678');
- assert.equal(date.toISOString(), '-000001-10-09T20:30:40.678Z', 'ISO8601 format on negative year');
- // big negative years
- date = moment.utc('-020123-10-09T20:30:40.678');
- assert.equal(date.toISOString(), '-020123-10-09T20:30:40.678Z', 'ISO8601 format on big negative year');
- });
- test('long years', function (assert) {
- assert.equal(moment.utc().year(2).format('YYYYYY'), '+000002', 'small year with YYYYYY');
- assert.equal(moment.utc().year(2012).format('YYYYYY'), '+002012', 'regular year with YYYYYY');
- assert.equal(moment.utc().year(20123).format('YYYYYY'), '+020123', 'big year with YYYYYY');
- assert.equal(moment.utc().year(-1).format('YYYYYY'), '-000001', 'small negative year with YYYYYY');
- assert.equal(moment.utc().year(-2012).format('YYYYYY'), '-002012', 'negative year with YYYYYY');
- assert.equal(moment.utc().year(-20123).format('YYYYYY'), '-020123', 'big negative year with YYYYYY');
- });
- test('iso week formats', function (assert) {
- // http://en.wikipedia.org/wiki/ISO_week_date
- var cases = {
- '2005-01-02': '2004-53',
- '2005-12-31': '2005-52',
- '2007-01-01': '2007-01',
- '2007-12-30': '2007-52',
- '2007-12-31': '2008-01',
- '2008-01-01': '2008-01',
- '2008-12-28': '2008-52',
- '2008-12-29': '2009-01',
- '2008-12-30': '2009-01',
- '2008-12-31': '2009-01',
- '2009-01-01': '2009-01',
- '2009-12-31': '2009-53',
- '2010-01-01': '2009-53',
- '2010-01-02': '2009-53',
- '2010-01-03': '2009-53',
- '404-12-31': '0404-53',
- '405-12-31': '0405-52'
- }, i, isoWeek, formatted2, formatted1;
- for (i in cases) {
- isoWeek = cases[i].split('-').pop();
- formatted2 = moment(i, 'YYYY-MM-DD').format('WW');
- assert.equal(isoWeek, formatted2, i + ': WW should be ' + isoWeek + ', but ' + formatted2);
- isoWeek = isoWeek.replace(/^0+/, '');
- formatted1 = moment(i, 'YYYY-MM-DD').format('W');
- assert.equal(isoWeek, formatted1, i + ': W should be ' + isoWeek + ', but ' + formatted1);
- }
- });
- test('iso week year formats', function (assert) {
- // http://en.wikipedia.org/wiki/ISO_week_date
- var cases = {
- '2005-01-02': '2004-53',
- '2005-12-31': '2005-52',
- '2007-01-01': '2007-01',
- '2007-12-30': '2007-52',
- '2007-12-31': '2008-01',
- '2008-01-01': '2008-01',
- '2008-12-28': '2008-52',
- '2008-12-29': '2009-01',
- '2008-12-30': '2009-01',
- '2008-12-31': '2009-01',
- '2009-01-01': '2009-01',
- '2009-12-31': '2009-53',
- '2010-01-01': '2009-53',
- '2010-01-02': '2009-53',
- '2010-01-03': '2009-53',
- '404-12-31': '0404-53',
- '405-12-31': '0405-52'
- }, i, isoWeekYear, formatted5, formatted4, formatted2;
- for (i in cases) {
- isoWeekYear = cases[i].split('-')[0];
- formatted5 = moment(i, 'YYYY-MM-DD').format('GGGGG');
- assert.equal('0' + isoWeekYear, formatted5, i + ': GGGGG should be ' + isoWeekYear + ', but ' + formatted5);
- formatted4 = moment(i, 'YYYY-MM-DD').format('GGGG');
- assert.equal(isoWeekYear, formatted4, i + ': GGGG should be ' + isoWeekYear + ', but ' + formatted4);
- formatted2 = moment(i, 'YYYY-MM-DD').format('GG');
- assert.equal(isoWeekYear.slice(2, 4), formatted2, i + ': GG should be ' + isoWeekYear + ', but ' + formatted2);
- }
- });
- test('week year formats', function (assert) {
- // http://en.wikipedia.org/wiki/ISO_week_date
- var cases = {
- '2005-01-02': '2004-53',
- '2005-12-31': '2005-52',
- '2007-01-01': '2007-01',
- '2007-12-30': '2007-52',
- '2007-12-31': '2008-01',
- '2008-01-01': '2008-01',
- '2008-12-28': '2008-52',
- '2008-12-29': '2009-01',
- '2008-12-30': '2009-01',
- '2008-12-31': '2009-01',
- '2009-01-01': '2009-01',
- '2009-12-31': '2009-53',
- '2010-01-01': '2009-53',
- '2010-01-02': '2009-53',
- '2010-01-03': '2009-53',
- '404-12-31': '0404-53',
- '405-12-31': '0405-52'
- }, i, isoWeekYear, formatted5, formatted4, formatted2;
- moment.locale('dow:1,doy:4', {week: {dow: 1, doy: 4}});
- for (i in cases) {
- isoWeekYear = cases[i].split('-')[0];
- formatted5 = moment(i, 'YYYY-MM-DD').format('ggggg');
- assert.equal('0' + isoWeekYear, formatted5, i + ': ggggg should be ' + isoWeekYear + ', but ' + formatted5);
- formatted4 = moment(i, 'YYYY-MM-DD').format('gggg');
- assert.equal(isoWeekYear, formatted4, i + ': gggg should be ' + isoWeekYear + ', but ' + formatted4);
- formatted2 = moment(i, 'YYYY-MM-DD').format('gg');
- assert.equal(isoWeekYear.slice(2, 4), formatted2, i + ': gg should be ' + isoWeekYear + ', but ' + formatted2);
- }
- });
- test('iso weekday formats', function (assert) {
- assert.equal(moment([1985, 1, 4]).format('E'), '1', 'Feb 4 1985 is Monday -- 1st day');
- assert.equal(moment([2029, 8, 18]).format('E'), '2', 'Sep 18 2029 is Tuesday -- 2nd day');
- assert.equal(moment([2013, 3, 24]).format('E'), '3', 'Apr 24 2013 is Wednesday -- 3rd day');
- assert.equal(moment([2015, 2, 5]).format('E'), '4', 'Mar 5 2015 is Thursday -- 4th day');
- assert.equal(moment([1970, 0, 2]).format('E'), '5', 'Jan 2 1970 is Friday -- 5th day');
- assert.equal(moment([2001, 4, 12]).format('E'), '6', 'May 12 2001 is Saturday -- 6th day');
- assert.equal(moment([2000, 0, 2]).format('E'), '7', 'Jan 2 2000 is Sunday -- 7th day');
- });
- test('weekday formats', function (assert) {
- moment.locale('dow: 3,doy: 5', {week: {dow: 3, doy: 5}});
- assert.equal(moment([1985, 1, 6]).format('e'), '0', 'Feb 6 1985 is Wednesday -- 0th day');
- assert.equal(moment([2029, 8, 20]).format('e'), '1', 'Sep 20 2029 is Thursday -- 1st day');
- assert.equal(moment([2013, 3, 26]).format('e'), '2', 'Apr 26 2013 is Friday -- 2nd day');
- assert.equal(moment([2015, 2, 7]).format('e'), '3', 'Mar 7 2015 is Saturday -- 3nd day');
- assert.equal(moment([1970, 0, 4]).format('e'), '4', 'Jan 4 1970 is Sunday -- 4th day');
- assert.equal(moment([2001, 4, 14]).format('e'), '5', 'May 14 2001 is Monday -- 5th day');
- assert.equal(moment([2000, 0, 4]).format('e'), '6', 'Jan 4 2000 is Tuesday -- 6th day');
- });
- test('toString is just human readable format', function (assert) {
- var b = moment(new Date(2009, 1, 5, 15, 25, 50, 125));
- assert.equal(b.toString(), b.format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'));
- });
- test('toJSON skips postformat', function (assert) {
- moment.locale('postformat', {
- postformat: function (s) {
- s.replace(/./g, 'X');
- }
- });
- assert.equal(moment.utc([2000, 0, 1]).toJSON(), '2000-01-01T00:00:00.000Z', 'toJSON doesn\'t postformat');
- moment.locale('postformat', null);
- });
- test('calendar day timezone', function (assert) {
- moment.locale('en');
- var zones = [60, -60, 90, -90, 360, -360, 720, -720],
- b = moment().utc().startOf('day').subtract({m : 1}),
- c = moment().local().startOf('day').subtract({m : 1}),
- d = moment().local().startOf('day').subtract({d : 2}),
- i, z, a;
- for (i = 0; i < zones.length; ++i) {
- z = zones[i];
- a = moment().utcOffset(z).startOf('day').subtract({m: 1});
- assert.equal(moment(a).utcOffset(z).calendar(), 'Yesterday at 11:59 PM',
- 'Yesterday at 11:59 PM, not Today, or the wrong time, tz = ' + z);
- }
- assert.equal(moment(b).utc().calendar(), 'Yesterday at 11:59 PM', 'Yesterday at 11:59 PM, not Today, or the wrong time');
- assert.equal(moment(c).local().calendar(), 'Yesterday at 11:59 PM', 'Yesterday at 11:59 PM, not Today, or the wrong time');
- assert.equal(moment(c).local().calendar(d), 'Tomorrow at 11:59 PM', 'Tomorrow at 11:59 PM, not Yesterday, or the wrong time');
- });
- test('calendar with custom formats', function (assert) {
- assert.equal(moment().calendar(null, {sameDay: '[Today]'}), 'Today', 'Today');
- assert.equal(moment().add(1, 'days').calendar(null, {nextDay: '[Tomorrow]'}), 'Tomorrow', 'Tomorrow');
- assert.equal(moment([1985, 1, 4]).calendar(null, {sameElse: 'YYYY-MM-DD'}), '1985-02-04', 'Else');
- });
- test('invalid', function (assert) {
- assert.equal(moment.invalid().format(), 'Invalid date');
- assert.equal(moment.invalid().format('YYYY-MM-DD'), 'Invalid date');
- });
- test('quarter formats', function (assert) {
- assert.equal(moment([1985, 1, 4]).format('Q'), '1', 'Feb 4 1985 is Q1');
- assert.equal(moment([2029, 8, 18]).format('Q'), '3', 'Sep 18 2029 is Q3');
- assert.equal(moment([2013, 3, 24]).format('Q'), '2', 'Apr 24 2013 is Q2');
- assert.equal(moment([2015, 2, 5]).format('Q'), '1', 'Mar 5 2015 is Q1');
- assert.equal(moment([1970, 0, 2]).format('Q'), '1', 'Jan 2 1970 is Q1');
- assert.equal(moment([2001, 11, 12]).format('Q'), '4', 'Dec 12 2001 is Q4');
- assert.equal(moment([2000, 0, 2]).format('[Q]Q-YYYY'), 'Q1-2000', 'Jan 2 2000 is Q1');
- });
- test('quarter ordinal formats', function (assert) {
- assert.equal(moment([1985, 1, 4]).format('Qo'), '1st', 'Feb 4 1985 is 1st quarter');
- assert.equal(moment([2029, 8, 18]).format('Qo'), '3rd', 'Sep 18 2029 is 3rd quarter');
- assert.equal(moment([2013, 3, 24]).format('Qo'), '2nd', 'Apr 24 2013 is 2nd quarter');
- assert.equal(moment([2015, 2, 5]).format('Qo'), '1st', 'Mar 5 2015 is 1st quarter');
- assert.equal(moment([1970, 0, 2]).format('Qo'), '1st', 'Jan 2 1970 is 1st quarter');
- assert.equal(moment([2001, 11, 12]).format('Qo'), '4th', 'Dec 12 2001 is 4th quarter');
- assert.equal(moment([2000, 0, 2]).format('Qo [quarter] YYYY'), '1st quarter 2000', 'Jan 2 2000 is 1st quarter');
- });
- test('full expanded format is returned from abbreviated formats', function (assert) {
- function forEach(ar, fn) {
- if (ar.forEach) {
- return ar.forEach(fn);
- } else {
- // IE8
- for (var i = 0; i < ar.length; i += 1) {
- fn(ar[i]);
- }
- }
- }
- function objectKeys(obj) {
- if (Object.keys) {
- return Object.keys(obj);
- } else {
- // IE8
- var res = [], i;
- for (i in obj) {
- if (obj.hasOwnProperty(i)) {
- res.push(i);
- }
- }
- return res;
- }
- }
- var locales =
- 'ar-sa ar-tn ar az be bg bn bo br bs ca cs cv cy da de-at de dv el ' +
- 'en-au en-ca en-gb en-ie en-nz eo es et eu fa fi fo fr-ca fr-ch fr fy ' +
- 'gd gl he hi hr hu hy-am id is it ja jv ka kk km ko lb lo lt lv me mk ml ' +
- 'mr ms-my ms my nb ne nl nn pl pt-br pt ro ru se si sk sl sq sr-cyrl ' +
- 'sr sv sw ta te th tl-ph tlh tr tzl tzm-latn tzm uk uz vi zh-cn zh-tw';
- forEach(locales.split(' '), function (locale) {
- var data, tokens;
- data = moment().locale(locale).localeData()._longDateFormat;
- tokens = objectKeys(data);
- forEach(tokens, function (token) {
- // Check each format string to make sure it does not contain any
- // tokens that need to be expanded.
- forEach(tokens, function (i) {
- // strip escaped sequences
- var format = data[i].replace(/(\[[^\]]*\])/g, '');
- assert.equal(false, !!~format.indexOf(token), 'locale ' + locale + ' contains ' + token + ' in ' + i);
- });
- });
- });
- });
- test('milliseconds', function (assert) {
- var m = moment('123', 'SSS');
- assert.equal(m.format('S'), '1');
- assert.equal(m.format('SS'), '12');
- assert.equal(m.format('SSS'), '123');
- assert.equal(m.format('SSSS'), '1230');
- assert.equal(m.format('SSSSS'), '12300');
- assert.equal(m.format('SSSSSS'), '123000');
- assert.equal(m.format('SSSSSSS'), '1230000');
- assert.equal(m.format('SSSSSSSS'), '12300000');
- assert.equal(m.format('SSSSSSSSS'), '123000000');
- });
- test('hmm and hmmss', function (assert) {
- assert.equal(moment('12:34:56', 'HH:mm:ss').format('hmm'), '1234');
- assert.equal(moment('01:34:56', 'HH:mm:ss').format('hmm'), '134');
- assert.equal(moment('13:34:56', 'HH:mm:ss').format('hmm'), '134');
- assert.equal(moment('12:34:56', 'HH:mm:ss').format('hmmss'), '123456');
- assert.equal(moment('01:34:56', 'HH:mm:ss').format('hmmss'), '13456');
- assert.equal(moment('13:34:56', 'HH:mm:ss').format('hmmss'), '13456');
- });
- test('Hmm and Hmmss', function (assert) {
- assert.equal(moment('12:34:56', 'HH:mm:ss').format('Hmm'), '1234');
- assert.equal(moment('01:34:56', 'HH:mm:ss').format('Hmm'), '134');
- assert.equal(moment('13:34:56', 'HH:mm:ss').format('Hmm'), '1334');
- assert.equal(moment('12:34:56', 'HH:mm:ss').format('Hmmss'), '123456');
- assert.equal(moment('01:34:56', 'HH:mm:ss').format('Hmmss'), '13456');
- assert.equal(moment('08:34:56', 'HH:mm:ss').format('Hmmss'), '83456');
- assert.equal(moment('18:34:56', 'HH:mm:ss').format('Hmmss'), '183456');
- });
- test('Y token', function (assert) {
- assert.equal(moment('2010-01-01', 'YYYY-MM-DD', true).format('Y'), '2010', 'format 2010 with Y');
- assert.equal(moment('-123-01-01', 'Y-MM-DD', true).format('Y'), '-123', 'format -123 with Y');
- assert.equal(moment('12345-01-01', 'Y-MM-DD', true).format('Y'), '+12345', 'format 12345 with Y');
- assert.equal(moment('0-01-01', 'Y-MM-DD', true).format('Y'), '0', 'format 0 with Y');
- assert.equal(moment('1-01-01', 'Y-MM-DD', true).format('Y'), '1', 'format 1 with Y');
- assert.equal(moment('9999-01-01', 'Y-MM-DD', true).format('Y'), '9999', 'format 9999 with Y');
- assert.equal(moment('10000-01-01', 'Y-MM-DD', true).format('Y'), '+10000', 'format 10000 with Y');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('from_to');
- test('from', function (assert) {
- var start = moment();
- moment.locale('en');
- assert.equal(start.from(start.clone().add(5, 'seconds')), 'a few seconds ago', '5 seconds = a few seconds ago');
- assert.equal(start.from(start.clone().add(1, 'minute')), 'a minute ago', '1 minute = a minute ago');
- assert.equal(start.from(start.clone().add(5, 'minutes')), '5 minutes ago', '5 minutes = 5 minutes ago');
- assert.equal(start.from(start.clone().subtract(5, 'seconds')), 'in a few seconds', '5 seconds = in a few seconds');
- assert.equal(start.from(start.clone().subtract(1, 'minute')), 'in a minute', '1 minute = in a minute');
- assert.equal(start.from(start.clone().subtract(5, 'minutes')), 'in 5 minutes', '5 minutes = in 5 minutes');
- });
- test('from with absolute duration', function (assert) {
- var start = moment();
- moment.locale('en');
- assert.equal(start.from(start.clone().add(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds');
- assert.equal(start.from(start.clone().add(1, 'minute'), true), 'a minute', '1 minute = a minute');
- assert.equal(start.from(start.clone().add(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes');
- assert.equal(start.from(start.clone().subtract(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds');
- assert.equal(start.from(start.clone().subtract(1, 'minute'), true), 'a minute', '1 minute = a minute');
- assert.equal(start.from(start.clone().subtract(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes');
- });
- test('to', function (assert) {
- var start = moment();
- moment.locale('en');
- assert.equal(start.to(start.clone().subtract(5, 'seconds')), 'a few seconds ago', '5 seconds = a few seconds ago');
- assert.equal(start.to(start.clone().subtract(1, 'minute')), 'a minute ago', '1 minute = a minute ago');
- assert.equal(start.to(start.clone().subtract(5, 'minutes')), '5 minutes ago', '5 minutes = 5 minutes ago');
- assert.equal(start.to(start.clone().add(5, 'seconds')), 'in a few seconds', '5 seconds = in a few seconds');
- assert.equal(start.to(start.clone().add(1, 'minute')), 'in a minute', '1 minute = in a minute');
- assert.equal(start.to(start.clone().add(5, 'minutes')), 'in 5 minutes', '5 minutes = in 5 minutes');
- });
- test('to with absolute duration', function (assert) {
- var start = moment();
- moment.locale('en');
- assert.equal(start.to(start.clone().add(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds');
- assert.equal(start.to(start.clone().add(1, 'minute'), true), 'a minute', '1 minute = a minute');
- assert.equal(start.to(start.clone().add(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes');
- assert.equal(start.to(start.clone().subtract(5, 'seconds'), true), 'a few seconds', '5 seconds = a few seconds');
- assert.equal(start.to(start.clone().subtract(1, 'minute'), true), 'a minute', '1 minute = a minute');
- assert.equal(start.to(start.clone().subtract(5, 'minutes'), true), '5 minutes', '5 minutes = 5 minutes');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('getters and setters');
- test('getters', function (assert) {
- var a = moment([2011, 9, 12, 6, 7, 8, 9]);
- assert.equal(a.year(), 2011, 'year');
- assert.equal(a.month(), 9, 'month');
- assert.equal(a.date(), 12, 'date');
- assert.equal(a.day(), 3, 'day');
- assert.equal(a.hours(), 6, 'hour');
- assert.equal(a.minutes(), 7, 'minute');
- assert.equal(a.seconds(), 8, 'second');
- assert.equal(a.milliseconds(), 9, 'milliseconds');
- });
- test('getters programmatic', function (assert) {
- var a = moment([2011, 9, 12, 6, 7, 8, 9]);
- assert.equal(a.get('year'), 2011, 'year');
- assert.equal(a.get('month'), 9, 'month');
- assert.equal(a.get('date'), 12, 'date');
- assert.equal(a.get('day'), 3, 'day');
- assert.equal(a.get('hour'), 6, 'hour');
- assert.equal(a.get('minute'), 7, 'minute');
- assert.equal(a.get('second'), 8, 'second');
- assert.equal(a.get('milliseconds'), 9, 'milliseconds');
- //actual getters tested elsewhere
- assert.equal(a.get('weekday'), a.weekday(), 'weekday');
- assert.equal(a.get('isoWeekday'), a.isoWeekday(), 'isoWeekday');
- assert.equal(a.get('week'), a.week(), 'week');
- assert.equal(a.get('isoWeek'), a.isoWeek(), 'isoWeek');
- assert.equal(a.get('dayOfYear'), a.dayOfYear(), 'dayOfYear');
- });
- test('setters plural', function (assert) {
- var a = moment();
- a.years(2011);
- a.months(9);
- a.dates(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(9);
- assert.equal(a.years(), 2011, 'years');
- assert.equal(a.months(), 9, 'months');
- assert.equal(a.dates(), 12, 'dates');
- assert.equal(a.days(), 3, 'days');
- assert.equal(a.hours(), 6, 'hours');
- assert.equal(a.minutes(), 7, 'minutes');
- assert.equal(a.seconds(), 8, 'seconds');
- assert.equal(a.milliseconds(), 9, 'milliseconds');
- });
- test('setters singular', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hour(6);
- a.minute(7);
- a.second(8);
- a.millisecond(9);
- assert.equal(a.year(), 2011, 'year');
- assert.equal(a.month(), 9, 'month');
- assert.equal(a.date(), 12, 'date');
- assert.equal(a.day(), 3, 'day');
- assert.equal(a.hour(), 6, 'hour');
- assert.equal(a.minute(), 7, 'minute');
- assert.equal(a.second(), 8, 'second');
- assert.equal(a.millisecond(), 9, 'milliseconds');
- });
- test('setters', function (assert) {
- var a = moment();
- a.year(2011);
- a.month(9);
- a.date(12);
- a.hours(6);
- a.minutes(7);
- a.seconds(8);
- a.milliseconds(9);
- assert.equal(a.year(), 2011, 'year');
- assert.equal(a.month(), 9, 'month');
- assert.equal(a.date(), 12, 'date');
- assert.equal(a.day(), 3, 'day');
- assert.equal(a.hours(), 6, 'hour');
- assert.equal(a.minutes(), 7, 'minute');
- assert.equal(a.seconds(), 8, 'second');
- assert.equal(a.milliseconds(), 9, 'milliseconds');
- // Test month() behavior. See https://github.com/timrwood/moment/pull/822
- a = moment('20130531', 'YYYYMMDD');
- a.month(3);
- assert.equal(a.month(), 3, 'month edge case');
- });
- test('setter programmatic', function (assert) {
- var a = moment();
- a.set('year', 2011);
- a.set('month', 9);
- a.set('date', 12);
- a.set('hours', 6);
- a.set('minutes', 7);
- a.set('seconds', 8);
- a.set('milliseconds', 9);
- assert.equal(a.year(), 2011, 'year');
- assert.equal(a.month(), 9, 'month');
- assert.equal(a.date(), 12, 'date');
- assert.equal(a.day(), 3, 'day');
- assert.equal(a.hours(), 6, 'hour');
- assert.equal(a.minutes(), 7, 'minute');
- assert.equal(a.seconds(), 8, 'second');
- assert.equal(a.milliseconds(), 9, 'milliseconds');
- // Test month() behavior. See https://github.com/timrwood/moment/pull/822
- a = moment('20130531', 'YYYYMMDD');
- a.month(3);
- assert.equal(a.month(), 3, 'month edge case');
- });
- // Disable this, until we weekYear setter is fixed.
- // https://github.com/moment/moment/issues/1379
- // test('setters programatic with weeks', function (assert) {
- // var a = moment();
- // a.set('weekYear', 2001);
- // a.set('week', 49);
- // a.set('day', 4);
- // assert.equals(a.weekYear(), 2001);
- // assert.equals(a.week(), 49);
- // assert.equals(a.day(), 4);
- // a.set('weekday', 1);
- // assert.equals(a.weekday(), 1);
- // assert.done();
- //},
- // I think this suffers from the same issue as the non-iso version.
- // test('setters programatic with weeks ISO', function (assert) {
- // var a = moment();
- // a.set('isoWeekYear', 2001);
- // a.set('isoWeek', 49);
- // a.set('isoWeekday', 4);
- // assert.equals(a.weekYear(), 2001);
- // assert.equals(a.week(), 49);
- // assert.equals(a.day(), 4);
- // assert.done();
- //},
- test('setters strings', function (assert) {
- var a = moment([2012]).locale('en');
- assert.equal(a.clone().day(0).day('Wednesday').day(), 3, 'day full name');
- assert.equal(a.clone().day(0).day('Wed').day(), 3, 'day short name');
- assert.equal(a.clone().day(0).day('We').day(), 3, 'day minimal name');
- assert.equal(a.clone().day(0).day('invalid').day(), 0, 'invalid day name');
- assert.equal(a.clone().month(0).month('April').month(), 3, 'month full name');
- assert.equal(a.clone().month(0).month('Apr').month(), 3, 'month short name');
- assert.equal(a.clone().month(0).month('invalid').month(), 0, 'invalid month name');
- });
- test('setters - falsey values', function (assert) {
- var a = moment();
- // ensure minutes wasn't coincidentally 0 already
- a.minutes(1);
- a.minutes(0);
- assert.equal(a.minutes(), 0, 'falsey value');
- });
- test('chaining setters', function (assert) {
- var a = moment();
- a.year(2011)
- .month(9)
- .date(12)
- .hours(6)
- .minutes(7)
- .seconds(8);
- assert.equal(a.year(), 2011, 'year');
- assert.equal(a.month(), 9, 'month');
- assert.equal(a.date(), 12, 'date');
- assert.equal(a.day(), 3, 'day');
- assert.equal(a.hours(), 6, 'hour');
- assert.equal(a.minutes(), 7, 'minute');
- assert.equal(a.seconds(), 8, 'second');
- });
- test('setter with multiple unit values', function (assert) {
- var a = moment();
- a.set({
- year: 2011,
- month: 9,
- date: 12,
- hours: 6,
- minutes: 7,
- seconds: 8,
- milliseconds: 9
- });
- assert.equal(a.year(), 2011, 'year');
- assert.equal(a.month(), 9, 'month');
- assert.equal(a.date(), 12, 'date');
- assert.equal(a.day(), 3, 'day');
- assert.equal(a.hours(), 6, 'hour');
- assert.equal(a.minutes(), 7, 'minute');
- assert.equal(a.seconds(), 8, 'second');
- assert.equal(a.milliseconds(), 9, 'milliseconds');
- });
- test('day setter', function (assert) {
- var a = moment([2011, 0, 15]);
- assert.equal(moment(a).day(0).date(), 9, 'set from saturday to sunday');
- assert.equal(moment(a).day(6).date(), 15, 'set from saturday to saturday');
- assert.equal(moment(a).day(3).date(), 12, 'set from saturday to wednesday');
- a = moment([2011, 0, 9]);
- assert.equal(moment(a).day(0).date(), 9, 'set from sunday to sunday');
- assert.equal(moment(a).day(6).date(), 15, 'set from sunday to saturday');
- assert.equal(moment(a).day(3).date(), 12, 'set from sunday to wednesday');
- a = moment([2011, 0, 12]);
- assert.equal(moment(a).day(0).date(), 9, 'set from wednesday to sunday');
- assert.equal(moment(a).day(6).date(), 15, 'set from wednesday to saturday');
- assert.equal(moment(a).day(3).date(), 12, 'set from wednesday to wednesday');
- assert.equal(moment(a).day(-7).date(), 2, 'set from wednesday to last sunday');
- assert.equal(moment(a).day(-1).date(), 8, 'set from wednesday to last saturday');
- assert.equal(moment(a).day(-4).date(), 5, 'set from wednesday to last wednesday');
- assert.equal(moment(a).day(7).date(), 16, 'set from wednesday to next sunday');
- assert.equal(moment(a).day(13).date(), 22, 'set from wednesday to next saturday');
- assert.equal(moment(a).day(10).date(), 19, 'set from wednesday to next wednesday');
- assert.equal(moment(a).day(14).date(), 23, 'set from wednesday to second next sunday');
- assert.equal(moment(a).day(20).date(), 29, 'set from wednesday to second next saturday');
- assert.equal(moment(a).day(17).date(), 26, 'set from wednesday to second next wednesday');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('instanceof');
- test('instanceof', function (assert) {
- var mm = moment([2010, 0, 1]);
- var extend = function (a, b) {
- var i;
- for (i in b) {
- a[i] = b[i];
- }
- return a;
- };
- assert.equal(moment() instanceof moment, true, 'simple moment object');
- assert.equal(extend({}, moment()) instanceof moment, false, 'extended moment object');
- assert.equal(moment(null) instanceof moment, true, 'invalid moment object');
- assert.equal(new Date() instanceof moment, false, 'date object is not moment object');
- assert.equal(Object instanceof moment, false, 'Object is not moment object');
- assert.equal('foo' instanceof moment, false, 'string is not moment object');
- assert.equal(1 instanceof moment, false, 'number is not moment object');
- assert.equal(NaN instanceof moment, false, 'NaN is not moment object');
- assert.equal(null instanceof moment, false, 'null is not moment object');
- assert.equal(undefined instanceof moment, false, 'undefined is not moment object');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('invalid');
- test('invalid', function (assert) {
- var m = moment.invalid();
- assert.equal(m.isValid(), false);
- assert.equal(m.parsingFlags().userInvalidated, true);
- assert.ok(isNaN(m.valueOf()));
- });
- test('invalid with existing flag', function (assert) {
- var m = moment.invalid({invalidMonth : 'whatchamacallit'});
- assert.equal(m.isValid(), false);
- assert.equal(m.parsingFlags().userInvalidated, false);
- assert.equal(m.parsingFlags().invalidMonth, 'whatchamacallit');
- assert.ok(isNaN(m.valueOf()));
- });
- test('invalid with custom flag', function (assert) {
- var m = moment.invalid({tooBusyWith : 'reiculating splines'});
- assert.equal(m.isValid(), false);
- assert.equal(m.parsingFlags().userInvalidated, false);
- assert.equal(m.parsingFlags().tooBusyWith, 'reiculating splines');
- assert.ok(isNaN(m.valueOf()));
- });
- test('invalid operations', function (assert) {
- var invalids = [
- moment.invalid(),
- moment('xyz', 'l'),
- moment('2015-01-35', 'YYYY-MM-DD'),
- moment('2015-01-25 a', 'YYYY-MM-DD', true)
- ],
- i,
- invalid,
- valid = moment();
- for (i = 0; i < invalids.length; ++i) {
- invalid = invalids[i];
- assert.ok(!invalid.clone().add(5, 'hours').isValid(), 'invalid.add is invalid');
- assert.equal(invalid.calendar(), 'Invalid date', 'invalid.calendar is \'Invalid date\'');
- assert.ok(!invalid.clone().isValid(), 'invalid.clone is invalid');
- assert.ok(isNaN(invalid.diff(valid)), 'invalid.diff(valid) is NaN');
- assert.ok(isNaN(valid.diff(invalid)), 'valid.diff(invalid) is NaN');
- assert.ok(isNaN(invalid.diff(invalid)), 'invalid.diff(invalid) is NaN');
- assert.ok(!invalid.clone().endOf('month').isValid(), 'invalid.endOf is invalid');
- assert.equal(invalid.format(), 'Invalid date', 'invalid.format is \'Invalid date\'');
- assert.equal(invalid.from(), 'Invalid date');
- assert.equal(invalid.from(valid), 'Invalid date');
- assert.equal(valid.from(invalid), 'Invalid date');
- assert.equal(invalid.fromNow(), 'Invalid date');
- assert.equal(invalid.to(), 'Invalid date');
- assert.equal(invalid.to(valid), 'Invalid date');
- assert.equal(valid.to(invalid), 'Invalid date');
- assert.equal(invalid.toNow(), 'Invalid date');
- assert.ok(isNaN(invalid.get('year')), 'invalid.get is NaN');
- // TODO invalidAt
- assert.ok(!invalid.isAfter(valid));
- assert.ok(!valid.isAfter(invalid));
- assert.ok(!invalid.isAfter(invalid));
- assert.ok(!invalid.isBefore(valid));
- assert.ok(!valid.isBefore(invalid));
- assert.ok(!invalid.isBefore(invalid));
- assert.ok(!invalid.isBetween(valid, valid));
- assert.ok(!valid.isBetween(invalid, valid));
- assert.ok(!valid.isBetween(valid, invalid));
- assert.ok(!invalid.isSame(invalid));
- assert.ok(!invalid.isSame(valid));
- assert.ok(!valid.isSame(invalid));
- assert.ok(!invalid.isValid());
- assert.equal(invalid.locale(), 'en');
- assert.equal(invalid.localeData()._abbr, 'en');
- assert.ok(!invalid.clone().max(valid).isValid());
- assert.ok(!valid.clone().max(invalid).isValid());
- assert.ok(!invalid.clone().max(invalid).isValid());
- assert.ok(!invalid.clone().min(valid).isValid());
- assert.ok(!valid.clone().min(invalid).isValid());
- assert.ok(!invalid.clone().min(invalid).isValid());
- assert.ok(!moment.min(invalid, valid).isValid());
- assert.ok(!moment.min(valid, invalid).isValid());
- assert.ok(!moment.max(invalid, valid).isValid());
- assert.ok(!moment.max(valid, invalid).isValid());
- assert.ok(!invalid.clone().set('year', 2005).isValid());
- assert.ok(!invalid.clone().startOf('month').isValid());
- assert.ok(!invalid.clone().subtract(5, 'days').isValid());
- assert.deepEqual(invalid.toArray(), [NaN, NaN, NaN, NaN, NaN, NaN, NaN]);
- assert.deepEqual(invalid.toObject(), {
- years: NaN,
- months: NaN,
- date: NaN,
- hours: NaN,
- minutes: NaN,
- seconds: NaN,
- milliseconds: NaN
- });
- assert.ok(moment.isDate(invalid.toDate()));
- assert.ok(isNaN(invalid.toDate().valueOf()));
- assert.equal(invalid.toJSON(), 'null');
- assert.equal(invalid.toString(), 'Invalid date');
- assert.ok(isNaN(invalid.unix()));
- assert.ok(isNaN(invalid.valueOf()));
- assert.ok(isNaN(invalid.year()));
- assert.ok(isNaN(invalid.weekYear()));
- assert.ok(isNaN(invalid.isoWeekYear()));
- assert.ok(isNaN(invalid.quarter()));
- assert.ok(isNaN(invalid.quarters()));
- assert.ok(isNaN(invalid.month()));
- assert.ok(isNaN(invalid.daysInMonth()));
- assert.ok(isNaN(invalid.week()));
- assert.ok(isNaN(invalid.weeks()));
- assert.ok(isNaN(invalid.isoWeek()));
- assert.ok(isNaN(invalid.isoWeeks()));
- assert.ok(isNaN(invalid.weeksInYear()));
- assert.ok(isNaN(invalid.isoWeeksInYear()));
- assert.ok(isNaN(invalid.date()));
- assert.ok(isNaN(invalid.day()));
- assert.ok(isNaN(invalid.days()));
- assert.ok(isNaN(invalid.weekday()));
- assert.ok(isNaN(invalid.isoWeekday()));
- assert.ok(isNaN(invalid.dayOfYear()));
- assert.ok(isNaN(invalid.hour()));
- assert.ok(isNaN(invalid.hours()));
- assert.ok(isNaN(invalid.minute()));
- assert.ok(isNaN(invalid.minutes()));
- assert.ok(isNaN(invalid.second()));
- assert.ok(isNaN(invalid.seconds()));
- assert.ok(isNaN(invalid.millisecond()));
- assert.ok(isNaN(invalid.milliseconds()));
- assert.ok(isNaN(invalid.utcOffset()));
- assert.ok(!invalid.clone().year(2001).isValid());
- assert.ok(!invalid.clone().weekYear(2001).isValid());
- assert.ok(!invalid.clone().isoWeekYear(2001).isValid());
- assert.ok(!invalid.clone().quarter(1).isValid());
- assert.ok(!invalid.clone().quarters(1).isValid());
- assert.ok(!invalid.clone().month(1).isValid());
- assert.ok(!invalid.clone().week(1).isValid());
- assert.ok(!invalid.clone().weeks(1).isValid());
- assert.ok(!invalid.clone().isoWeek(1).isValid());
- assert.ok(!invalid.clone().isoWeeks(1).isValid());
- assert.ok(!invalid.clone().date(1).isValid());
- assert.ok(!invalid.clone().day(1).isValid());
- assert.ok(!invalid.clone().days(1).isValid());
- assert.ok(!invalid.clone().weekday(1).isValid());
- assert.ok(!invalid.clone().isoWeekday(1).isValid());
- assert.ok(!invalid.clone().dayOfYear(1).isValid());
- assert.ok(!invalid.clone().hour(1).isValid());
- assert.ok(!invalid.clone().hours(1).isValid());
- assert.ok(!invalid.clone().minute(1).isValid());
- assert.ok(!invalid.clone().minutes(1).isValid());
- assert.ok(!invalid.clone().second(1).isValid());
- assert.ok(!invalid.clone().seconds(1).isValid());
- assert.ok(!invalid.clone().millisecond(1).isValid());
- assert.ok(!invalid.clone().milliseconds(1).isValid());
- assert.ok(!invalid.clone().utcOffset(1).isValid());
- assert.ok(!invalid.clone().utc().isValid());
- assert.ok(!invalid.clone().local().isValid());
- assert.ok(!invalid.clone().parseZone('05:30').isValid());
- assert.ok(!invalid.hasAlignedHourOffset());
- assert.ok(!invalid.isDST());
- assert.ok(!invalid.isDSTShifted());
- assert.ok(!invalid.isLocal());
- assert.ok(!invalid.isUtcOffset());
- assert.ok(!invalid.isUtc());
- assert.ok(!invalid.isUTC());
- assert.ok(!invalid.isLeapYear());
- assert.equal(moment.duration({from: invalid, to: valid}).asMilliseconds(), 0);
- assert.equal(moment.duration({from: valid, to: invalid}).asMilliseconds(), 0);
- assert.equal(moment.duration({from: invalid, to: invalid}).asMilliseconds(), 0);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is after');
- test('is after without units', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), false, 'month is later');
- assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), true, 'month is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), false, 'day is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), true, 'day is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), false, 'hour is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), true, 'hour is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), false, 'minute is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), true, 'minute is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), false, 'second is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), true, 'second is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'millisecond match');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), false, 'millisecond is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), true, 'millisecond is earlier');
- assert.equal(m.isAfter(m), false, 'moments are not after themselves');
- assert.equal(+m, +mCopy, 'isAfter second should not change moment');
- });
- test('is after year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year match');
- assert.equal(m.isAfter(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work');
- assert.equal(m.isAfter(moment(new Date(2013, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), false, 'exact start of year');
- assert.equal(m.isAfter(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), false, 'exact end of year');
- assert.equal(m.isAfter(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), false, 'start of next year');
- assert.equal(m.isAfter(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), true, 'end of previous year');
- assert.equal(m.isAfter(moment(new Date(1980, 11, 31, 23, 59, 59, 999)), 'year'), true, 'end of year far before');
- assert.equal(m.isAfter(m, 'year'), false, 'same moments are not after the same year');
- assert.equal(+m, +mCopy, 'isAfter year should not change moment');
- });
- test('is after month', function (assert) {
- var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), false, 'month match');
- assert.equal(m.isAfter(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work');
- assert.equal(m.isAfter(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), false, 'month is later');
- assert.equal(m.isAfter(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), true, 'month is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), false, 'exact start of month');
- assert.equal(m.isAfter(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), false, 'exact end of month');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), false, 'start of next month');
- assert.equal(m.isAfter(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), true, 'end of previous month');
- assert.equal(m.isAfter(moment(new Date(2010, 12, 31, 23, 59, 59, 999)), 'month'), true, 'later month but earlier year');
- assert.equal(m.isAfter(m, 'month'), false, 'same moments are not after the same month');
- assert.equal(+m, +mCopy, 'isAfter month should not change moment');
- });
- test('is after day', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 7, 8, 9, 10)), 'day'), false, 'day match');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work');
- assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 7, 8, 9, 10)), 'day'), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 7, 8, 9, 10)), 'day'), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 7, 8, 9, 10)), 'day'), false, 'month is later');
- assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), true, 'month is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 7, 8, 9, 10)), 'day'), false, 'day is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 7, 8, 9, 10)), 'day'), true, 'day is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 0, 0, 0, 0)), 'day'), false, 'exact start of day');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 23, 59, 59, 999)), 'day'), false, 'exact end of day');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 0, 0, 0, 0)), 'day'), false, 'start of next day');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 23, 59, 59, 999)), 'day'), true, 'end of previous day');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 10, 0, 0, 0, 0)), 'day'), true, 'later day but earlier year');
- assert.equal(m.isAfter(m, 'day'), false, 'same moments are not after the same day');
- assert.equal(+m, +mCopy, 'isAfter day should not change moment');
- });
- test('is after hour', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour match');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work');
- assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 8, 9, 10)), 'hour'), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 8, 9, 10)), 'hour'), false, 'month is later');
- assert.equal(m.isAfter(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'month is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 8, 9, 10)), 'hour'), false, 'day is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 3, 8, 9, 10)), 'hour'), true, 'day is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 8, 9, 10)), 'hour'), false, 'hour is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 0, 0, 0)), 'hour'), false, 'exact start of hour');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 59, 59, 999)), 'hour'), false, 'exact end of hour');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 0, 0, 0)), 'hour'), false, 'start of next hour');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 2, 59, 59, 999)), 'hour'), true, 'end of previous hour');
- assert.equal(m.isAfter(m, 'hour'), false, 'same moments are not after the same hour');
- assert.equal(+m, +mCopy, 'isAfter hour should not change moment');
- });
- test('is after minute', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'minute match');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work');
- assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 9, 10)), 'minute'), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 9, 10)), 'minute'), false, 'month is later');
- assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), true, 'month is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 9, 10)), 'minute'), false, 'day is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 3, 4, 9, 10)), 'minute'), true, 'day is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 9, 10)), 'minute'), false, 'hour is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 2, 4, 9, 10)), 'minute'), true, 'hour is earler');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 9, 10)), 'minute'), false, 'minute is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 9, 10)), 'minute'), true, 'minute is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 0, 0)), 'minute'), false, 'exact start of minute');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 59, 999)), 'minute'), false, 'exact end of minute');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 0, 0)), 'minute'), false, 'start of next minute');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 59, 999)), 'minute'), true, 'end of previous minute');
- assert.equal(m.isAfter(m, 'minute'), false, 'same moments are not after the same minute');
- assert.equal(+m, +mCopy, 'isAfter minute should not change moment');
- });
- test('is after second', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'second'), false, 'second match');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work');
- assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'second'), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'second'), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'second'), false, 'month is later');
- assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), true, 'month is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'second'), false, 'day is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'second'), true, 'day is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'second'), false, 'hour is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'second'), true, 'hour is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'second'), false, 'minute is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'second'), true, 'minute is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'second'), false, 'second is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'second'), true, 'second is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 0)), 'second'), false, 'exact start of second');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 999)), 'second'), false, 'exact end of second');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 0)), 'second'), false, 'start of next second');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 999)), 'second'), true, 'end of previous second');
- assert.equal(m.isAfter(m, 'second'), false, 'same moments are not after the same second');
- assert.equal(+m, +mCopy, 'isAfter second should not change moment');
- });
- test('is after millisecond', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'millisecond match');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work');
- assert.equal(m.isAfter(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is later');
- assert.equal(m.isAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is later');
- assert.equal(m.isAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), false, 'day is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), true, 'day is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), false, 'hour is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), true, 'hour is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), false, 'minute is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), true, 'minute is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), false, 'second is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), true, 'second is earlier');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), false, 'millisecond is later');
- assert.equal(m.isAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), true, 'millisecond is earlier');
- assert.equal(m.isAfter(m, 'millisecond'), false, 'same moments are not after the same millisecond');
- assert.equal(+m, +mCopy, 'isAfter millisecond should not change moment');
- });
- test('is after invalid', function (assert) {
- var m = moment(), invalid = moment.invalid();
- assert.equal(m.isAfter(invalid), false, 'valid moment is not after invalid moment');
- assert.equal(invalid.isAfter(m), false, 'invalid moment is not after valid moment');
- assert.equal(m.isAfter(invalid, 'year'), false, 'invalid moment year');
- assert.equal(m.isAfter(invalid, 'month'), false, 'invalid moment month');
- assert.equal(m.isAfter(invalid, 'day'), false, 'invalid moment day');
- assert.equal(m.isAfter(invalid, 'hour'), false, 'invalid moment hour');
- assert.equal(m.isAfter(invalid, 'minute'), false, 'invalid moment minute');
- assert.equal(m.isAfter(invalid, 'second'), false, 'invalid moment second');
- assert.equal(m.isAfter(invalid, 'milliseconds'), false, 'invalid moment milliseconds');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is before');
- test('is after without units', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), true, 'month is later');
- assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), false, 'month is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), true, 'day is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), false, 'day is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), true, 'hour is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), false, 'hour is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), true, 'minute is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), false, 'minute is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), true, 'second is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), false, 'second is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'millisecond match');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), true, 'millisecond is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), false, 'millisecond is earlier');
- assert.equal(m.isBefore(m), false, 'moments are not before themselves');
- assert.equal(+m, +mCopy, 'isBefore second should not change moment');
- });
- test('is before year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year match');
- assert.equal(m.isBefore(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work');
- assert.equal(m.isBefore(moment(new Date(2013, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), false, 'exact start of year');
- assert.equal(m.isBefore(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), false, 'exact end of year');
- assert.equal(m.isBefore(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), true, 'start of next year');
- assert.equal(m.isBefore(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of previous year');
- assert.equal(m.isBefore(moment(new Date(1980, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of year far before');
- assert.equal(m.isBefore(m, 'year'), false, 'same moments are not before the same year');
- assert.equal(+m, +mCopy, 'isBefore year should not change moment');
- });
- test('is before month', function (assert) {
- var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), false, 'month match');
- assert.equal(m.isBefore(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work');
- assert.equal(m.isBefore(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), true, 'month is later');
- assert.equal(m.isBefore(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), false, 'exact start of month');
- assert.equal(m.isBefore(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), false, 'exact end of month');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), true, 'start of next month');
- assert.equal(m.isBefore(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), false, 'end of previous month');
- assert.equal(m.isBefore(moment(new Date(2010, 12, 31, 23, 59, 59, 999)), 'month'), false, 'later month but earlier year');
- assert.equal(m.isBefore(m, 'month'), false, 'same moments are not before the same month');
- assert.equal(+m, +mCopy, 'isBefore month should not change moment');
- });
- test('is before day', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 7, 8, 9, 10)), 'day'), false, 'day match');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 7, 8, 9, 10)), 'day'), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 7, 8, 9, 10)), 'day'), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 7, 8, 9, 10)), 'day'), true, 'month is later');
- assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), false, 'month is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 7, 8, 9, 10)), 'day'), true, 'day is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 7, 8, 9, 10)), 'day'), false, 'day is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 0, 0, 0, 0)), 'day'), false, 'exact start of day');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 23, 59, 59, 999)), 'day'), false, 'exact end of day');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 0, 0, 0, 0)), 'day'), true, 'start of next day');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 23, 59, 59, 999)), 'day'), false, 'end of previous day');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 10, 0, 0, 0, 0)), 'day'), false, 'later day but earlier year');
- assert.equal(m.isBefore(m, 'day'), false, 'same moments are not before the same day');
- assert.equal(+m, +mCopy, 'isBefore day should not change moment');
- });
- test('is before hour', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour match');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 8, 9, 10)), 'hour'), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 8, 9, 10)), 'hour'), true, 'month is later');
- assert.equal(m.isBefore(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'month is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 8, 9, 10)), 'hour'), true, 'day is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 3, 8, 9, 10)), 'hour'), false, 'day is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 8, 9, 10)), 'hour'), true, 'hour is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 8, 9, 10)), 'hour'), false, 'hour is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 0, 0, 0)), 'hour'), false, 'exact start of hour');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 59, 59, 999)), 'hour'), false, 'exact end of hour');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 0, 0, 0)), 'hour'), true, 'start of next hour');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 2, 59, 59, 999)), 'hour'), false, 'end of previous hour');
- assert.equal(m.isBefore(m, 'hour'), false, 'same moments are not before the same hour');
- assert.equal(+m, +mCopy, 'isBefore hour should not change moment');
- });
- test('is before minute', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'minute match');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 9, 10)), 'minute'), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 9, 10)), 'minute'), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 9, 10)), 'minute'), true, 'month is later');
- assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), false, 'month is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 9, 10)), 'minute'), true, 'day is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 3, 4, 9, 10)), 'minute'), false, 'day is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 9, 10)), 'minute'), true, 'hour is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 2, 4, 9, 10)), 'minute'), false, 'hour is earler');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 9, 10)), 'minute'), true, 'minute is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 9, 10)), 'minute'), false, 'minute is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 0, 0)), 'minute'), false, 'exact start of minute');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 59, 999)), 'minute'), false, 'exact end of minute');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 0, 0)), 'minute'), true, 'start of next minute');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 59, 999)), 'minute'), false, 'end of previous minute');
- assert.equal(m.isBefore(m, 'minute'), false, 'same moments are not before the same minute');
- assert.equal(+m, +mCopy, 'isBefore minute should not change moment');
- });
- test('is before second', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'second'), false, 'second match');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'second'), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'second'), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'second'), true, 'month is later');
- assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), false, 'month is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'second'), true, 'day is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'second'), false, 'day is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'second'), true, 'hour is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'second'), false, 'hour is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'second'), true, 'minute is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'second'), false, 'minute is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'second'), true, 'second is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'second'), false, 'second is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 0)), 'second'), false, 'exact start of second');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 999)), 'second'), false, 'exact end of second');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 0)), 'second'), true, 'start of next second');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 999)), 'second'), false, 'end of previous second');
- assert.equal(m.isBefore(m, 'second'), false, 'same moments are not before the same second');
- assert.equal(+m, +mCopy, 'isBefore second should not change moment');
- });
- test('is before millisecond', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'millisecond match');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'milliseconds'), false, 'plural should work');
- assert.equal(m.isBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is later');
- assert.equal(m.isBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is later');
- assert.equal(m.isBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), true, 'day is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), false, 'day is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), true, 'hour is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), false, 'hour is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), true, 'minute is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), false, 'minute is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), true, 'second is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), false, 'second is earlier');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), true, 'millisecond is later');
- assert.equal(m.isBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), false, 'millisecond is earlier');
- assert.equal(m.isBefore(m, 'millisecond'), false, 'same moments are not before the same millisecond');
- assert.equal(+m, +mCopy, 'isBefore millisecond should not change moment');
- });
- test('is before invalid', function (assert) {
- var m = moment(), invalid = moment.invalid();
- assert.equal(m.isBefore(invalid), false, 'valid moment is not before invalid moment');
- assert.equal(invalid.isBefore(m), false, 'invalid moment is not before valid moment');
- assert.equal(m.isBefore(invalid, 'year'), false, 'invalid moment year');
- assert.equal(m.isBefore(invalid, 'month'), false, 'invalid moment month');
- assert.equal(m.isBefore(invalid, 'day'), false, 'invalid moment day');
- assert.equal(m.isBefore(invalid, 'hour'), false, 'invalid moment hour');
- assert.equal(m.isBefore(invalid, 'minute'), false, 'invalid moment minute');
- assert.equal(m.isBefore(invalid, 'second'), false, 'invalid moment second');
- assert.equal(m.isBefore(invalid, 'milliseconds'), false, 'invalid moment milliseconds');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is between');
- test('is between without units', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2009, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'year is later');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2013, 3, 2, 3, 4, 5, 10))), false, 'year is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2010, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2012, 3, 2, 3, 4, 5, 10))), true, 'year is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'month is later');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 5, 2, 3, 4, 5, 10))), false, 'month is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 2, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 4, 2, 3, 4, 5, 10))), true, 'month is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 1, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'day is later');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 4, 3, 4, 5, 10))), false, 'day is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 1, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 3, 3, 4, 5, 10))), true, 'day is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 1, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'hour is later');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 5, 4, 5, 10))), false, 'hour is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 2, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 4, 4, 5, 10))), true, 'hour is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 6, 5, 10))), false, 'minute is later');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 2, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'minute is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 3, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 5, 5, 10))), true, 'minute is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 7, 10))), false, 'second is later');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 3, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'second is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 4, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 6, 10))), true, 'second is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 12))), false, 'millisecond is later');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 8)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 10))), false, 'millisecond is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 3, 2, 3, 4, 5, 9)),
- moment(new Date(2011, 3, 2, 3, 4, 5, 11))), true, 'millisecond is between');
- assert.equal(m.isBetween(m, m), false, 'moments are not between themselves');
- assert.equal(+m, +mCopy, 'isBetween second should not change moment');
- });
- test('is between year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2011, 5, 6, 7, 8, 9, 10)),
- moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year match');
- assert.equal(m.isBetween(
- moment(new Date(2010, 5, 6, 7, 8, 9, 10)),
- moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work');
- assert.equal(m.isBetween(
- moment(new Date(2010, 5, 6, 7, 8, 9, 10)),
- moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 5, 6, 7, 8, 9, 10)),
- moment(new Date(2013, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2010, 5, 6, 7, 8, 9, 10)),
- moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is later');
- assert.equal(m.isBetween(m, 'year'), false, 'same moments are not between the same year');
- assert.equal(+m, +mCopy, 'isBetween year should not change moment');
- });
- test('is between month', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 6, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month match');
- assert.equal(m.isBetween(
- moment(new Date(2011, 0, 6, 7, 8, 9, 10)),
- moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work');
- assert.equal(m.isBetween(
- moment(new Date(2011, 0, 31, 23, 59, 59, 999)),
- moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'month is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 6, 7, 8, 9, 10)),
- moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), false, 'month is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 11, 6, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month is later');
- assert.equal(m.isBetween(m, 'month'), false, 'same moments are not between the same month');
- assert.equal(+m, +mCopy, 'isBetween month should not change moment');
- });
- test('is between day', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), false, 'day match');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 1, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'days'), true, 'plural should work');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 1, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), true, 'day is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 4, 7, 8, 9, 10)), 'day'), false, 'day is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 1, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), false, 'day is later');
- assert.equal(m.isBetween(m, 'day'), false, 'same moments are not between the same day');
- assert.equal(+m, +mCopy, 'isBetween day should not change moment');
- });
- test('is between hour', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 5, 9, 10)),
- moment(new Date(2011, 1, 2, 3, 9, 9, 10)), 'hour'), false, 'hour match');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 1, 59, 59, 999)),
- moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hours'), true, 'plural should work');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 2, 59, 59, 999)),
- moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), true, 'hour is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'hour'), false, 'hour is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)),
- moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'hour'), false, 'hour is later');
- assert.equal(m.isBetween(m, 'hour'), false, 'same moments are not between the same hour');
- assert.equal(+m, +mCopy, 'isBetween hour should not change moment');
- });
- test('is between minute', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 9, 10)),
- moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'minute match');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 3, 9, 10)),
- moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minutes'), true, 'plural should work');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 3, 59, 999)),
- moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), true, 'minute is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 5, 0, 0)),
- moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'minute'), false, 'minute is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 2, 9, 10)),
- moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), false, 'minute is later');
- assert.equal(m.isBetween(m, 'minute'), false, 'same moments are not between the same minute');
- assert.equal(+m, +mCopy, 'isBetween minute should not change moment');
- });
- test('is between second', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 5, 10)),
- moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), false, 'second match');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 4, 10)),
- moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'seconds'), true, 'plural should work');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 4, 999)),
- moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), true, 'second is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 6, 0)),
- moment(new Date(2011, 1, 2, 3, 4, 7, 10)), 'second'), false, 'second is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 3, 10)),
- moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), false, 'second is later');
- assert.equal(m.isBetween(m, 'second'), false, 'same moments are not between the same second');
- assert.equal(+m, +mCopy, 'isBetween second should not change moment');
- });
- test('is between millisecond', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 5, 6)),
- moment(new Date(2011, 1, 2, 3, 4, 5, 6)), 'millisecond'), false, 'millisecond match');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 5, 5)),
- moment(new Date(2011, 1, 2, 3, 4, 5, 7)), 'milliseconds'), true, 'plural should work');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 5, 5)),
- moment(new Date(2011, 1, 2, 3, 4, 5, 7)), 'millisecond'), true, 'millisecond is between');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 5, 7)),
- moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'millisecond'), false, 'millisecond is earlier');
- assert.equal(m.isBetween(
- moment(new Date(2011, 1, 2, 3, 4, 5, 4)),
- moment(new Date(2011, 1, 2, 3, 4, 5, 6)), 'millisecond'), false, 'millisecond is later');
- assert.equal(m.isBetween(m, 'millisecond'), false, 'same moments are not between the same millisecond');
- assert.equal(+m, +mCopy, 'isBetween millisecond should not change moment');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is date');
- test('isDate recognizes Date objects', function (assert) {
- assert.ok(moment.isDate(new Date()), 'no args (now)');
- assert.ok(moment.isDate(new Date([2014, 2, 15])), 'array args');
- assert.ok(moment.isDate(new Date('2014-03-15')), 'string args');
- assert.ok(moment.isDate(new Date('does NOT look like a date')), 'invalid date');
- });
- test('isDate rejects non-Date objects', function (assert) {
- assert.ok(!moment.isDate(), 'nothing');
- assert.ok(!moment.isDate(undefined), 'undefined');
- assert.ok(!moment.isDate(null), 'string args');
- assert.ok(!moment.isDate(42), 'number');
- assert.ok(!moment.isDate('2014-03-15'), 'string');
- assert.ok(!moment.isDate([2014, 2, 15]), 'array');
- assert.ok(!moment.isDate({year: 2014, month: 2, day: 15}), 'object');
- assert.ok(!moment.isDate({toString: function () {
- return '[object Date]';
- }}), 'lying object');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is moment');
- test('is moment object', function (assert) {
- var MyObj = function () {},
- extend = function (a, b) {
- var i;
- for (i in b) {
- a[i] = b[i];
- }
- return a;
- };
- MyObj.prototype.toDate = function () {
- return new Date();
- };
- assert.ok(moment.isMoment(moment()), 'simple moment object');
- assert.ok(moment.isMoment(moment(null)), 'invalid moment object');
- assert.ok(moment.isMoment(extend({}, moment())), 'externally cloned moments are moments');
- assert.ok(moment.isMoment(extend({}, moment.utc())), 'externally cloned utc moments are moments');
- assert.ok(!moment.isMoment(new MyObj()), 'myObj is not moment object');
- assert.ok(!moment.isMoment(moment), 'moment function is not moment object');
- assert.ok(!moment.isMoment(new Date()), 'date object is not moment object');
- assert.ok(!moment.isMoment(Object), 'Object is not moment object');
- assert.ok(!moment.isMoment('foo'), 'string is not moment object');
- assert.ok(!moment.isMoment(1), 'number is not moment object');
- assert.ok(!moment.isMoment(NaN), 'NaN is not moment object');
- assert.ok(!moment.isMoment(null), 'null is not moment object');
- assert.ok(!moment.isMoment(undefined), 'undefined is not moment object');
- });
- test('is moment with hacked hasOwnProperty', function (assert) {
- var obj = {};
- // HACK to suppress jshint warning about bad property name
- obj['hasOwnMoney'.replace('Money', 'Property')] = function () {
- return true;
- };
- assert.ok(!moment.isMoment(obj), 'isMoment works even if passed object has a wrong hasOwnProperty implementation (ie8)');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is same');
- test('is same without units', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), false, 'year is later');
- assert.equal(m.isSame(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), false, 'year is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), false, 'month is later');
- assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), false, 'month is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), false, 'day is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), false, 'day is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), false, 'hour is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), false, 'hour is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), false, 'minute is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), false, 'minute is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), false, 'second is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), false, 'second is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), true, 'millisecond match');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), false, 'millisecond is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), false, 'millisecond is earlier');
- assert.equal(m.isSame(m), true, 'moments are the same as themselves');
- assert.equal(+m, +mCopy, 'isSame second should not change moment');
- });
- test('is same year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year match');
- assert.equal(m.isSame(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work');
- assert.equal(m.isSame(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), true, 'exact start of year');
- assert.equal(m.isSame(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), true, 'exact end of year');
- assert.equal(m.isSame(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), false, 'start of next year');
- assert.equal(m.isSame(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of previous year');
- assert.equal(m.isSame(m, 'year'), true, 'same moments are in the same year');
- assert.equal(+m, +mCopy, 'isSame year should not change moment');
- });
- test('is same month', function (assert) {
- var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), true, 'month match');
- assert.equal(m.isSame(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work');
- assert.equal(m.isSame(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), false, 'month mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'exact start of month');
- assert.equal(m.isSame(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), true, 'exact end of month');
- assert.equal(m.isSame(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), false, 'start of next month');
- assert.equal(m.isSame(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), false, 'end of previous month');
- assert.equal(m.isSame(m, 'month'), true, 'same moments are in the same month');
- assert.equal(+m, +mCopy, 'isSame month should not change moment');
- });
- test('is same day', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), true, 'day match');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work');
- assert.equal(m.isSame(moment(new Date(2012, 1, 2, 7, 8, 9, 10)), 'day'), false, 'year mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), false, 'month mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), false, 'day mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 0, 0, 0, 0)), 'day'), true, 'exact start of day');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 23, 59, 59, 999)), 'day'), true, 'exact end of day');
- assert.equal(m.isSame(moment(new Date(2011, 1, 3, 0, 0, 0, 0)), 'day'), false, 'start of next day');
- assert.equal(m.isSame(moment(new Date(2011, 1, 1, 23, 59, 59, 999)), 'day'), false, 'end of previous day');
- assert.equal(m.isSame(m, 'day'), true, 'same moments are in the same day');
- assert.equal(+m, +mCopy, 'isSame day should not change moment');
- });
- test('is same hour', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'hour match');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work');
- assert.equal(m.isSame(moment(new Date(2012, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'year mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 8, 9, 10)), 'hour'), false, 'month mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 3, 3, 8, 9, 10)), 'hour'), false, 'day mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 8, 9, 10)), 'hour'), false, 'hour mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 0, 0, 0)), 'hour'), true, 'exact start of hour');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 59, 59, 999)), 'hour'), true, 'exact end of hour');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), false, 'start of next hour');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 2, 59, 59, 999)), 'hour'), false, 'end of previous hour');
- assert.equal(m.isSame(m, 'hour'), true, 'same moments are in the same hour');
- assert.equal(+m, +mCopy, 'isSame hour should not change moment');
- });
- test('is same minute', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'minute match');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work');
- assert.equal(m.isSame(moment(new Date(2012, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'year mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), false, 'month mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 3, 3, 4, 9, 10)), 'minute'), false, 'day mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 4, 9, 10)), 'minute'), false, 'hour mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minute'), false, 'minute mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 0, 0)), 'minute'), true, 'exact start of minute');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 59, 999)), 'minute'), true, 'exact end of minute');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), false, 'start of next minute');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), false, 'end of previous minute');
- assert.equal(m.isSame(m, 'minute'), true, 'same moments are in the same minute');
- assert.equal(+m, +mCopy, 'isSame minute should not change moment');
- });
- test('is same second', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), true, 'second match');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work');
- assert.equal(m.isSame(moment(new Date(2012, 1, 2, 3, 4, 5, 10)), 'second'), false, 'year mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), false, 'month mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 3, 3, 4, 5, 10)), 'second'), false, 'day mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 4, 4, 5, 10)), 'second'), false, 'hour mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 5, 5, 10)), 'second'), false, 'minute mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'second'), false, 'second mismatch');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 0)), 'second'), true, 'exact start of second');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 5, 999)), 'second'), true, 'exact end of second');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), false, 'start of next second');
- assert.equal(m.isSame(moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), false, 'end of previous second');
- assert.equal(m.isSame(m, 'second'), true, 'same moments are in the same second');
- assert.equal(+m, +mCopy, 'isSame second should not change moment');
- });
- test('is same millisecond', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'millisecond match');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work');
- assert.equal(m.isSame(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is later');
- assert.equal(m.isSame(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is later');
- assert.equal(m.isSame(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), false, 'day is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), false, 'day is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), false, 'hour is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), false, 'hour is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), false, 'minute is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), false, 'minute is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), false, 'second is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), false, 'second is earlier');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), false, 'millisecond is later');
- assert.equal(m.isSame(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), false, 'millisecond is earlier');
- assert.equal(m.isSame(m, 'millisecond'), true, 'same moments are in the same millisecond');
- assert.equal(+m, +mCopy, 'isSame millisecond should not change moment');
- });
- test('is same with utc offset moments', function (assert) {
- assert.ok(moment.parseZone('2013-02-01T-05:00').isSame(moment('2013-02-01'), 'year'), 'zoned vs local moment');
- assert.ok(moment('2013-02-01').isSame(moment('2013-02-01').utcOffset('-05:00'), 'year'), 'local vs zoned moment');
- assert.ok(moment.parseZone('2013-02-01T-05:00').isSame(moment.parseZone('2013-02-01T-06:30'), 'year'),
- 'zoned vs (differently) zoned moment');
- });
- test('is same with invalid moments', function (assert) {
- assert.equal(moment.invalid().isSame(moment.invalid()), false, 'invalid moments are not considered equal');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is same or after');
- test('is same or after without units', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), false, 'month is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), true, 'month is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), false, 'day is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), true, 'day is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), false, 'hour is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), true, 'hour is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), false, 'minute is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), true, 'minute is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), false, 'second is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), true, 'second is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), true, 'millisecond match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), false, 'millisecond is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), true, 'millisecond is earlier');
- assert.equal(m.isSameOrAfter(m), true, 'moments are the same as themselves');
- assert.equal(+m, +mCopy, 'isSameOrAfter second should not change moment');
- });
- test('is same or after year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), true, 'exact start of year');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), true, 'exact end of year');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), false, 'start of next year');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), true, 'end of previous year');
- assert.equal(m.isSameOrAfter(m, 'year'), true, 'same moments are in the same year');
- assert.equal(+m, +mCopy, 'isSameOrAfter year should not change moment');
- });
- test('is same or after month', function (assert) {
- var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), true, 'month match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), false, 'month is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), true, 'month is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'exact start of month');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), true, 'exact end of month');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), false, 'start of next month');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), true, 'end of previous month');
- assert.equal(m.isSameOrAfter(m, 'month'), true, 'same moments are in the same month');
- assert.equal(+m, +mCopy, 'isSameOrAfter month should not change moment');
- });
- test('is same or after day', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), true, 'day match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 7, 8, 9, 10)), 'day'), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 7, 8, 9, 10)), 'day'), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), false, 'month is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 7, 8, 9, 10)), 'day'), true, 'month is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), false, 'day is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 7, 8, 9, 10)), 'day'), true, 'day is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 0, 0, 0, 0)), 'day'), true, 'exact start of day');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 23, 59, 59, 999)), 'day'), true, 'exact end of day');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 0, 0, 0, 0)), 'day'), false, 'start of next day');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 23, 59, 59, 999)), 'day'), true, 'end of previous day');
- assert.equal(m.isSameOrAfter(m, 'day'), true, 'same moments are in the same day');
- assert.equal(+m, +mCopy, 'isSameOrAfter day should not change moment');
- });
- test('is same or after hour', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'hour match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 8, 9, 10)), 'hour'), false, 'month is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 3, 8, 9, 10)), 'hour'), true, 'month is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 3, 8, 9, 10)), 'hour'), false, 'day is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 3, 8, 9, 10)), 'hour'), true, 'day is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 8, 9, 10)), 'hour'), false, 'hour is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 8, 9, 10)), 'hour'), true, 'hour is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 0, 0, 0)), 'hour'), true, 'exact start of hour');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 59, 59, 999)), 'hour'), true, 'exact end of hour');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), false, 'start of next hour');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 59, 59, 999)), 'hour'), true, 'end of previous hour');
- assert.equal(m.isSameOrAfter(m, 'hour'), true, 'same moments are in the same hour');
- assert.equal(+m, +mCopy, 'isSameOrAfter hour should not change moment');
- });
- test('is same or after minute', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'minute match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), false, 'month is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 3, 4, 9, 10)), 'minute'), true, 'month is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 3, 4, 9, 10)), 'minute'), false, 'day is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 3, 4, 9, 10)), 'minute'), true, 'day is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 4, 9, 10)), 'minute'), false, 'hour is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 4, 9, 10)), 'minute'), true, 'hour is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minute'), false, 'minute is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 3, 9, 10)), 'minute'), true, 'minute is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 0, 0)), 'minute'), true, 'exact start of minute');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 59, 999)), 'minute'), true, 'exact end of minute');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), false, 'start of next minute');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), true, 'end of previous minute');
- assert.equal(m.isSameOrAfter(m, 'minute'), true, 'same moments are in the same minute');
- assert.equal(+m, +mCopy, 'isSameOrAfter minute should not change moment');
- });
- test('is same or after second', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), true, 'second match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 1, 2, 3, 4, 5, 10)), 'second'), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 1, 2, 3, 4, 5, 10)), 'second'), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), false, 'month is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 12, 2, 3, 4, 5, 10)), 'second'), true, 'month is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 3, 3, 4, 5, 10)), 'second'), false, 'day is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 1, 3, 4, 5, 10)), 'second'), true, 'day is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 4, 4, 5, 10)), 'second'), false, 'hour is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 2, 4, 5, 10)), 'second'), true, 'hour is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 5, 5, 10)), 'second'), false, 'minute is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 3, 5, 10)), 'second'), true, 'minute is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'second'), false, 'second is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 4, 10)), 'second'), true, 'second is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 0)), 'second'), true, 'exact start of second');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 5, 999)), 'second'), true, 'exact end of second');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), false, 'start of next second');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), true, 'end of previous second');
- assert.equal(m.isSameOrAfter(m, 'second'), true, 'same moments are in the same second');
- assert.equal(+m, +mCopy, 'isSameOrAfter second should not change moment');
- });
- test('is same or after millisecond', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'millisecond match');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work');
- assert.equal(m.isSameOrAfter(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), false, 'day is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), true, 'day is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), false, 'hour is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), true, 'hour is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), false, 'minute is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), true, 'minute is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), false, 'second is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), true, 'second is earlier');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), false, 'millisecond is later');
- assert.equal(m.isSameOrAfter(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), true, 'millisecond is earlier');
- assert.equal(m.isSameOrAfter(m, 'millisecond'), true, 'same moments are in the same millisecond');
- assert.equal(+m, +mCopy, 'isSameOrAfter millisecond should not change moment');
- });
- test('is same or after with utc offset moments', function (assert) {
- assert.ok(moment.parseZone('2013-02-01T-05:00').isSameOrAfter(moment('2013-02-01'), 'year'), 'zoned vs local moment');
- assert.ok(moment('2013-02-01').isSameOrAfter(moment('2013-02-01').utcOffset('-05:00'), 'year'), 'local vs zoned moment');
- assert.ok(moment.parseZone('2013-02-01T-05:00').isSameOrAfter(moment.parseZone('2013-02-01T-06:30'), 'year'),
- 'zoned vs (differently) zoned moment');
- });
- test('is same or after with invalid moments', function (assert) {
- var m = moment(), invalid = moment.invalid();
- assert.equal(invalid.isSameOrAfter(invalid), false, 'invalid moments are not considered equal');
- assert.equal(m.isSameOrAfter(invalid), false, 'valid moment is not after invalid moment');
- assert.equal(invalid.isSameOrAfter(m), false, 'invalid moment is not after valid moment');
- assert.equal(m.isSameOrAfter(invalid, 'year'), false, 'invalid moment year');
- assert.equal(m.isSameOrAfter(invalid, 'month'), false, 'invalid moment month');
- assert.equal(m.isSameOrAfter(invalid, 'day'), false, 'invalid moment day');
- assert.equal(m.isSameOrAfter(invalid, 'hour'), false, 'invalid moment hour');
- assert.equal(m.isSameOrAfter(invalid, 'minute'), false, 'invalid moment minute');
- assert.equal(m.isSameOrAfter(invalid, 'second'), false, 'invalid moment second');
- assert.equal(m.isSameOrAfter(invalid, 'milliseconds'), false, 'invalid moment milliseconds');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is same or before');
- test('is same or before without units', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 3, 2, 3, 5, 5, 10))), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 3, 2, 3, 3, 5, 10))), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10))), true, 'month is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10))), false, 'month is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10))), true, 'day is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 3, 4, 5, 10))), false, 'day is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10))), true, 'hour is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 2, 4, 5, 10))), false, 'hour is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10))), true, 'minute is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10))), false, 'minute is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10))), true, 'second is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 11))), false, 'second is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10))), true, 'millisecond match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 11))), true, 'millisecond is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 9))), false, 'millisecond is earlier');
- assert.equal(m.isSameOrBefore(m), true, 'moments are the same as themselves');
- assert.equal(+m, +mCopy, 'isSameOrBefore second should not change moment');
- });
- test('is same or before year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'years'), true, 'plural should work');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 5, 6, 7, 8, 9, 10)), 'year'), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 5, 6, 7, 8, 9, 10)), 'year'), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 0, 1, 0, 0, 0, 0)), 'year'), true, 'exact start of year');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 11, 31, 23, 59, 59, 999)), 'year'), true, 'exact end of year');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 0, 1, 0, 0, 0, 0)), 'year'), true, 'start of next year');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 11, 31, 23, 59, 59, 999)), 'year'), false, 'end of previous year');
- assert.equal(m.isSameOrBefore(m, 'year'), true, 'same moments are in the same year');
- assert.equal(+m, +mCopy, 'isSameOrBefore year should not change moment');
- });
- test('is same or before month', function (assert) {
- var m = moment(new Date(2011, 2, 3, 4, 5, 6, 7)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'month'), true, 'month match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 6, 7, 8, 9, 10)), 'months'), true, 'plural should work');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 2, 6, 7, 8, 9, 10)), 'month'), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 2, 6, 7, 8, 9, 10)), 'month'), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 5, 6, 7, 8, 9, 10)), 'month'), true, 'month is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 6, 7, 8, 9, 10)), 'month'), false, 'month is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 1, 0, 0, 0, 0)), 'month'), true, 'exact start of month');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 31, 23, 59, 59, 999)), 'month'), true, 'exact end of month');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 0, 0, 0, 0)), 'month'), true, 'start of next month');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 27, 23, 59, 59, 999)), 'month'), false, 'end of previous month');
- assert.equal(m.isSameOrBefore(m, 'month'), true, 'same moments are in the same month');
- assert.equal(+m, +mCopy, 'isSameOrBefore month should not change moment');
- });
- test('is same or before day', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'day'), true, 'day match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 7, 8, 9, 10)), 'days'), true, 'plural should work');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 7, 8, 9, 10)), 'day'), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 7, 8, 9, 10)), 'day'), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 7, 8, 9, 10)), 'day'), true, 'month is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 7, 8, 9, 10)), 'day'), false, 'month is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 7, 8, 9, 10)), 'day'), true, 'day is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 7, 8, 9, 10)), 'day'), false, 'day is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 0, 0, 0, 0)), 'day'), true, 'exact start of day');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 23, 59, 59, 999)), 'day'), true, 'exact end of day');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 0, 0, 0, 0)), 'day'), true, 'start of next day');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 23, 59, 59, 999)), 'day'), false, 'end of previous day');
- assert.equal(m.isSameOrBefore(m, 'day'), true, 'same moments are in the same day');
- assert.equal(+m, +mCopy, 'isSameOrBefore day should not change moment');
- });
- test('is same or before hour', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'hour match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 8, 9, 10)), 'hours'), true, 'plural should work');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 3, 8, 9, 10)), 'hour'), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 3, 8, 9, 10)), 'hour'), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 8, 9, 10)), 'hour'), true, 'month is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 3, 8, 9, 10)), 'hour'), false, 'month is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 3, 8, 9, 10)), 'hour'), true, 'day is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 3, 8, 9, 10)), 'hour'), false, 'day is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 8, 9, 10)), 'hour'), true, 'hour is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 8, 9, 10)), 'hour'), false, 'hour is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 0, 0, 0)), 'hour'), true, 'exact start of hour');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 59, 59, 999)), 'hour'), true, 'exact end of hour');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 0, 0, 0)), 'hour'), true, 'start of next hour');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 59, 59, 999)), 'hour'), false, 'end of previous hour');
- assert.equal(m.isSameOrBefore(m, 'hour'), true, 'same moments are in the same hour');
- assert.equal(+m, +mCopy, 'isSameOrBefore hour should not change moment');
- });
- test('is same or before minute', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'minute match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 9, 10)), 'minutes'), true, 'plural should work');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 3, 4, 9, 10)), 'minute'), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 3, 4, 9, 10)), 'minute'), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 9, 10)), 'minute'), true, 'month is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 3, 4, 9, 10)), 'minute'), false, 'month is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 3, 4, 9, 10)), 'minute'), true, 'day is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 3, 4, 9, 10)), 'minute'), false, 'day is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 4, 9, 10)), 'minute'), true, 'hour is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 4, 9, 10)), 'minute'), false, 'hour is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 5, 9, 10)), 'minute'), true, 'minute is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 3, 9, 10)), 'minute'), false, 'minute is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 0, 0)), 'minute'), true, 'exact start of minute');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 59, 999)), 'minute'), true, 'exact end of minute');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 5, 0, 0)), 'minute'), true, 'start of next minute');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 3, 59, 999)), 'minute'), false, 'end of previous minute');
- assert.equal(m.isSameOrBefore(m, 'minute'), true, 'same moments are in the same minute');
- assert.equal(+m, +mCopy, 'isSameOrBefore minute should not change moment');
- });
- test('is same or before second', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'second'), true, 'second match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 10)), 'seconds'), true, 'plural should work');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 1, 2, 3, 4, 5, 10)), 'second'), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 1, 2, 3, 4, 5, 10)), 'second'), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'second'), true, 'month is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 12, 2, 3, 4, 5, 10)), 'second'), false, 'month is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 3, 3, 4, 5, 10)), 'second'), true, 'day is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 1, 3, 4, 5, 10)), 'second'), false, 'day is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 4, 4, 5, 10)), 'second'), true, 'hour is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 2, 4, 5, 10)), 'second'), false, 'hour is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 5, 5, 10)), 'second'), true, 'minute is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 3, 5, 10)), 'second'), false, 'minute is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 6, 10)), 'second'), true, 'second is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 4, 10)), 'second'), false, 'second is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 0)), 'second'), true, 'exact start of second');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 5, 999)), 'second'), true, 'exact end of second');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 6, 0)), 'second'), true, 'start of next second');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 1, 2, 3, 4, 4, 999)), 'second'), false, 'end of previous second');
- assert.equal(m.isSameOrBefore(m, 'second'), true, 'same moments are in the same second');
- assert.equal(+m, +mCopy, 'isSameOrBefore second should not change moment');
- });
- test('is same or before millisecond', function (assert) {
- var m = moment(new Date(2011, 3, 2, 3, 4, 5, 10)), mCopy = moment(m);
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'millisecond match');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 5, 10)), 'milliseconds'), true, 'plural should work');
- assert.equal(m.isSameOrBefore(moment(new Date(2012, 3, 2, 3, 4, 5, 10)), 'millisecond'), true, 'year is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2010, 3, 2, 3, 4, 5, 10)), 'millisecond'), false, 'year is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 4, 2, 3, 4, 5, 10)), 'millisecond'), true, 'month is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 2, 2, 3, 4, 5, 10)), 'millisecond'), false, 'month is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 3, 3, 4, 5, 10)), 'millisecond'), true, 'day is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 1, 4, 5, 10)), 'millisecond'), false, 'day is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 4, 4, 5, 10)), 'millisecond'), true, 'hour is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 1, 4, 1, 5, 10)), 'millisecond'), false, 'hour is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 5, 5, 10)), 'millisecond'), true, 'minute is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 3, 5, 10)), 'millisecond'), false, 'minute is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 10)), 'millisecond'), true, 'second is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 5)), 'millisecond'), false, 'second is earlier');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 6, 11)), 'millisecond'), true, 'millisecond is later');
- assert.equal(m.isSameOrBefore(moment(new Date(2011, 3, 2, 3, 4, 4, 9)), 'millisecond'), false, 'millisecond is earlier');
- assert.equal(m.isSameOrBefore(m, 'millisecond'), true, 'same moments are in the same millisecond');
- assert.equal(+m, +mCopy, 'isSameOrBefore millisecond should not change moment');
- });
- test('is same with utc offset moments', function (assert) {
- assert.ok(moment.parseZone('2013-02-01T-05:00').isSameOrBefore(moment('2013-02-01'), 'year'), 'zoned vs local moment');
- assert.ok(moment('2013-02-01').isSameOrBefore(moment('2013-02-01').utcOffset('-05:00'), 'year'), 'local vs zoned moment');
- assert.ok(moment.parseZone('2013-02-01T-05:00').isSameOrBefore(moment.parseZone('2013-02-01T-06:30'), 'year'),
- 'zoned vs (differently) zoned moment');
- });
- test('is same with invalid moments', function (assert) {
- var m = moment(), invalid = moment.invalid();
- assert.equal(invalid.isSameOrBefore(invalid), false, 'invalid moments are not considered equal');
- assert.equal(m.isSameOrBefore(invalid), false, 'valid moment is not before invalid moment');
- assert.equal(invalid.isSameOrBefore(m), false, 'invalid moment is not before valid moment');
- assert.equal(m.isSameOrBefore(invalid, 'year'), false, 'invalid moment year');
- assert.equal(m.isSameOrBefore(invalid, 'month'), false, 'invalid moment month');
- assert.equal(m.isSameOrBefore(invalid, 'day'), false, 'invalid moment day');
- assert.equal(m.isSameOrBefore(invalid, 'hour'), false, 'invalid moment hour');
- assert.equal(m.isSameOrBefore(invalid, 'minute'), false, 'invalid moment minute');
- assert.equal(m.isSameOrBefore(invalid, 'second'), false, 'invalid moment second');
- assert.equal(m.isSameOrBefore(invalid, 'milliseconds'), false, 'invalid moment milliseconds');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('is valid');
- test('array bad month', function (assert) {
- assert.equal(moment([2010, -1]).isValid(), false, 'month -1 invalid');
- assert.equal(moment([2100, 12]).isValid(), false, 'month 12 invalid');
- });
- test('array good month', function (assert) {
- for (var i = 0; i < 12; i++) {
- assert.equal(moment([2010, i]).isValid(), true, 'month ' + i);
- assert.equal(moment.utc([2010, i]).isValid(), true, 'month ' + i);
- }
- });
- test('array bad date', function (assert) {
- var tests = [
- moment([2010, 0, 0]),
- moment([2100, 0, 32]),
- moment.utc([2010, 0, 0]),
- moment.utc([2100, 0, 32])
- ],
- i, m;
- for (i in tests) {
- m = tests[i];
- assert.equal(m.isValid(), false);
- }
- });
- test('h/hh with hour > 12', function (assert) {
- assert.ok(moment('06/20/2014 11:51 PM', 'MM/DD/YYYY hh:mm A', true).isValid(), '11 for hh');
- assert.ok(moment('06/20/2014 11:51 AM', 'MM/DD/YYYY hh:mm A', true).isValid(), '11 for hh');
- assert.ok(moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A').isValid(), 'non-strict validity 23 for hh');
- assert.ok(moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A').parsingFlags().bigHour, 'non-strict bigHour 23 for hh');
- assert.ok(!moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A', true).isValid(), 'validity 23 for hh');
- assert.ok(moment('06/20/2014 23:51 PM', 'MM/DD/YYYY hh:mm A', true).parsingFlags().bigHour, 'bigHour 23 for hh');
- });
- test('array bad date leap year', function (assert) {
- assert.equal(moment([2010, 1, 29]).isValid(), false, '2010 feb 29');
- assert.equal(moment([2100, 1, 29]).isValid(), false, '2100 feb 29');
- assert.equal(moment([2008, 1, 30]).isValid(), false, '2008 feb 30');
- assert.equal(moment([2000, 1, 30]).isValid(), false, '2000 feb 30');
- assert.equal(moment.utc([2010, 1, 29]).isValid(), false, 'utc 2010 feb 29');
- assert.equal(moment.utc([2100, 1, 29]).isValid(), false, 'utc 2100 feb 29');
- assert.equal(moment.utc([2008, 1, 30]).isValid(), false, 'utc 2008 feb 30');
- assert.equal(moment.utc([2000, 1, 30]).isValid(), false, 'utc 2000 feb 30');
- });
- test('string + formats bad date', function (assert) {
- assert.equal(moment('2020-00-00', []).isValid(), false, 'invalid on empty array');
- assert.equal(moment('2020-00-00', ['YYYY-MM-DD', 'DD-MM-YYYY']).isValid(), false, 'invalid on all in array');
- assert.equal(moment('2020-00-00', ['DD-MM-YYYY', 'YYYY-MM-DD']).isValid(), false, 'invalid on all in array');
- assert.equal(moment('2020-01-01', ['YYYY-MM-DD', 'DD-MM-YYYY']).isValid(), true, 'valid on first');
- assert.equal(moment('2020-01-01', ['DD-MM-YYYY', 'YYYY-MM-DD']).isValid(), true, 'valid on last');
- assert.equal(moment('2020-01-01', ['YYYY-MM-DD', 'YYYY-DD-MM']).isValid(), true, 'valid on both');
- assert.equal(moment('2020-13-01', ['YYYY-MM-DD', 'YYYY-DD-MM']).isValid(), true, 'valid on last');
- assert.equal(moment('12-13-2012', ['DD-MM-YYYY', 'YYYY-MM-DD']).isValid(), false, 'month rollover');
- assert.equal(moment('12-13-2012', ['DD-MM-YYYY', 'DD-MM-YYYY']).isValid(), false, 'month rollover');
- assert.equal(moment('38-12-2012', ['DD-MM-YYYY']).isValid(), false, 'day rollover');
- });
- test('string nonsensical with format', function (assert) {
- assert.equal(moment('fail', 'MM-DD-YYYY').isValid(), false, 'string \'fail\' with format \'MM-DD-YYYY\'');
- assert.equal(moment('xx-xx-2001', 'DD-MM-YYY').isValid(), true, 'string \'xx-xx-2001\' with format \'MM-DD-YYYY\'');
- });
- test('string with bad month name', function (assert) {
- assert.equal(moment('01-Nam-2012', 'DD-MMM-YYYY').isValid(), false, '\'Nam\' is an invalid month');
- assert.equal(moment('01-Aug-2012', 'DD-MMM-YYYY').isValid(), true, '\'Aug\' is a valid month');
- });
- test('string with spaceless format', function (assert) {
- assert.equal(moment('10Sep2001', 'DDMMMYYYY').isValid(), true, 'Parsing 10Sep2001 should result in a valid date');
- });
- test('invalid string iso 8601', function (assert) {
- var tests = [
- '2010-00-00',
- '2010-01-00',
- '2010-01-40',
- '2010-01-01T24:01', // 24:00:00 is actually valid
- '2010-01-01T23:60',
- '2010-01-01T23:59:60'
- ], i;
- for (i = 0; i < tests.length; i++) {
- assert.equal(moment(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid');
- assert.equal(moment.utc(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid');
- }
- });
- test('invalid string iso 8601 + timezone', function (assert) {
- var tests = [
- '2010-00-00T+00:00',
- '2010-01-00T+00:00',
- '2010-01-40T+00:00',
- '2010-01-40T24:01+00:00',
- '2010-01-40T23:60+00:00',
- '2010-01-40T23:59:60+00:00',
- '2010-01-40T23:59:59.9999+00:00',
- '2010-01-40T23:59:59,9999+00:00'
- ], i;
- for (i = 0; i < tests.length; i++) {
- assert.equal(moment(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid');
- assert.equal(moment.utc(tests[i], moment.ISO_8601).isValid(), false, tests[i] + ' should be invalid');
- }
- });
- test('valid string iso 8601 - not strict', function (assert) {
- var tests = [
- '2010-01-30 00:00:00,000Z',
- '20100101',
- '20100130',
- '20100130T23+00:00',
- '20100130T2359+0000',
- '20100130T235959+0000',
- '20100130T235959,999+0000',
- '20100130T235959,999-0700',
- '20100130T000000,000+0700',
- '20100130 000000,000Z'
- ];
- for (var i = 0; i < tests.length; i++) {
- assert.equal(moment(tests[i]).isValid(), true, tests[i] + ' should be valid in normal');
- assert.equal(moment.utc(tests[i]).isValid(), true, tests[i] + ' should be valid in normal');
- }
- });
- test('valid string iso 8601 + timezone', function (assert) {
- var tests = [
- '2010-01-01',
- '2010-01-30',
- '2010-01-30T23+00:00',
- '2010-01-30T23:59+00:00',
- '2010-01-30T23:59:59+00:00',
- '2010-01-30T23:59:59.999+00:00',
- '2010-01-30T23:59:59.999-07:00',
- '2010-01-30T00:00:00.000+07:00',
- '2010-01-30T23:59:59.999-07',
- '2010-01-30T00:00:00.000+07',
- '2010-01-30 00:00:00.000Z'
- ], i;
- for (i = 0; i < tests.length; i++) {
- assert.equal(moment(tests[i]).isValid(), true, tests[i] + ' should be valid in normal');
- assert.equal(moment.utc(tests[i]).isValid(), true, tests[i] + ' should be valid in normal');
- assert.equal(moment(tests[i], moment.ISO_8601, true).isValid(), true, tests[i] + ' should be valid in strict');
- assert.equal(moment.utc(tests[i], moment.ISO_8601, true).isValid(), true, tests[i] + ' should be valid in strict');
- }
- });
- test('invalidAt', function (assert) {
- assert.equal(moment([2000, 12]).invalidAt(), 1, 'month 12 is invalid: 0-11');
- assert.equal(moment([2000, 1, 30]).invalidAt(), 2, '30 is not a valid february day');
- assert.equal(moment([2000, 1, 29, 25]).invalidAt(), 3, '25 is invalid hour');
- assert.equal(moment([2000, 1, 29, 24, 1]).invalidAt(), 3, '24:01 is invalid hour');
- assert.equal(moment([2000, 1, 29, 23, 60]).invalidAt(), 4, '60 is invalid minute');
- assert.equal(moment([2000, 1, 29, 23, 59, 60]).invalidAt(), 5, '60 is invalid second');
- assert.equal(moment([2000, 1, 29, 23, 59, 59, 1000]).invalidAt(), 6, '1000 is invalid millisecond');
- assert.equal(moment([2000, 1, 29, 23, 59, 59, 999]).invalidAt(), -1, '-1 if everything is fine');
- });
- test('valid Unix timestamp', function (assert) {
- assert.equal(moment(1371065286, 'X').isValid(), true, 'number integer');
- assert.equal(moment(1379066897.0, 'X').isValid(), true, 'number whole 1dp');
- assert.equal(moment(1379066897.7, 'X').isValid(), true, 'number 1dp');
- assert.equal(moment(1379066897.00, 'X').isValid(), true, 'number whole 2dp');
- assert.equal(moment(1379066897.07, 'X').isValid(), true, 'number 2dp');
- assert.equal(moment(1379066897.17, 'X').isValid(), true, 'number 2dp');
- assert.equal(moment(1379066897.000, 'X').isValid(), true, 'number whole 3dp');
- assert.equal(moment(1379066897.007, 'X').isValid(), true, 'number 3dp');
- assert.equal(moment(1379066897.017, 'X').isValid(), true, 'number 3dp');
- assert.equal(moment(1379066897.157, 'X').isValid(), true, 'number 3dp');
- assert.equal(moment('1371065286', 'X').isValid(), true, 'string integer');
- assert.equal(moment('1379066897.', 'X').isValid(), true, 'string trailing .');
- assert.equal(moment('1379066897.0', 'X').isValid(), true, 'string whole 1dp');
- assert.equal(moment('1379066897.7', 'X').isValid(), true, 'string 1dp');
- assert.equal(moment('1379066897.00', 'X').isValid(), true, 'string whole 2dp');
- assert.equal(moment('1379066897.07', 'X').isValid(), true, 'string 2dp');
- assert.equal(moment('1379066897.17', 'X').isValid(), true, 'string 2dp');
- assert.equal(moment('1379066897.000', 'X').isValid(), true, 'string whole 3dp');
- assert.equal(moment('1379066897.007', 'X').isValid(), true, 'string 3dp');
- assert.equal(moment('1379066897.017', 'X').isValid(), true, 'string 3dp');
- assert.equal(moment('1379066897.157', 'X').isValid(), true, 'string 3dp');
- });
- test('invalid Unix timestamp', function (assert) {
- assert.equal(moment(undefined, 'X').isValid(), false, 'undefined');
- assert.equal(moment('undefined', 'X').isValid(), false, 'string undefined');
- try {
- assert.equal(moment(null, 'X').isValid(), false, 'null');
- } catch (e) {
- assert.ok(true, 'null');
- }
- assert.equal(moment('null', 'X').isValid(), false, 'string null');
- assert.equal(moment([], 'X').isValid(), false, 'array');
- assert.equal(moment('{}', 'X').isValid(), false, 'object');
- try {
- assert.equal(moment('', 'X').isValid(), false, 'string empty');
- } catch (e) {
- assert.ok(true, 'string empty');
- }
- assert.equal(moment(' ', 'X').isValid(), false, 'string space');
- });
- test('valid Unix offset milliseconds', function (assert) {
- assert.equal(moment(1234567890123, 'x').isValid(), true, 'number integer');
- assert.equal(moment('1234567890123', 'x').isValid(), true, 'string integer');
- });
- test('invalid Unix offset milliseconds', function (assert) {
- assert.equal(moment(undefined, 'x').isValid(), false, 'undefined');
- assert.equal(moment('undefined', 'x').isValid(), false, 'string undefined');
- try {
- assert.equal(moment(null, 'x').isValid(), false, 'null');
- } catch (e) {
- assert.ok(true, 'null');
- }
- assert.equal(moment('null', 'x').isValid(), false, 'string null');
- assert.equal(moment([], 'x').isValid(), false, 'array');
- assert.equal(moment('{}', 'x').isValid(), false, 'object');
- try {
- assert.equal(moment('', 'x').isValid(), false, 'string empty');
- } catch (e) {
- assert.ok(true, 'string empty');
- }
- assert.equal(moment(' ', 'x').isValid(), false, 'string space');
- });
- test('empty', function (assert) {
- assert.equal(moment(null).isValid(), false, 'null');
- assert.equal(moment('').isValid(), false, 'empty string');
- assert.equal(moment(null, 'YYYY').isValid(), false, 'format + null');
- assert.equal(moment('', 'YYYY').isValid(), false, 'format + empty string');
- assert.equal(moment(' ', 'YYYY').isValid(), false, 'format + empty when trimmed');
- });
- test('days of the year', function (assert) {
- assert.equal(moment('2010 300', 'YYYY DDDD').isValid(), true, 'day 300 of year valid');
- assert.equal(moment('2010 365', 'YYYY DDDD').isValid(), true, 'day 365 of year valid');
- assert.equal(moment('2010 366', 'YYYY DDDD').isValid(), false, 'day 366 of year invalid');
- assert.equal(moment('2012 365', 'YYYY DDDD').isValid(), true, 'day 365 of leap year valid');
- assert.equal(moment('2012 366', 'YYYY DDDD').isValid(), true, 'day 366 of leap year valid');
- assert.equal(moment('2012 367', 'YYYY DDDD').isValid(), false, 'day 367 of leap year invalid');
- });
- test('24:00:00.000 is valid', function (assert) {
- assert.equal(moment('2014-01-01 24', 'YYYY-MM-DD HH').isValid(), true, '24 is valid');
- assert.equal(moment('2014-01-01 24:00', 'YYYY-MM-DD HH:mm').isValid(), true, '24:00 is valid');
- assert.equal(moment('2014-01-01 24:01', 'YYYY-MM-DD HH:mm').isValid(), false, '24:01 is not valid');
- });
- test('oddball permissiveness', function (assert) {
- //https://github.com/moment/moment/issues/1128
- assert.ok(moment('2010-10-3199', ['MM/DD/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD']).isValid());
- //https://github.com/moment/moment/issues/1122
- assert.ok(moment('3:25', ['h:mma', 'hh:mma', 'H:mm', 'HH:mm']).isValid());
- });
- test('0 hour is invalid in strict', function (assert) {
- assert.equal(moment('00:01', 'hh:mm', true).isValid(), false, '00 hour is invalid in strict');
- assert.equal(moment('00:01', 'hh:mm').isValid(), true, '00 hour is valid in normal');
- assert.equal(moment('0:01', 'h:mm', true).isValid(), false, '0 hour is invalid in strict');
- assert.equal(moment('0:01', 'h:mm').isValid(), true, '0 hour is valid in normal');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('leap year');
- test('leap year', function (assert) {
- assert.equal(moment([2010, 0, 1]).isLeapYear(), false, '2010');
- assert.equal(moment([2100, 0, 1]).isLeapYear(), false, '2100');
- assert.equal(moment([2008, 0, 1]).isLeapYear(), true, '2008');
- assert.equal(moment([2000, 0, 1]).isLeapYear(), true, '2000');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('listers');
- test('default', function (assert) {
- assert.deepEqual(moment.months(), ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']);
- assert.deepEqual(moment.monthsShort(), ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
- assert.deepEqual(moment.weekdays(), ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']);
- assert.deepEqual(moment.weekdaysShort(), ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']);
- assert.deepEqual(moment.weekdaysMin(), ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']);
- });
- test('index', function (assert) {
- assert.equal(moment.months(0), 'January');
- assert.equal(moment.months(2), 'March');
- assert.equal(moment.monthsShort(0), 'Jan');
- assert.equal(moment.monthsShort(2), 'Mar');
- assert.equal(moment.weekdays(0), 'Sunday');
- assert.equal(moment.weekdays(2), 'Tuesday');
- assert.equal(moment.weekdaysShort(0), 'Sun');
- assert.equal(moment.weekdaysShort(2), 'Tue');
- assert.equal(moment.weekdaysMin(0), 'Su');
- assert.equal(moment.weekdaysMin(2), 'Tu');
- });
- test('localized', function (assert) {
- var months = 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_'),
- monthsShort = 'on_tw_th_fo_fi_si_se_ei_ni_te_el_tw'.split('_'),
- weekdays = 'one_two_three_four_five_six_seven'.split('_'),
- weekdaysShort = 'on_tw_th_fo_fi_si_se'.split('_'),
- weekdaysMin = '1_2_3_4_5_6_7'.split('_');
- moment.locale('numerologists', {
- months : months,
- monthsShort : monthsShort,
- weekdays : weekdays,
- weekdaysShort: weekdaysShort,
- weekdaysMin: weekdaysMin
- });
- assert.deepEqual(moment.months(), months);
- assert.deepEqual(moment.monthsShort(), monthsShort);
- assert.deepEqual(moment.weekdays(), weekdays);
- assert.deepEqual(moment.weekdaysShort(), weekdaysShort);
- assert.deepEqual(moment.weekdaysMin(), weekdaysMin);
- assert.equal(moment.months(0), 'one');
- assert.equal(moment.monthsShort(0), 'on');
- assert.equal(moment.weekdays(0), 'one');
- assert.equal(moment.weekdaysShort(0), 'on');
- assert.equal(moment.weekdaysMin(0), '1');
- assert.equal(moment.months(2), 'three');
- assert.equal(moment.monthsShort(2), 'th');
- assert.equal(moment.weekdays(2), 'three');
- assert.equal(moment.weekdaysShort(2), 'th');
- assert.equal(moment.weekdaysMin(2), '3');
- });
- test('with functions', function (assert) {
- var monthsShort = 'one_two_three_four_five_six_seven_eight_nine_ten_eleven_twelve'.split('_'),
- monthsShortWeird = 'onesy_twosy_threesy_foursy_fivesy_sixsy_sevensy_eightsy_ninesy_tensy_elevensy_twelvesy'.split('_');
- moment.locale('difficult', {
- monthsShort: function (m, format) {
- var arr = format.match(/-MMM-/) ? monthsShortWeird : monthsShort;
- return arr[m.month()];
- }
- });
- assert.deepEqual(moment.monthsShort(), monthsShort);
- assert.deepEqual(moment.monthsShort('MMM'), monthsShort);
- assert.deepEqual(moment.monthsShort('-MMM-'), monthsShortWeird);
- assert.deepEqual(moment.monthsShort('MMM', 2), 'three');
- assert.deepEqual(moment.monthsShort('-MMM-', 2), 'threesy');
- assert.deepEqual(moment.monthsShort(2), 'three');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function each(array, callback) {
- var i;
- for (i = 0; i < array.length; i++) {
- callback(array[i], i, array);
- }
- }
- module('locale', {
- setup : function () {
- // TODO: Remove once locales are switched to ES6
- each([{
- name: 'en-gb',
- data: {}
- }, {
- name: 'en-ca',
- data: {}
- }, {
- name: 'es',
- data: {
- relativeTime: {past: 'hace %s', s: 'unos segundos', d: 'un día'},
- months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_')
- }
- }, {
- name: 'fr',
- data: {}
- }, {
- name: 'fr-ca',
- data: {}
- }, {
- name: 'it',
- data: {}
- }, {
- name: 'zh-cn',
- data: {
- months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_')
- }
- }], function (locale) {
- if (moment.locale(locale.name) !== locale.name) {
- moment.defineLocale(locale.name, locale.data);
- }
- });
- moment.locale('en');
- }
- });
- test('library getters and setters', function (assert) {
- var r = moment.locale('en');
- assert.equal(r, 'en', 'locale should return en by default');
- assert.equal(moment.locale(), 'en', 'locale should return en by default');
- moment.locale('fr');
- assert.equal(moment.locale(), 'fr', 'locale should return the changed locale');
- moment.locale('en-gb');
- assert.equal(moment.locale(), 'en-gb', 'locale should return the changed locale');
- moment.locale('en');
- assert.equal(moment.locale(), 'en', 'locale should reset');
- moment.locale('does-not-exist');
- assert.equal(moment.locale(), 'en', 'locale should reset');
- moment.locale('EN');
- assert.equal(moment.locale(), 'en', 'Normalize locale key case');
- moment.locale('EN_gb');
- assert.equal(moment.locale(), 'en-gb', 'Normalize locale key underscore');
- });
- test('library setter array of locales', function (assert) {
- assert.equal(moment.locale(['non-existent', 'fr', 'also-non-existent']), 'fr', 'passing an array uses the first valid locale');
- assert.equal(moment.locale(['es', 'fr', 'also-non-existent']), 'es', 'passing an array uses the first valid locale');
- });
- test('library setter locale substrings', function (assert) {
- assert.equal(moment.locale('fr-crap'), 'fr', 'use substrings');
- assert.equal(moment.locale('fr-does-not-exist'), 'fr', 'uses deep substrings');
- assert.equal(moment.locale('fr-CA-does-not-exist'), 'fr-ca', 'uses deepest substring');
- });
- test('library getter locale array and substrings', function (assert) {
- assert.equal(moment.locale(['en-CH', 'fr']), 'en', 'prefer root locale to shallower ones');
- assert.equal(moment.locale(['en-gb-leeds', 'en-CA']), 'en-gb', 'prefer root locale to shallower ones');
- assert.equal(moment.locale(['en-fake', 'en-CA']), 'en-ca', 'prefer alternatives with shared roots');
- assert.equal(moment.locale(['en-fake', 'en-fake2', 'en-ca']), 'en-ca', 'prefer alternatives with shared roots');
- assert.equal(moment.locale(['fake-CA', 'fake-MX', 'fr']), 'fr', 'always find something if possible');
- assert.equal(moment.locale(['fake-CA', 'fake-MX', 'fr']), 'fr', 'always find something if possible');
- assert.equal(moment.locale(['fake-CA', 'fake-MX', 'fr-fake-fake-fake']), 'fr', 'always find something if possible');
- assert.equal(moment.locale(['en', 'en-CA']), 'en', 'prefer earlier if it works');
- });
- test('library ensure inheritance', function (assert) {
- moment.locale('made-up', {
- // I put them out of order
- months : 'February_March_April_May_June_July_August_September_October_November_December_January'.split('_')
- // the rest of the properties should be inherited.
- });
- assert.equal(moment([2012, 5, 6]).format('MMMM'), 'July', 'Override some of the configs');
- assert.equal(moment([2012, 5, 6]).format('MMM'), 'Jun', 'But not all of them');
- });
- test('library ensure inheritance LT L LL LLL LLLL', function (assert) {
- var locale = 'test-inherit-lt';
- moment.defineLocale(locale, {
- longDateFormat : {
- LT : '-[LT]-',
- L : '-[L]-',
- LL : '-[LL]-',
- LLL : '-[LLL]-',
- LLLL : '-[LLLL]-'
- },
- calendar : {
- sameDay : '[sameDay] LT',
- nextDay : '[nextDay] L',
- nextWeek : '[nextWeek] LL',
- lastDay : '[lastDay] LLL',
- lastWeek : '[lastWeek] LLLL',
- sameElse : 'L'
- }
- });
- moment.locale('es');
- assert.equal(moment().locale(locale).calendar(), 'sameDay -LT-', 'Should use instance locale in LT formatting');
- assert.equal(moment().add(1, 'days').locale(locale).calendar(), 'nextDay -L-', 'Should use instance locale in L formatting');
- assert.equal(moment().add(-1, 'days').locale(locale).calendar(), 'lastDay -LLL-', 'Should use instance locale in LL formatting');
- assert.equal(moment().add(4, 'days').locale(locale).calendar(), 'nextWeek -LL-', 'Should use instance locale in LLL formatting');
- assert.equal(moment().add(-4, 'days').locale(locale).calendar(), 'lastWeek -LLLL-', 'Should use instance locale in LLLL formatting');
- });
- test('library localeData', function (assert) {
- moment.locale('en');
- var jan = moment([2000, 0]);
- assert.equal(moment.localeData().months(jan), 'January', 'no arguments returns global');
- assert.equal(moment.localeData('zh-cn').months(jan), '一月', 'a string returns the locale based on key');
- assert.equal(moment.localeData(moment().locale('es')).months(jan), 'enero', 'if you pass in a moment it uses the moment\'s locale');
- });
- test('library deprecations', function (assert) {
- moment.lang('dude', {months: ['Movember']});
- assert.equal(moment.locale(), 'dude', 'setting the lang sets the locale');
- assert.equal(moment.lang(), moment.locale());
- assert.equal(moment.langData(), moment.localeData(), 'langData is localeData');
- });
- test('defineLocale', function (assert) {
- moment.locale('en');
- moment.defineLocale('dude', {months: ['Movember']});
- assert.equal(moment().locale(), 'dude', 'defineLocale also sets it');
- assert.equal(moment().locale('dude').locale(), 'dude', 'defineLocale defines a locale');
- });
- test('library convenience', function (assert) {
- moment.locale('something', {week: {dow: 3}});
- moment.locale('something');
- assert.equal(moment.locale(), 'something', 'locale can be used to create the locale too');
- });
- test('firstDayOfWeek firstDayOfYear locale getters', function (assert) {
- moment.locale('something', {week: {dow: 3, doy: 4}});
- moment.locale('something');
- assert.equal(moment.localeData().firstDayOfWeek(), 3, 'firstDayOfWeek');
- assert.equal(moment.localeData().firstDayOfYear(), 4, 'firstDayOfYear');
- });
- test('instance locale method', function (assert) {
- moment.locale('en');
- assert.equal(moment([2012, 5, 6]).format('MMMM'), 'June', 'Normally default to global');
- assert.equal(moment([2012, 5, 6]).locale('es').format('MMMM'), 'junio', 'Use the instance specific locale');
- assert.equal(moment([2012, 5, 6]).format('MMMM'), 'June', 'Using an instance specific locale does not affect other moments');
- });
- test('instance locale method with array', function (assert) {
- var m = moment().locale(['non-existent', 'fr', 'also-non-existent']);
- assert.equal(m.locale(), 'fr', 'passing an array uses the first valid locale');
- m = moment().locale(['es', 'fr', 'also-non-existent']);
- assert.equal(m.locale(), 'es', 'passing an array uses the first valid locale');
- });
- test('instance getter locale substrings', function (assert) {
- var m = moment();
- m.locale('fr-crap');
- assert.equal(m.locale(), 'fr', 'use substrings');
- m.locale('fr-does-not-exist');
- assert.equal(m.locale(), 'fr', 'uses deep substrings');
- });
- test('instance locale persists with manipulation', function (assert) {
- moment.locale('en');
- assert.equal(moment([2012, 5, 6]).locale('es').add({days: 1}).format('MMMM'), 'junio', 'With addition');
- assert.equal(moment([2012, 5, 6]).locale('es').day(0).format('MMMM'), 'junio', 'With day getter');
- assert.equal(moment([2012, 5, 6]).locale('es').endOf('day').format('MMMM'), 'junio', 'With endOf');
- });
- test('instance locale persists with cloning', function (assert) {
- moment.locale('en');
- var a = moment([2012, 5, 6]).locale('es'),
- b = a.clone(),
- c = moment(a);
- assert.equal(b.format('MMMM'), 'junio', 'using moment.fn.clone()');
- assert.equal(b.format('MMMM'), 'junio', 'using moment()');
- });
- test('duration locale method', function (assert) {
- moment.locale('en');
- assert.equal(moment.duration({seconds: 44}).humanize(), 'a few seconds', 'Normally default to global');
- assert.equal(moment.duration({seconds: 44}).locale('es').humanize(), 'unos segundos', 'Use the instance specific locale');
- assert.equal(moment.duration({seconds: 44}).humanize(), 'a few seconds', 'Using an instance specific locale does not affect other durations');
- });
- test('duration locale persists with cloning', function (assert) {
- moment.locale('en');
- var a = moment.duration({seconds: 44}).locale('es'),
- b = moment.duration(a);
- assert.equal(b.humanize(), 'unos segundos', 'using moment.duration()');
- });
- test('changing the global locale doesn\'t affect existing duration instances', function (assert) {
- var mom = moment.duration();
- moment.locale('fr');
- assert.equal('en', mom.locale());
- });
- test('duration deprecations', function (assert) {
- assert.equal(moment.duration().lang(), moment.duration().localeData(), 'duration.lang is the same as duration.localeData');
- });
- test('from and fromNow with invalid date', function (assert) {
- assert.equal(moment(NaN).from(), 'Invalid date', 'moment.from with invalid moment');
- assert.equal(moment(NaN).fromNow(), 'Invalid date', 'moment.fromNow with invalid moment');
- });
- test('from relative time future', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 44})), 'in a few seconds', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 45})), 'in a minute', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 89})), 'in a minute', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({s: 90})), 'in 2 minutes', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 44})), 'in 44 minutes', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 45})), 'in an hour', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 89})), 'in an hour', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({m: 90})), 'in 2 hours', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 5})), 'in 5 hours', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 21})), 'in 21 hours', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 22})), 'in a day', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 35})), 'in a day', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({h: 36})), 'in 2 days', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 1})), 'in a day', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 5})), 'in 5 days', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 25})), 'in 25 days', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 26})), 'in a month', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 30})), 'in a month', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 45})), 'in a month', '45 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 47})), 'in 2 months', '47 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 74})), 'in 2 months', '74 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 78})), 'in 3 months', '78 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({M: 1})), 'in a month', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({M: 5})), 'in 5 months', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 315})), 'in 10 months', '315 days = 10 months');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 344})), 'in a year', '344 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 345})), 'in a year', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({d: 548})), 'in 2 years', '548 days = in 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({y: 1})), 'in a year', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).subtract({y: 5})), 'in 5 years', '5 years = 5 years');
- });
- test('from relative time past', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 44})), 'a few seconds ago', '44 seconds = a few seconds');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 45})), 'a minute ago', '45 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 89})), 'a minute ago', '89 seconds = a minute');
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90})), '2 minutes ago', '90 seconds = 2 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 44})), '44 minutes ago', '44 minutes = 44 minutes');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 45})), 'an hour ago', '45 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 89})), 'an hour ago', '89 minutes = an hour');
- assert.equal(start.from(moment([2007, 1, 28]).add({m: 90})), '2 hours ago', '90 minutes = 2 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 5})), '5 hours ago', '5 hours = 5 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 21})), '21 hours ago', '21 hours = 21 hours');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 22})), 'a day ago', '22 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 35})), 'a day ago', '35 hours = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({h: 36})), '2 days ago', '36 hours = 2 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 1})), 'a day ago', '1 day = a day');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 5})), '5 days ago', '5 days = 5 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 25})), '25 days ago', '25 days = 25 days');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 26})), 'a month ago', '26 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 30})), 'a month ago', '30 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 43})), 'a month ago', '43 days = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 46})), '2 months ago', '46 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 74})), '2 months ago', '75 days = 2 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 76})), '3 months ago', '76 days = 3 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 1})), 'a month ago', '1 month = a month');
- assert.equal(start.from(moment([2007, 1, 28]).add({M: 5})), '5 months ago', '5 months = 5 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 315})), '10 months ago', '315 days = 10 months');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 344})), 'a year ago', '344 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 345})), 'a year ago', '345 days = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({d: 548})), '2 years ago', '548 days = 2 years');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 1})), 'a year ago', '1 year = a year');
- assert.equal(start.from(moment([2007, 1, 28]).add({y: 5})), '5 years ago', '5 years = 5 years');
- });
- test('instance locale used with from', function (assert) {
- moment.locale('en');
- var a = moment([2012, 5, 6]).locale('es'),
- b = moment([2012, 5, 7]);
- assert.equal(a.from(b), 'hace un día', 'preserve locale of first moment');
- assert.equal(b.from(a), 'in a day', 'do not preserve locale of second moment');
- });
- test('instance localeData', function (assert) {
- moment.defineLocale('dude', {week: {dow: 3}});
- assert.equal(moment().locale('dude').localeData()._week.dow, 3);
- });
- test('month name callback function', function (assert) {
- function fakeReplace(m, format) {
- if (/test/.test(format)) {
- return 'test';
- }
- if (m.date() === 1) {
- return 'date';
- }
- return 'default';
- }
- moment.locale('made-up-2', {
- months : fakeReplace,
- monthsShort : fakeReplace,
- weekdays : fakeReplace,
- weekdaysShort : fakeReplace,
- weekdaysMin : fakeReplace
- });
- assert.equal(moment().format('[test] dd ddd dddd MMM MMMM'), 'test test test test test test', 'format month name function should be able to access the format string');
- assert.equal(moment([2011, 0, 1]).format('dd ddd dddd MMM MMMM'), 'date date date date date', 'format month name function should be able to access the moment object');
- assert.equal(moment([2011, 0, 2]).format('dd ddd dddd MMM MMMM'), 'default default default default default', 'format month name function should be able to access the moment object');
- });
- test('changing parts of a locale config', function (assert) {
- moment.locale('partial-lang', {
- months : 'a b c d e f g h i j k l'.split(' ')
- });
- assert.equal(moment([2011, 0, 1]).format('MMMM'), 'a', 'should be able to set locale values when creating the localeuage');
- moment.locale('partial-lang', {
- monthsShort : 'A B C D E F G H I J K L'.split(' ')
- });
- assert.equal(moment([2011, 0, 1]).format('MMMM MMM'), 'a A', 'should be able to set locale values after creating the localeuage');
- });
- test('start/endOf week feature for first-day-is-monday locales', function (assert) {
- moment.locale('monday-lang', {
- week : {
- dow : 1 // Monday is the first day of the week
- }
- });
- moment.locale('monday-lang');
- assert.equal(moment([2013, 0, 1]).startOf('week').day(), 1, 'for locale monday-lang first day of the week should be monday');
- assert.equal(moment([2013, 0, 1]).endOf('week').day(), 0, 'for locale monday-lang last day of the week should be sunday');
- });
- test('meridiem parsing', function (assert) {
- moment.locale('meridiem-parsing', {
- meridiemParse : /[bd]/i,
- isPM : function (input) {
- return input === 'b';
- }
- });
- moment.locale('meridiem-parsing');
- assert.equal(moment('2012-01-01 3b', 'YYYY-MM-DD ha').hour(), 15, 'Custom parsing of meridiem should work');
- assert.equal(moment('2012-01-01 3d', 'YYYY-MM-DD ha').hour(), 3, 'Custom parsing of meridiem should work');
- });
- test('invalid date formatting', function (assert) {
- moment.locale('has-invalid', {
- invalidDate: 'KHAAAAAAAAAAAN!'
- });
- assert.equal(moment.invalid().format(), 'KHAAAAAAAAAAAN!');
- assert.equal(moment.invalid().format('YYYY-MM-DD'), 'KHAAAAAAAAAAAN!');
- });
- test('return locale name', function (assert) {
- var registered = moment.locale('return-this', {});
- assert.equal(registered, 'return-this', 'returns the locale configured');
- });
- test('changing the global locale doesn\'t affect existing instances', function (assert) {
- var mom = moment();
- moment.locale('fr');
- assert.equal('en', mom.locale());
- });
- test('setting a language on instance returns the original moment for chaining', function (assert) {
- var mom = moment();
- assert.equal(mom.lang('fr'), mom, 'setting the language (lang) returns the original moment for chaining');
- assert.equal(mom.locale('it'), mom, 'setting the language (locale) returns the original moment for chaining');
- });
- test('lang(key) changes the language of the instance', function (assert) {
- var m = moment().month(0);
- m.lang('fr');
- assert.equal(m.locale(), 'fr', 'm.lang(key) changes instance locale');
- });
- test('moment#locale(false) resets to global locale', function (assert) {
- var m = moment();
- moment.locale('fr');
- m.locale('it');
- assert.equal(moment.locale(), 'fr', 'global locale is it');
- assert.equal(m.locale(), 'it', 'instance locale is it');
- m.locale(false);
- assert.equal(m.locale(), 'fr', 'instance locale reset to global locale');
- });
- test('moment().locale with missing key doesn\'t change locale', function (assert) {
- assert.equal(moment().locale('boo').localeData(), moment.localeData(),
- 'preserve global locale in case of bad locale id');
- });
- test('moment().lang with missing key doesn\'t change locale', function (assert) {
- assert.equal(moment().lang('boo').localeData(), moment.localeData(),
- 'preserve global locale in case of bad locale id');
- });
- // TODO: Enable this after fixing pl months parse hack hack
- // test('monthsParseExact', function (assert) {
- // var locale = 'test-months-parse-exact';
- // moment.defineLocale(locale, {
- // monthsParseExact: true,
- // months: 'A_AA_AAA_B_B B_BB B_C_C-C_C,C2C_D_D+D_D`D*D'.split('_'),
- // monthsShort: 'E_EE_EEE_F_FF_FFF_G_GG_GGG_H_HH_HHH'.split('_')
- // });
- // assert.equal(moment('A', 'MMMM', true).month(), 0, 'parse long month 0 with MMMM');
- // assert.equal(moment('AA', 'MMMM', true).month(), 1, 'parse long month 1 with MMMM');
- // assert.equal(moment('AAA', 'MMMM', true).month(), 2, 'parse long month 2 with MMMM');
- // assert.equal(moment('B B', 'MMMM', true).month(), 4, 'parse long month 4 with MMMM');
- // assert.equal(moment('BB B', 'MMMM', true).month(), 5, 'parse long month 5 with MMMM');
- // assert.equal(moment('C-C', 'MMMM', true).month(), 7, 'parse long month 7 with MMMM');
- // assert.equal(moment('C,C2C', 'MMMM', true).month(), 8, 'parse long month 8 with MMMM');
- // assert.equal(moment('D+D', 'MMMM', true).month(), 10, 'parse long month 10 with MMMM');
- // assert.equal(moment('D`D*D', 'MMMM', true).month(), 11, 'parse long month 11 with MMMM');
- // assert.equal(moment('E', 'MMM', true).month(), 0, 'parse long month 0 with MMM');
- // assert.equal(moment('EE', 'MMM', true).month(), 1, 'parse long month 1 with MMM');
- // assert.equal(moment('EEE', 'MMM', true).month(), 2, 'parse long month 2 with MMM');
- // assert.equal(moment('A', 'MMM').month(), 0, 'non-strict parse long month 0 with MMM');
- // assert.equal(moment('AA', 'MMM').month(), 1, 'non-strict parse long month 1 with MMM');
- // assert.equal(moment('AAA', 'MMM').month(), 2, 'non-strict parse long month 2 with MMM');
- // assert.equal(moment('E', 'MMMM').month(), 0, 'non-strict parse short month 0 with MMMM');
- // assert.equal(moment('EE', 'MMMM').month(), 1, 'non-strict parse short month 1 with MMMM');
- // assert.equal(moment('EEE', 'MMMM').month(), 2, 'non-strict parse short month 2 with MMMM');
- // });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('min max');
- test('min', function (assert) {
- var now = moment(),
- future = now.clone().add(1, 'month'),
- past = now.clone().subtract(1, 'month'),
- invalid = moment.invalid();
- assert.equal(moment.min(now, future, past), past, 'min(now, future, past)');
- assert.equal(moment.min(future, now, past), past, 'min(future, now, past)');
- assert.equal(moment.min(future, past, now), past, 'min(future, past, now)');
- assert.equal(moment.min(past, future, now), past, 'min(past, future, now)');
- assert.equal(moment.min(now, past), past, 'min(now, past)');
- assert.equal(moment.min(past, now), past, 'min(past, now)');
- assert.equal(moment.min(now), now, 'min(now, past)');
- assert.equal(moment.min([now, future, past]), past, 'min([now, future, past])');
- assert.equal(moment.min([now, past]), past, 'min(now, past)');
- assert.equal(moment.min([now]), now, 'min(now)');
- assert.equal(moment.min([now, invalid]), invalid, 'min(now, invalid)');
- assert.equal(moment.min([invalid, now]), invalid, 'min(invalid, now)');
- });
- test('max', function (assert) {
- var now = moment(),
- future = now.clone().add(1, 'month'),
- past = now.clone().subtract(1, 'month'),
- invalid = moment.invalid();
- assert.equal(moment.max(now, future, past), future, 'max(now, future, past)');
- assert.equal(moment.max(future, now, past), future, 'max(future, now, past)');
- assert.equal(moment.max(future, past, now), future, 'max(future, past, now)');
- assert.equal(moment.max(past, future, now), future, 'max(past, future, now)');
- assert.equal(moment.max(now, past), now, 'max(now, past)');
- assert.equal(moment.max(past, now), now, 'max(past, now)');
- assert.equal(moment.max(now), now, 'max(now, past)');
- assert.equal(moment.max([now, future, past]), future, 'max([now, future, past])');
- assert.equal(moment.max([now, past]), now, 'max(now, past)');
- assert.equal(moment.max([now]), now, 'max(now)');
- assert.equal(moment.max([now, invalid]), invalid, 'max(now, invalid)');
- assert.equal(moment.max([invalid, now]), invalid, 'max(invalid, now)');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('mutable');
- test('manipulation methods', function (assert) {
- var m = moment();
- assert.equal(m, m.year(2011), 'year() should be mutable');
- assert.equal(m, m.month(1), 'month() should be mutable');
- assert.equal(m, m.hours(7), 'hours() should be mutable');
- assert.equal(m, m.minutes(33), 'minutes() should be mutable');
- assert.equal(m, m.seconds(44), 'seconds() should be mutable');
- assert.equal(m, m.milliseconds(55), 'milliseconds() should be mutable');
- assert.equal(m, m.day(2), 'day() should be mutable');
- assert.equal(m, m.startOf('week'), 'startOf() should be mutable');
- assert.equal(m, m.add(1, 'days'), 'add() should be mutable');
- assert.equal(m, m.subtract(2, 'years'), 'subtract() should be mutable');
- assert.equal(m, m.local(), 'local() should be mutable');
- assert.equal(m, m.utc(), 'utc() should be mutable');
- });
- test('non mutable methods', function (assert) {
- var m = moment();
- assert.notEqual(m, m.clone(), 'clone() should not be mutable');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('normalize units');
- test('normalize units', function (assert) {
- var fullKeys = ['year', 'quarter', 'month', 'isoWeek', 'week', 'day', 'hour', 'minute', 'second', 'millisecond', 'date', 'dayOfYear', 'weekday', 'isoWeekday', 'weekYear', 'isoWeekYear'],
- aliases = ['y', 'Q', 'M', 'W', 'w', 'd', 'h', 'm', 's', 'ms', 'D', 'DDD', 'e', 'E', 'gg', 'GG'],
- length = fullKeys.length,
- fullKey,
- fullKeyCaps,
- fullKeyPlural,
- fullKeyCapsPlural,
- fullKeyLower,
- alias,
- index;
- for (index = 0; index < length; index += 1) {
- fullKey = fullKeys[index];
- fullKeyCaps = fullKey.toUpperCase();
- fullKeyLower = fullKey.toLowerCase();
- fullKeyPlural = fullKey + 's';
- fullKeyCapsPlural = fullKeyCaps + 's';
- alias = aliases[index];
- assert.equal(moment.normalizeUnits(fullKey), fullKey, 'Testing full key ' + fullKey);
- assert.equal(moment.normalizeUnits(fullKeyCaps), fullKey, 'Testing full key capitalised ' + fullKey);
- assert.equal(moment.normalizeUnits(fullKeyPlural), fullKey, 'Testing full key plural ' + fullKey);
- assert.equal(moment.normalizeUnits(fullKeyCapsPlural), fullKey, 'Testing full key capitalised and plural ' + fullKey);
- assert.equal(moment.normalizeUnits(alias), fullKey, 'Testing alias ' + fullKey);
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('now');
- test('now', function (assert) {
- var startOfTest = new Date().valueOf(),
- momentNowTime = moment.now(),
- afterMomentCreationTime = new Date().valueOf();
- assert.ok(startOfTest <= momentNowTime, 'moment now() time should be now, not in the past');
- assert.ok(momentNowTime <= afterMomentCreationTime, 'moment now() time should be now, not in the future');
- });
- test('now - Date mocked', function (assert) {
- // We need to test mocking the global Date object, so disable 'Read Only' jshint check
- /* jshint -W020 */
- var RealDate = Date,
- customTimeMs = moment('2015-01-01T01:30:00.000Z').valueOf();
- function MockDate() {
- return new RealDate(customTimeMs);
- }
- MockDate.now = function () {
- return new MockDate().valueOf();
- };
- MockDate.prototype = RealDate.prototype;
- Date = MockDate;
- try {
- assert.equal(moment().valueOf(), customTimeMs, 'moment now() time should use the global Date object');
- } finally {
- Date = RealDate;
- }
- });
- test('now - custom value', function (assert) {
- var customTimeStr = '2015-01-01T01:30:00.000Z',
- customTime = moment(customTimeStr, moment.ISO_8601).valueOf(),
- oldFn = moment.now;
- moment.now = function () {
- return customTime;
- };
- try {
- assert.ok(moment().toISOString() === customTimeStr, 'moment() constructor should use the function defined by moment.now, but it did not');
- assert.ok(moment.utc().toISOString() === customTimeStr, 'moment() constructor should use the function defined by moment.now, but it did not');
- assert.ok(moment.utc([]).toISOString() === '2015-01-01T00:00:00.000Z', 'moment() constructor should fall back to the date defined by moment.now when an empty array is given, but it did not');
- } finally {
- moment.now = oldFn;
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('parsing flags');
- function flags () {
- return moment.apply(null, arguments).parsingFlags();
- }
- test('overflow with array', function (assert) {
- //months
- assert.equal(flags([2010, 0]).overflow, -1, 'month 0 valid');
- assert.equal(flags([2010, 1]).overflow, -1, 'month 1 valid');
- assert.equal(flags([2010, -1]).overflow, 1, 'month -1 invalid');
- assert.equal(flags([2100, 12]).overflow, 1, 'month 12 invalid');
- //days
- assert.equal(flags([2010, 1, 16]).overflow, -1, 'date valid');
- assert.equal(flags([2010, 1, -1]).overflow, 2, 'date -1 invalid');
- assert.equal(flags([2010, 1, 0]).overflow, 2, 'date 0 invalid');
- assert.equal(flags([2010, 1, 32]).overflow, 2, 'date 32 invalid');
- assert.equal(flags([2012, 1, 29]).overflow, -1, 'date leap year valid');
- assert.equal(flags([2010, 1, 29]).overflow, 2, 'date leap year invalid');
- //hours
- assert.equal(flags([2010, 1, 1, 8]).overflow, -1, 'hour valid');
- assert.equal(flags([2010, 1, 1, 0]).overflow, -1, 'hour 0 valid');
- assert.equal(flags([2010, 1, 1, -1]).overflow, 3, 'hour -1 invalid');
- assert.equal(flags([2010, 1, 1, 25]).overflow, 3, 'hour 25 invalid');
- assert.equal(flags([2010, 1, 1, 24, 1]).overflow, 3, 'hour 24:01 invalid');
- //minutes
- assert.equal(flags([2010, 1, 1, 8, 15]).overflow, -1, 'minute valid');
- assert.equal(flags([2010, 1, 1, 8, 0]).overflow, -1, 'minute 0 valid');
- assert.equal(flags([2010, 1, 1, 8, -1]).overflow, 4, 'minute -1 invalid');
- assert.equal(flags([2010, 1, 1, 8, 60]).overflow, 4, 'minute 60 invalid');
- //seconds
- assert.equal(flags([2010, 1, 1, 8, 15, 12]).overflow, -1, 'second valid');
- assert.equal(flags([2010, 1, 1, 8, 15, 0]).overflow, -1, 'second 0 valid');
- assert.equal(flags([2010, 1, 1, 8, 15, -1]).overflow, 5, 'second -1 invalid');
- assert.equal(flags([2010, 1, 1, 8, 15, 60]).overflow, 5, 'second 60 invalid');
- //milliseconds
- assert.equal(flags([2010, 1, 1, 8, 15, 12, 345]).overflow, -1, 'millisecond valid');
- assert.equal(flags([2010, 1, 1, 8, 15, 12, 0]).overflow, -1, 'millisecond 0 valid');
- assert.equal(flags([2010, 1, 1, 8, 15, 12, -1]).overflow, 6, 'millisecond -1 invalid');
- assert.equal(flags([2010, 1, 1, 8, 15, 12, 1000]).overflow, 6, 'millisecond 1000 invalid');
- // 24 hrs
- assert.equal(flags([2010, 1, 1, 24, 0, 0, 0]).overflow, -1, '24:00:00.000 is fine');
- assert.equal(flags([2010, 1, 1, 24, 1, 0, 0]).overflow, 3, '24:01:00.000 is wrong hour');
- assert.equal(flags([2010, 1, 1, 24, 0, 1, 0]).overflow, 3, '24:00:01.000 is wrong hour');
- assert.equal(flags([2010, 1, 1, 24, 0, 0, 1]).overflow, 3, '24:00:00.001 is wrong hour');
- });
- test('overflow without format', function (assert) {
- //months
- assert.equal(flags('2001-01', 'YYYY-MM').overflow, -1, 'month 1 valid');
- assert.equal(flags('2001-12', 'YYYY-MM').overflow, -1, 'month 12 valid');
- assert.equal(flags('2001-13', 'YYYY-MM').overflow, 1, 'month 13 invalid');
- //days
- assert.equal(flags('2010-01-16', 'YYYY-MM-DD').overflow, -1, 'date 16 valid');
- assert.equal(flags('2010-01-0', 'YYYY-MM-DD').overflow, 2, 'date 0 invalid');
- assert.equal(flags('2010-01-32', 'YYYY-MM-DD').overflow, 2, 'date 32 invalid');
- assert.equal(flags('2012-02-29', 'YYYY-MM-DD').overflow, -1, 'date leap year valid');
- assert.equal(flags('2010-02-29', 'YYYY-MM-DD').overflow, 2, 'date leap year invalid');
- //days of the year
- assert.equal(flags('2010 300', 'YYYY DDDD').overflow, -1, 'day 300 of year valid');
- assert.equal(flags('2010 365', 'YYYY DDDD').overflow, -1, 'day 365 of year valid');
- assert.equal(flags('2010 366', 'YYYY DDDD').overflow, 2, 'day 366 of year invalid');
- assert.equal(flags('2012 366', 'YYYY DDDD').overflow, -1, 'day 366 of leap year valid');
- assert.equal(flags('2012 367', 'YYYY DDDD').overflow, 2, 'day 367 of leap year invalid');
- //hours
- assert.equal(flags('08', 'HH').overflow, -1, 'hour valid');
- assert.equal(flags('00', 'HH').overflow, -1, 'hour 0 valid');
- assert.equal(flags('25', 'HH').overflow, 3, 'hour 25 invalid');
- assert.equal(flags('24:01', 'HH:mm').overflow, 3, 'hour 24:01 invalid');
- //minutes
- assert.equal(flags('08:15', 'HH:mm').overflow, -1, 'minute valid');
- assert.equal(flags('08:00', 'HH:mm').overflow, -1, 'minute 0 valid');
- assert.equal(flags('08:60', 'HH:mm').overflow, 4, 'minute 60 invalid');
- //seconds
- assert.equal(flags('08:15:12', 'HH:mm:ss').overflow, -1, 'second valid');
- assert.equal(flags('08:15:00', 'HH:mm:ss').overflow, -1, 'second 0 valid');
- assert.equal(flags('08:15:60', 'HH:mm:ss').overflow, 5, 'second 60 invalid');
- //milliseconds
- assert.equal(flags('08:15:12:345', 'HH:mm:ss:SSSS').overflow, -1, 'millisecond valid');
- assert.equal(flags('08:15:12:000', 'HH:mm:ss:SSSS').overflow, -1, 'millisecond 0 valid');
- //this is OK because we don't match the last digit, so it's 100 ms
- assert.equal(flags('08:15:12:1000', 'HH:mm:ss:SSSS').overflow, -1, 'millisecond 1000 actually valid');
- });
- test('extra tokens', function (assert) {
- assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD').unusedTokens, [], 'nothing extra');
- assert.deepEqual(flags('1982-05', 'YYYY-MM-DD').unusedTokens, ['DD'], 'extra formatting token');
- assert.deepEqual(flags('1982', 'YYYY-MM-DD').unusedTokens, ['MM', 'DD'], 'multiple extra formatting tokens');
- assert.deepEqual(flags('1982-05', 'YYYY-MM-').unusedTokens, [], 'extra non-formatting token');
- assert.deepEqual(flags('1982-05-', 'YYYY-MM-DD').unusedTokens, ['DD'], 'non-extra non-formatting token');
- assert.deepEqual(flags('1982 05 1982', 'YYYY-MM-DD').unusedTokens, [], 'different non-formatting token');
- });
- test('extra tokens strict', function (assert) {
- assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD', true).unusedTokens, [], 'nothing extra');
- assert.deepEqual(flags('1982-05', 'YYYY-MM-DD', true).unusedTokens, ['-', 'DD'], 'extra formatting token');
- assert.deepEqual(flags('1982', 'YYYY-MM-DD', true).unusedTokens, ['-', 'MM', '-', 'DD'], 'multiple extra formatting tokens');
- assert.deepEqual(flags('1982-05', 'YYYY-MM-', true).unusedTokens, ['-'], 'extra non-formatting token');
- assert.deepEqual(flags('1982-05-', 'YYYY-MM-DD', true).unusedTokens, ['DD'], 'non-extra non-formatting token');
- assert.deepEqual(flags('1982 05 1982', 'YYYY-MM-DD', true).unusedTokens, ['-', '-'], 'different non-formatting token');
- });
- test('unused input', function (assert) {
- assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD').unusedInput, [], 'normal input');
- assert.deepEqual(flags('1982-05-25 this is more stuff', 'YYYY-MM-DD').unusedInput, [' this is more stuff'], 'trailing nonsense');
- assert.deepEqual(flags('1982-05-25 09:30', 'YYYY-MM-DD').unusedInput, [' 09:30'], ['trailing legit-looking input']);
- assert.deepEqual(flags('1982-05-25 some junk', 'YYYY-MM-DD [some junk]').unusedInput, [], 'junk that actually gets matched');
- assert.deepEqual(flags('stuff at beginning 1982-05-25', 'YYYY-MM-DD').unusedInput, ['stuff at beginning '], 'leading junk');
- assert.deepEqual(flags('junk 1982 more junk 05 yet more junk25', 'YYYY-MM-DD').unusedInput, ['junk ', ' more junk ', ' yet more junk'], 'interstitial junk');
- });
- test('unused input strict', function (assert) {
- assert.deepEqual(flags('1982-05-25', 'YYYY-MM-DD', true).unusedInput, [], 'normal input');
- assert.deepEqual(flags('1982-05-25 this is more stuff', 'YYYY-MM-DD', true).unusedInput, [' this is more stuff'], 'trailing nonsense');
- assert.deepEqual(flags('1982-05-25 09:30', 'YYYY-MM-DD', true).unusedInput, [' 09:30'], ['trailing legit-looking input']);
- assert.deepEqual(flags('1982-05-25 some junk', 'YYYY-MM-DD [some junk]', true).unusedInput, [], 'junk that actually gets matched');
- assert.deepEqual(flags('stuff at beginning 1982-05-25', 'YYYY-MM-DD', true).unusedInput, ['stuff at beginning '], 'leading junk');
- assert.deepEqual(flags('junk 1982 more junk 05 yet more junk25', 'YYYY-MM-DD', true).unusedInput, ['junk ', ' more junk ', ' yet more junk'], 'interstitial junk');
- });
- test('chars left over', function (assert) {
- assert.equal(flags('1982-05-25', 'YYYY-MM-DD').charsLeftOver, 0, 'normal input');
- assert.equal(flags('1982-05-25 this is more stuff', 'YYYY-MM-DD').charsLeftOver, ' this is more stuff'.length, 'trailing nonsense');
- assert.equal(flags('1982-05-25 09:30', 'YYYY-MM-DD').charsLeftOver, ' 09:30'.length, 'trailing legit-looking input');
- assert.equal(flags('stuff at beginning 1982-05-25', 'YYYY-MM-DD').charsLeftOver, 'stuff at beginning '.length, 'leading junk');
- assert.equal(flags('1982 junk 05 more junk25', 'YYYY-MM-DD').charsLeftOver, [' junk ', ' more junk'].join('').length, 'interstitial junk');
- assert.equal(flags('stuff at beginning 1982 junk 05 more junk25', 'YYYY-MM-DD').charsLeftOver, ['stuff at beginning ', ' junk ', ' more junk'].join('').length, 'leading and interstitial junk');
- });
- test('empty', function (assert) {
- assert.equal(flags('1982-05-25', 'YYYY-MM-DD').empty, false, 'normal input');
- assert.equal(flags('nothing here', 'YYYY-MM-DD').empty, true, 'pure garbage');
- assert.equal(flags('junk but has the number 2000 in it', 'YYYY-MM-DD').empty, false, 'only mostly garbage');
- assert.equal(flags('', 'YYYY-MM-DD').empty, true, 'empty string');
- assert.equal(flags('', 'YYYY-MM-DD').empty, true, 'blank string');
- });
- test('null', function (assert) {
- assert.equal(flags('1982-05-25', 'YYYY-MM-DD').nullInput, false, 'normal input');
- assert.equal(flags(null).nullInput, true, 'just null');
- assert.equal(flags(null, 'YYYY-MM-DD').nullInput, true, 'null with format');
- });
- test('invalid month', function (assert) {
- assert.equal(flags('1982 May', 'YYYY MMMM').invalidMonth, null, 'normal input');
- assert.equal(flags('1982 Laser', 'YYYY MMMM').invalidMonth, 'Laser', 'bad month name');
- });
- test('empty format array', function (assert) {
- assert.equal(flags('1982 May', ['YYYY MMM']).invalidFormat, false, 'empty format array');
- assert.equal(flags('1982 May', []).invalidFormat, true, 'empty format array');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- var symbolMap = {
- '1': '!',
- '2': '@',
- '3': '#',
- '4': '$',
- '5': '%',
- '6': '^',
- '7': '&',
- '8': '*',
- '9': '(',
- '0': ')'
- },
- numberMap = {
- '!': '1',
- '@': '2',
- '#': '3',
- '$': '4',
- '%': '5',
- '^': '6',
- '&': '7',
- '*': '8',
- '(': '9',
- ')': '0'
- };
- module('preparse and postformat', {
- setup: function () {
- moment.locale('symbol', {
- preparse: function (string) {
- return string.replace(/[!@#$%\^&*()]/g, function (match) {
- return numberMap[match];
- });
- },
- postformat: function (string) {
- return string.replace(/\d/g, function (match) {
- return symbolMap[match];
- });
- }
- });
- }
- });
- test('transform', function (assert) {
- assert.equal(moment.utc('@)!@-)*-@&', 'YYYY-MM-DD').unix(), 1346025600, 'preparse string + format');
- assert.equal(moment.utc('@)!@-)*-@&').unix(), 1346025600, 'preparse ISO8601 string');
- assert.equal(moment.unix(1346025600).utc().format('YYYY-MM-DD'), '@)!@-)*-@&', 'postformat');
- });
- test('transform from', function (assert) {
- var start = moment([2007, 1, 28]);
- assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '@ minutes', 'postformat should work on moment.fn.from');
- assert.equal(moment().add(6, 'd').fromNow(true), '^ days', 'postformat should work on moment.fn.fromNow');
- assert.equal(moment.duration(10, 'h').humanize(), '!) hours', 'postformat should work on moment.duration.fn.humanize');
- });
- test('calendar day', function (assert) {
- var a = moment().hours(2).minutes(0).seconds(0);
- assert.equal(moment(a).calendar(), 'Today at @:)) AM', 'today at the same time');
- assert.equal(moment(a).add({m: 25}).calendar(), 'Today at @:@% AM', 'Now plus 25 min');
- assert.equal(moment(a).add({h: 1}).calendar(), 'Today at #:)) AM', 'Now plus 1 hour');
- assert.equal(moment(a).add({d: 1}).calendar(), 'Tomorrow at @:)) AM', 'tomorrow at the same time');
- assert.equal(moment(a).subtract({h: 1}).calendar(), 'Today at !:)) AM', 'Now minus 1 hour');
- assert.equal(moment(a).subtract({d: 1}).calendar(), 'Yesterday at @:)) AM', 'yesterday at the same time');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('quarter');
- test('library quarter getter', function (assert) {
- assert.equal(moment([1985, 1, 4]).quarter(), 1, 'Feb 4 1985 is Q1');
- assert.equal(moment([2029, 8, 18]).quarter(), 3, 'Sep 18 2029 is Q3');
- assert.equal(moment([2013, 3, 24]).quarter(), 2, 'Apr 24 2013 is Q2');
- assert.equal(moment([2015, 2, 5]).quarter(), 1, 'Mar 5 2015 is Q1');
- assert.equal(moment([1970, 0, 2]).quarter(), 1, 'Jan 2 1970 is Q1');
- assert.equal(moment([2001, 11, 12]).quarter(), 4, 'Dec 12 2001 is Q4');
- assert.equal(moment([2000, 0, 2]).quarter(), 1, 'Jan 2 2000 is Q1');
- });
- test('quarter setter singular', function (assert) {
- var m = moment([2014, 4, 11]);
- assert.equal(m.quarter(2).month(), 4, 'set same quarter');
- assert.equal(m.quarter(3).month(), 7, 'set 3rd quarter');
- assert.equal(m.quarter(1).month(), 1, 'set 1st quarter');
- assert.equal(m.quarter(4).month(), 10, 'set 4th quarter');
- });
- test('quarter setter plural', function (assert) {
- var m = moment([2014, 4, 11]);
- assert.equal(m.quarters(2).month(), 4, 'set same quarter');
- assert.equal(m.quarters(3).month(), 7, 'set 3rd quarter');
- assert.equal(m.quarters(1).month(), 1, 'set 1st quarter');
- assert.equal(m.quarters(4).month(), 10, 'set 4th quarter');
- });
- test('quarter setter programmatic', function (assert) {
- var m = moment([2014, 4, 11]);
- assert.equal(m.set('quarter', 2).month(), 4, 'set same quarter');
- assert.equal(m.set('quarter', 3).month(), 7, 'set 3rd quarter');
- assert.equal(m.set('quarter', 1).month(), 1, 'set 1st quarter');
- assert.equal(m.set('quarter', 4).month(), 10, 'set 4th quarter');
- });
- test('quarter setter programmatic plural', function (assert) {
- var m = moment([2014, 4, 11]);
- assert.equal(m.set('quarters', 2).month(), 4, 'set same quarter');
- assert.equal(m.set('quarters', 3).month(), 7, 'set 3rd quarter');
- assert.equal(m.set('quarters', 1).month(), 1, 'set 1st quarter');
- assert.equal(m.set('quarters', 4).month(), 10, 'set 4th quarter');
- });
- test('quarter setter programmatic abbr', function (assert) {
- var m = moment([2014, 4, 11]);
- assert.equal(m.set('Q', 2).month(), 4, 'set same quarter');
- assert.equal(m.set('Q', 3).month(), 7, 'set 3rd quarter');
- assert.equal(m.set('Q', 1).month(), 1, 'set 1st quarter');
- assert.equal(m.set('Q', 4).month(), 10, 'set 4th quarter');
- });
- test('quarter setter only month changes', function (assert) {
- var m = moment([2014, 4, 11, 1, 2, 3, 4]).quarter(4);
- assert.equal(m.year(), 2014, 'keep year');
- assert.equal(m.month(), 10, 'set month');
- assert.equal(m.date(), 11, 'keep date');
- assert.equal(m.hour(), 1, 'keep hour');
- assert.equal(m.minute(), 2, 'keep minutes');
- assert.equal(m.second(), 3, 'keep seconds');
- assert.equal(m.millisecond(), 4, 'keep milliseconds');
- });
- test('quarter setter bubble to next year', function (assert) {
- var m = moment([2014, 4, 11, 1, 2, 3, 4]).quarter(7);
- assert.equal(m.year(), 2015, 'year bubbled');
- assert.equal(m.month(), 7, 'set month');
- assert.equal(m.date(), 11, 'keep date');
- assert.equal(m.hour(), 1, 'keep hour');
- assert.equal(m.minute(), 2, 'keep minutes');
- assert.equal(m.second(), 3, 'keep seconds');
- assert.equal(m.millisecond(), 4, 'keep milliseconds');
- });
- test('quarter diff', function (assert) {
- assert.equal(moment('2014-01-01').diff(moment('2014-04-01'), 'quarter'),
- -1, 'diff -1 quarter');
- assert.equal(moment('2014-04-01').diff(moment('2014-01-01'), 'quarter'),
- 1, 'diff 1 quarter');
- assert.equal(moment('2014-05-01').diff(moment('2014-01-01'), 'quarter'),
- 1, 'diff 1 quarter');
- assert.ok(Math.abs((4 / 3) - moment('2014-05-01').diff(
- moment('2014-01-01'), 'quarter', true)) < 0.00001,
- 'diff 1 1/3 quarter');
- assert.equal(moment('2015-01-01').diff(moment('2014-01-01'), 'quarter'),
- 4, 'diff 4 quarters');
- });
- test('quarter setter bubble to previous year', function (assert) {
- var m = moment([2014, 4, 11, 1, 2, 3, 4]).quarter(-3);
- assert.equal(m.year(), 2013, 'year bubbled');
- assert.equal(m.month(), 1, 'set month');
- assert.equal(m.date(), 11, 'keep date');
- assert.equal(m.hour(), 1, 'keep hour');
- assert.equal(m.minute(), 2, 'keep minutes');
- assert.equal(m.second(), 3, 'keep seconds');
- assert.equal(m.millisecond(), 4, 'keep milliseconds');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('relative time');
- test('default thresholds fromNow', function (assert) {
- var a = moment();
- // Seconds to minutes threshold
- a.subtract(44, 'seconds');
- assert.equal(a.fromNow(), 'a few seconds ago', 'Below default seconds to minutes threshold');
- a.subtract(1, 'seconds');
- assert.equal(a.fromNow(), 'a minute ago', 'Above default seconds to minutes threshold');
- // Minutes to hours threshold
- a = moment();
- a.subtract(44, 'minutes');
- assert.equal(a.fromNow(), '44 minutes ago', 'Below default minute to hour threshold');
- a.subtract(1, 'minutes');
- assert.equal(a.fromNow(), 'an hour ago', 'Above default minute to hour threshold');
- // Hours to days threshold
- a = moment();
- a.subtract(21, 'hours');
- assert.equal(a.fromNow(), '21 hours ago', 'Below default hours to day threshold');
- a.subtract(1, 'hours');
- assert.equal(a.fromNow(), 'a day ago', 'Above default hours to day threshold');
- // Days to month threshold
- a = moment();
- a.subtract(25, 'days');
- assert.equal(a.fromNow(), '25 days ago', 'Below default days to month (singular) threshold');
- a.subtract(1, 'days');
- assert.equal(a.fromNow(), 'a month ago', 'Above default days to month (singular) threshold');
- // months to year threshold
- a = moment();
- a.subtract(10, 'months');
- assert.equal(a.fromNow(), '10 months ago', 'Below default days to years threshold');
- a.subtract(1, 'month');
- assert.equal(a.fromNow(), 'a year ago', 'Above default days to years threshold');
- });
- test('default thresholds toNow', function (assert) {
- var a = moment();
- // Seconds to minutes threshold
- a.subtract(44, 'seconds');
- assert.equal(a.toNow(), 'in a few seconds', 'Below default seconds to minutes threshold');
- a.subtract(1, 'seconds');
- assert.equal(a.toNow(), 'in a minute', 'Above default seconds to minutes threshold');
- // Minutes to hours threshold
- a = moment();
- a.subtract(44, 'minutes');
- assert.equal(a.toNow(), 'in 44 minutes', 'Below default minute to hour threshold');
- a.subtract(1, 'minutes');
- assert.equal(a.toNow(), 'in an hour', 'Above default minute to hour threshold');
- // Hours to days threshold
- a = moment();
- a.subtract(21, 'hours');
- assert.equal(a.toNow(), 'in 21 hours', 'Below default hours to day threshold');
- a.subtract(1, 'hours');
- assert.equal(a.toNow(), 'in a day', 'Above default hours to day threshold');
- // Days to month threshold
- a = moment();
- a.subtract(25, 'days');
- assert.equal(a.toNow(), 'in 25 days', 'Below default days to month (singular) threshold');
- a.subtract(1, 'days');
- assert.equal(a.toNow(), 'in a month', 'Above default days to month (singular) threshold');
- // months to year threshold
- a = moment();
- a.subtract(10, 'months');
- assert.equal(a.toNow(), 'in 10 months', 'Below default days to years threshold');
- a.subtract(1, 'month');
- assert.equal(a.toNow(), 'in a year', 'Above default days to years threshold');
- });
- test('custom thresholds', function (assert) {
- var a;
- // Seconds to minute threshold, under 30
- moment.relativeTimeThreshold('s', 25);
- a = moment();
- a.subtract(24, 'seconds');
- assert.equal(a.fromNow(), 'a few seconds ago', 'Below custom seconds to minute threshold, s < 30');
- a.subtract(1, 'seconds');
- assert.equal(a.fromNow(), 'a minute ago', 'Above custom seconds to minute threshold, s < 30');
- // Seconds to minutes threshold
- moment.relativeTimeThreshold('s', 55);
- a = moment();
- a.subtract(54, 'seconds');
- assert.equal(a.fromNow(), 'a few seconds ago', 'Below custom seconds to minutes threshold');
- a.subtract(1, 'seconds');
- assert.equal(a.fromNow(), 'a minute ago', 'Above custom seconds to minutes threshold');
- moment.relativeTimeThreshold('s', 45);
- // Minutes to hours threshold
- moment.relativeTimeThreshold('m', 55);
- a = moment();
- a.subtract(54, 'minutes');
- assert.equal(a.fromNow(), '54 minutes ago', 'Below custom minutes to hours threshold');
- a.subtract(1, 'minutes');
- assert.equal(a.fromNow(), 'an hour ago', 'Above custom minutes to hours threshold');
- moment.relativeTimeThreshold('m', 45);
- // Hours to days threshold
- moment.relativeTimeThreshold('h', 24);
- a = moment();
- a.subtract(23, 'hours');
- assert.equal(a.fromNow(), '23 hours ago', 'Below custom hours to days threshold');
- a.subtract(1, 'hours');
- assert.equal(a.fromNow(), 'a day ago', 'Above custom hours to days threshold');
- moment.relativeTimeThreshold('h', 22);
- // Days to month threshold
- moment.relativeTimeThreshold('d', 28);
- a = moment();
- a.subtract(27, 'days');
- assert.equal(a.fromNow(), '27 days ago', 'Below custom days to month (singular) threshold');
- a.subtract(1, 'days');
- assert.equal(a.fromNow(), 'a month ago', 'Above custom days to month (singular) threshold');
- moment.relativeTimeThreshold('d', 26);
- // months to years threshold
- moment.relativeTimeThreshold('M', 9);
- a = moment();
- a.subtract(8, 'months');
- assert.equal(a.fromNow(), '8 months ago', 'Below custom days to years threshold');
- a.subtract(1, 'months');
- assert.equal(a.fromNow(), 'a year ago', 'Above custom days to years threshold');
- moment.relativeTimeThreshold('M', 11);
- });
- test('retrive threshold settings', function (assert) {
- moment.relativeTimeThreshold('m', 45);
- var minuteThreshold = moment.relativeTimeThreshold('m');
- assert.equal(minuteThreshold, 45, 'Can retrieve minute setting');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('start and end of units');
- test('start of year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('year'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('years'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('y');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 0, 'strip out the month');
- assert.equal(m.date(), 1, 'strip out the day');
- assert.equal(m.hours(), 0, 'strip out the hours');
- assert.equal(m.minutes(), 0, 'strip out the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of year', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('year'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('years'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('y');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 11, 'set the month');
- assert.equal(m.date(), 31, 'set the day');
- assert.equal(m.hours(), 23, 'set the hours');
- assert.equal(m.minutes(), 59, 'set the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of quarter', function (assert) {
- var m = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).startOf('quarter'),
- ms = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).startOf('quarters'),
- ma = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).startOf('Q');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.quarter(), 2, 'keep the quarter');
- assert.equal(m.month(), 3, 'strip out the month');
- assert.equal(m.date(), 1, 'strip out the day');
- assert.equal(m.hours(), 0, 'strip out the hours');
- assert.equal(m.minutes(), 0, 'strip out the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of quarter', function (assert) {
- var m = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).endOf('quarter'),
- ms = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).endOf('quarters'),
- ma = moment(new Date(2011, 4, 2, 3, 4, 5, 6)).endOf('Q');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.quarter(), 2, 'keep the quarter');
- assert.equal(m.month(), 5, 'set the month');
- assert.equal(m.date(), 30, 'set the day');
- assert.equal(m.hours(), 23, 'set the hours');
- assert.equal(m.minutes(), 59, 'set the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of month', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('month'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('months'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('M');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 1, 'strip out the day');
- assert.equal(m.hours(), 0, 'strip out the hours');
- assert.equal(m.minutes(), 0, 'strip out the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of month', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('month'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('months'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('M');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 28, 'set the day');
- assert.equal(m.hours(), 23, 'set the hours');
- assert.equal(m.minutes(), 59, 'set the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of week', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('week'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('weeks'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('w');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 0, 'rolls back to January');
- assert.equal(m.day(), 0, 'set day of week');
- assert.equal(m.date(), 30, 'set correct date');
- assert.equal(m.hours(), 0, 'strip out the hours');
- assert.equal(m.minutes(), 0, 'strip out the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of week', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('week'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('weeks'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('weeks');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.day(), 6, 'set the day of the week');
- assert.equal(m.date(), 5, 'set the day');
- assert.equal(m.hours(), 23, 'set the hours');
- assert.equal(m.minutes(), 59, 'set the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of iso-week', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('isoWeek'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('isoWeeks'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('W');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 0, 'rollback to January');
- assert.equal(m.isoWeekday(), 1, 'set day of iso-week');
- assert.equal(m.date(), 31, 'set correct date');
- assert.equal(m.hours(), 0, 'strip out the hours');
- assert.equal(m.minutes(), 0, 'strip out the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of iso-week', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('isoWeek'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('isoWeeks'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('W');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.isoWeekday(), 7, 'set the day of the week');
- assert.equal(m.date(), 6, 'set the day');
- assert.equal(m.hours(), 23, 'set the hours');
- assert.equal(m.minutes(), 59, 'set the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of day', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('day'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('days'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('d');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 0, 'strip out the hours');
- assert.equal(m.minutes(), 0, 'strip out the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of day', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('day'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('days'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('d');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 23, 'set the hours');
- assert.equal(m.minutes(), 59, 'set the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of hour', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('hour'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('hours'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('h');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 3, 'keep the hours');
- assert.equal(m.minutes(), 0, 'strip out the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of hour', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('hour'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('hours'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('h');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 3, 'keep the hours');
- assert.equal(m.minutes(), 59, 'set the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of minute', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('minute'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('minutes'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('m');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 3, 'keep the hours');
- assert.equal(m.minutes(), 4, 'keep the minutes');
- assert.equal(m.seconds(), 0, 'strip out the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of minute', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('minute'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('minutes'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('m');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 3, 'keep the hours');
- assert.equal(m.minutes(), 4, 'keep the minutes');
- assert.equal(m.seconds(), 59, 'set the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('start of second', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('second'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('seconds'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).startOf('s');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 3, 'keep the hours');
- assert.equal(m.minutes(), 4, 'keep the minutes');
- assert.equal(m.seconds(), 5, 'keep the the seconds');
- assert.equal(m.milliseconds(), 0, 'strip out the milliseconds');
- });
- test('end of second', function (assert) {
- var m = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('second'),
- ms = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('seconds'),
- ma = moment(new Date(2011, 1, 2, 3, 4, 5, 6)).endOf('s');
- assert.equal(+m, +ms, 'Plural or singular should work');
- assert.equal(+m, +ma, 'Full or abbreviated should work');
- assert.equal(m.year(), 2011, 'keep the year');
- assert.equal(m.month(), 1, 'keep the month');
- assert.equal(m.date(), 2, 'keep the day');
- assert.equal(m.hours(), 3, 'keep the hours');
- assert.equal(m.minutes(), 4, 'keep the minutes');
- assert.equal(m.seconds(), 5, 'keep the seconds');
- assert.equal(m.milliseconds(), 999, 'set the seconds');
- });
- test('startOf across DST +1', function (assert) {
- var oldUpdateOffset = moment.updateOffset,
- // Based on a real story somewhere in America/Los_Angeles
- dstAt = moment('2014-03-09T02:00:00-08:00').parseZone(),
- m;
- moment.updateOffset = function (mom, keepTime) {
- if (mom.isBefore(dstAt)) {
- mom.utcOffset(-8, keepTime);
- } else {
- mom.utcOffset(-7, keepTime);
- }
- };
- m = moment('2014-03-15T00:00:00-07:00').parseZone();
- m.startOf('M');
- assert.equal(m.format(), '2014-03-01T00:00:00-08:00', 'startOf(\'month\') across +1');
- m = moment('2014-03-09T09:00:00-07:00').parseZone();
- m.startOf('d');
- assert.equal(m.format(), '2014-03-09T00:00:00-08:00', 'startOf(\'day\') across +1');
- m = moment('2014-03-09T03:05:00-07:00').parseZone();
- m.startOf('h');
- assert.equal(m.format(), '2014-03-09T03:00:00-07:00', 'startOf(\'hour\') after +1');
- m = moment('2014-03-09T01:35:00-08:00').parseZone();
- m.startOf('h');
- assert.equal(m.format(), '2014-03-09T01:00:00-08:00', 'startOf(\'hour\') before +1');
- // There is no such time as 2:30-7 to try startOf('hour') across that
- moment.updateOffset = oldUpdateOffset;
- });
- test('startOf across DST -1', function (assert) {
- var oldUpdateOffset = moment.updateOffset,
- // Based on a real story somewhere in America/Los_Angeles
- dstAt = moment('2014-11-02T02:00:00-07:00').parseZone(),
- m;
- moment.updateOffset = function (mom, keepTime) {
- if (mom.isBefore(dstAt)) {
- mom.utcOffset(-7, keepTime);
- } else {
- mom.utcOffset(-8, keepTime);
- }
- };
- m = moment('2014-11-15T00:00:00-08:00').parseZone();
- m.startOf('M');
- assert.equal(m.format(), '2014-11-01T00:00:00-07:00', 'startOf(\'month\') across -1');
- m = moment('2014-11-02T09:00:00-08:00').parseZone();
- m.startOf('d');
- assert.equal(m.format(), '2014-11-02T00:00:00-07:00', 'startOf(\'day\') across -1');
- // note that utc offset is -8
- m = moment('2014-11-02T01:30:00-08:00').parseZone();
- m.startOf('h');
- assert.equal(m.format(), '2014-11-02T01:00:00-08:00', 'startOf(\'hour\') after +1');
- // note that utc offset is -7
- m = moment('2014-11-02T01:30:00-07:00').parseZone();
- m.startOf('h');
- assert.equal(m.format(), '2014-11-02T01:00:00-07:00', 'startOf(\'hour\') before +1');
- moment.updateOffset = oldUpdateOffset;
- });
- test('endOf millisecond and no-arg', function (assert) {
- var m = moment();
- assert.equal(+m, +m.clone().endOf(), 'endOf without argument should change time');
- assert.equal(+m, +m.clone().endOf('ms'), 'endOf with ms argument should change time');
- assert.equal(+m, +m.clone().endOf('millisecond'), 'endOf with millisecond argument should change time');
- assert.equal(+m, +m.clone().endOf('milliseconds'), 'endOf with milliseconds argument should change time');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('string prototype');
- test('string prototype overrides call', function (assert) {
- var prior = String.prototype.call, b;
- String.prototype.call = function () {
- return null;
- };
- b = moment(new Date(2011, 7, 28, 15, 25, 50, 125));
- assert.equal(b.format('MMMM Do YYYY, h:mm a'), 'August 28th 2011, 3:25 pm');
- String.prototype.call = prior;
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('to type');
- test('toObject', function (assert) {
- var expected = {
- years:2010,
- months:3,
- date:5,
- hours:15,
- minutes:10,
- seconds:3,
- milliseconds:123
- };
- assert.deepEqual(moment(expected).toObject(), expected, 'toObject invalid');
- });
- test('toArray', function (assert) {
- var expected = [2014, 11, 26, 11, 46, 58, 17];
- assert.deepEqual(moment(expected).toArray(), expected, 'toArray invalid');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('utc');
- test('utc and local', function (assert) {
- var m = moment(Date.UTC(2011, 1, 2, 3, 4, 5, 6)), offset, expected;
- m.utc();
- // utc
- assert.equal(m.date(), 2, 'the day should be correct for utc');
- assert.equal(m.day(), 3, 'the date should be correct for utc');
- assert.equal(m.hours(), 3, 'the hours should be correct for utc');
- // local
- m.local();
- if (m.zone() > 180) {
- assert.equal(m.date(), 1, 'the date should be correct for local');
- assert.equal(m.day(), 2, 'the day should be correct for local');
- } else {
- assert.equal(m.date(), 2, 'the date should be correct for local');
- assert.equal(m.day(), 3, 'the day should be correct for local');
- }
- offset = Math.floor(m.utcOffset() / 60);
- expected = (24 + 3 + offset) % 24;
- assert.equal(m.hours(), expected, 'the hours (' + m.hours() + ') should be correct for local');
- assert.equal(moment().utc().utcOffset(), 0, 'timezone in utc should always be zero');
- });
- test('creating with utc and no arguments', function (assert) {
- var startOfTest = new Date().valueOf(),
- momentDefaultUtcTime = moment.utc().valueOf(),
- afterMomentCreationTime = new Date().valueOf();
- assert.ok(startOfTest <= momentDefaultUtcTime, 'moment UTC default time should be now, not in the past');
- assert.ok(momentDefaultUtcTime <= afterMomentCreationTime, 'moment UTC default time should be now, not in the future');
- });
- test('creating with utc and a date parameter array', function (assert) {
- var m = moment.utc([2011, 1, 2, 3, 4, 5, 6]);
- assert.equal(m.date(), 2, 'the day should be correct for utc array');
- assert.equal(m.hours(), 3, 'the hours should be correct for utc array');
- m = moment.utc('2011-02-02 3:04:05', 'YYYY-MM-DD HH:mm:ss');
- assert.equal(m.date(), 2, 'the day should be correct for utc parsing format');
- assert.equal(m.hours(), 3, 'the hours should be correct for utc parsing format');
- m = moment.utc('2011-02-02T03:04:05+00:00');
- assert.equal(m.date(), 2, 'the day should be correct for utc parsing iso');
- assert.equal(m.hours(), 3, 'the hours should be correct for utc parsing iso');
- });
- test('creating with utc without timezone', function (assert) {
- var m = moment.utc('2012-01-02T08:20:00');
- assert.equal(m.date(), 2, 'the day should be correct for utc parse without timezone');
- assert.equal(m.hours(), 8, 'the hours should be correct for utc parse without timezone');
- m = moment.utc('2012-01-02T08:20:00+09:00');
- assert.equal(m.date(), 1, 'the day should be correct for utc parse with timezone');
- assert.equal(m.hours(), 23, 'the hours should be correct for utc parse with timezone');
- });
- test('cloning with utc offset', function (assert) {
- var m = moment.utc('2012-01-02T08:20:00');
- assert.equal(moment.utc(m)._isUTC, true, 'the local offset should be converted to UTC');
- assert.equal(moment.utc(m.clone().utc())._isUTC, true, 'the local offset should stay in UTC');
- m.utcOffset(120);
- assert.equal(moment.utc(m)._isUTC, true, 'the explicit utc offset should stay in UTC');
- assert.equal(moment.utc(m).utcOffset(), 0, 'the explicit utc offset should have an offset of 0');
- });
- test('weekday with utc', function (assert) {
- assert.equal(
- moment('2013-09-15T00:00:00Z').utc().weekday(), // first minute of the day
- moment('2013-09-15T23:59:00Z').utc().weekday(), // last minute of the day
- 'a UTC-moment\'s .weekday() should not be affected by the local timezone'
- );
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('utc offset');
- test('setter / getter blackbox', function (assert) {
- var m = moment([2010]);
- assert.equal(m.clone().utcOffset(0).utcOffset(), 0, 'utcOffset 0');
- assert.equal(m.clone().utcOffset(1).utcOffset(), 60, 'utcOffset 1 is 60');
- assert.equal(m.clone().utcOffset(60).utcOffset(), 60, 'utcOffset 60');
- assert.equal(m.clone().utcOffset('+01:00').utcOffset(), 60, 'utcOffset +01:00 is 60');
- assert.equal(m.clone().utcOffset('+0100').utcOffset(), 60, 'utcOffset +0100 is 60');
- assert.equal(m.clone().utcOffset(-1).utcOffset(), -60, 'utcOffset -1 is -60');
- assert.equal(m.clone().utcOffset(-60).utcOffset(), -60, 'utcOffset -60');
- assert.equal(m.clone().utcOffset('-01:00').utcOffset(), -60, 'utcOffset -01:00 is -60');
- assert.equal(m.clone().utcOffset('-0100').utcOffset(), -60, 'utcOffset -0100 is -60');
- assert.equal(m.clone().utcOffset(1.5).utcOffset(), 90, 'utcOffset 1.5 is 90');
- assert.equal(m.clone().utcOffset(90).utcOffset(), 90, 'utcOffset 1.5 is 90');
- assert.equal(m.clone().utcOffset('+01:30').utcOffset(), 90, 'utcOffset +01:30 is 90');
- assert.equal(m.clone().utcOffset('+0130').utcOffset(), 90, 'utcOffset +0130 is 90');
- assert.equal(m.clone().utcOffset(-1.5).utcOffset(), -90, 'utcOffset -1.5');
- assert.equal(m.clone().utcOffset(-90).utcOffset(), -90, 'utcOffset -90');
- assert.equal(m.clone().utcOffset('-01:30').utcOffset(), -90, 'utcOffset +01:30 is 90');
- assert.equal(m.clone().utcOffset('-0130').utcOffset(), -90, 'utcOffset +0130 is 90');
- assert.equal(m.clone().utcOffset('+00:10').utcOffset(), 10, 'utcOffset +00:10 is 10');
- assert.equal(m.clone().utcOffset('-00:10').utcOffset(), -10, 'utcOffset +00:10 is 10');
- assert.equal(m.clone().utcOffset('+0010').utcOffset(), 10, 'utcOffset +0010 is 10');
- assert.equal(m.clone().utcOffset('-0010').utcOffset(), -10, 'utcOffset +0010 is 10');
- });
- test('utcOffset shorthand hours -> minutes', function (assert) {
- var i;
- for (i = -15; i <= 15; ++i) {
- assert.equal(moment().utcOffset(i).utcOffset(), i * 60,
- '' + i + ' -> ' + i * 60);
- }
- assert.equal(moment().utcOffset(-16).utcOffset(), -16, '-16 -> -16');
- assert.equal(moment().utcOffset(16).utcOffset(), 16, '16 -> 16');
- });
- test('isLocal, isUtc, isUtcOffset', function (assert) {
- assert.ok(moment().isLocal(), 'moment() creates objects in local time');
- assert.ok(!moment.utc().isLocal(), 'moment.utc creates objects NOT in local time');
- assert.ok(moment.utc().local().isLocal(), 'moment.fn.local() converts to local time');
- assert.ok(!moment().utcOffset(5).isLocal(), 'moment.fn.utcOffset(N) puts objects NOT in local time');
- assert.ok(moment().utcOffset(5).local().isLocal(), 'moment.fn.local() converts to local time');
- assert.ok(moment.utc().isUtc(), 'moment.utc() creates objects in utc time');
- assert.ok(moment().utcOffset(0).isUtc(), 'utcOffset(0) is equivalent to utc mode');
- assert.ok(!moment().utcOffset(1).isUtc(), 'utcOffset(1) is NOT equivalent to utc mode');
- assert.ok(!moment().isUtcOffset(), 'moment() creates objects NOT in utc-offset mode');
- assert.ok(moment.utc().isUtcOffset(), 'moment.utc() creates objects in utc-offset mode');
- assert.ok(moment().utcOffset(3).isUtcOffset(), 'utcOffset(N != 0) creates objects in utc-offset mode');
- assert.ok(moment().utcOffset(0).isUtcOffset(), 'utcOffset(0) creates objects in utc-offset mode');
- });
- test('isUTC', function (assert) {
- assert.ok(moment.utc().isUTC(), 'moment.utc() creates objects in utc time');
- assert.ok(moment().utcOffset(0).isUTC(), 'utcOffset(0) is equivalent to utc mode');
- assert.ok(!moment().utcOffset(1).isUTC(), 'utcOffset(1) is NOT equivalent to utc mode');
- });
- test('change hours when changing the utc offset', function (assert) {
- var m = moment.utc([2000, 0, 1, 6]);
- assert.equal(m.hour(), 6, 'UTC 6AM should be 6AM at +0000');
- // sanity check
- m.utcOffset(0);
- assert.equal(m.hour(), 6, 'UTC 6AM should be 6AM at +0000');
- m.utcOffset(-60);
- assert.equal(m.hour(), 5, 'UTC 6AM should be 5AM at -0100');
- m.utcOffset(60);
- assert.equal(m.hour(), 7, 'UTC 6AM should be 7AM at +0100');
- });
- test('change minutes when changing the utc offset', function (assert) {
- var m = moment.utc([2000, 0, 1, 6, 31]);
- m.utcOffset(0);
- assert.equal(m.format('HH:mm'), '06:31', 'UTC 6:31AM should be 6:31AM at +0000');
- m.utcOffset(-30);
- assert.equal(m.format('HH:mm'), '06:01', 'UTC 6:31AM should be 6:01AM at -0030');
- m.utcOffset(30);
- assert.equal(m.format('HH:mm'), '07:01', 'UTC 6:31AM should be 7:01AM at +0030');
- m.utcOffset(-1380);
- assert.equal(m.format('HH:mm'), '07:31', 'UTC 6:31AM should be 7:31AM at +1380');
- });
- test('distance from the unix epoch', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA),
- zoneC = moment(zoneA),
- zoneD = moment(zoneA),
- zoneE = moment(zoneA);
- zoneB.utc();
- assert.equal(+zoneA, +zoneB, 'moment should equal moment.utc');
- zoneC.utcOffset(60);
- assert.equal(+zoneA, +zoneC, 'moment should equal moment.utcOffset(60)');
- zoneD.utcOffset(-480);
- assert.equal(+zoneA, +zoneD,
- 'moment should equal moment.utcOffset(-480)');
- zoneE.utcOffset(-1000);
- assert.equal(+zoneA, +zoneE,
- 'moment should equal moment.utcOffset(-1000)');
- });
- test('update offset after changing any values', function (assert) {
- var oldOffset = moment.updateOffset,
- m = moment.utc([2000, 6, 1]);
- moment.updateOffset = function (mom, keepTime) {
- if (mom.__doChange) {
- if (+mom > 962409600000) {
- mom.utcOffset(-120, keepTime);
- } else {
- mom.utcOffset(-60, keepTime);
- }
- }
- };
- assert.equal(m.format('ZZ'), '+0000', 'should be at +0000');
- assert.equal(m.format('HH:mm'), '00:00', 'should start 12AM at +0000 timezone');
- m.__doChange = true;
- m.add(1, 'h');
- assert.equal(m.format('ZZ'), '-0200', 'should be at -0200');
- assert.equal(m.format('HH:mm'), '23:00', '1AM at +0000 should be 11PM at -0200 timezone');
- m.subtract(1, 'h');
- assert.equal(m.format('ZZ'), '-0100', 'should be at -0100');
- assert.equal(m.format('HH:mm'), '23:00', '12AM at +0000 should be 11PM at -0100 timezone');
- moment.updateOffset = oldOffset;
- });
- //////////////////
- test('getters and setters', function (assert) {
- var a = moment([2011, 5, 20]);
- assert.equal(a.clone().utcOffset(-120).year(2012).year(), 2012, 'should get and set year correctly');
- assert.equal(a.clone().utcOffset(-120).month(1).month(), 1, 'should get and set month correctly');
- assert.equal(a.clone().utcOffset(-120).date(2).date(), 2, 'should get and set date correctly');
- assert.equal(a.clone().utcOffset(-120).day(1).day(), 1, 'should get and set day correctly');
- assert.equal(a.clone().utcOffset(-120).hour(1).hour(), 1, 'should get and set hour correctly');
- assert.equal(a.clone().utcOffset(-120).minute(1).minute(), 1, 'should get and set minute correctly');
- });
- test('getters', function (assert) {
- var a = moment.utc([2012, 0, 1, 0, 0, 0]);
- assert.equal(a.clone().utcOffset(-120).year(), 2011, 'should get year correctly');
- assert.equal(a.clone().utcOffset(-120).month(), 11, 'should get month correctly');
- assert.equal(a.clone().utcOffset(-120).date(), 31, 'should get date correctly');
- assert.equal(a.clone().utcOffset(-120).hour(), 22, 'should get hour correctly');
- assert.equal(a.clone().utcOffset(-120).minute(), 0, 'should get minute correctly');
- assert.equal(a.clone().utcOffset(120).year(), 2012, 'should get year correctly');
- assert.equal(a.clone().utcOffset(120).month(), 0, 'should get month correctly');
- assert.equal(a.clone().utcOffset(120).date(), 1, 'should get date correctly');
- assert.equal(a.clone().utcOffset(120).hour(), 2, 'should get hour correctly');
- assert.equal(a.clone().utcOffset(120).minute(), 0, 'should get minute correctly');
- assert.equal(a.clone().utcOffset(90).year(), 2012, 'should get year correctly');
- assert.equal(a.clone().utcOffset(90).month(), 0, 'should get month correctly');
- assert.equal(a.clone().utcOffset(90).date(), 1, 'should get date correctly');
- assert.equal(a.clone().utcOffset(90).hour(), 1, 'should get hour correctly');
- assert.equal(a.clone().utcOffset(90).minute(), 30, 'should get minute correctly');
- });
- test('from', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA).utcOffset(-720),
- zoneC = moment(zoneA).utcOffset(-360),
- zoneD = moment(zoneA).utcOffset(690),
- other = moment(zoneA).add(35, 'm');
- assert.equal(zoneA.from(other), zoneB.from(other), 'moment#from should be the same in all zones');
- assert.equal(zoneA.from(other), zoneC.from(other), 'moment#from should be the same in all zones');
- assert.equal(zoneA.from(other), zoneD.from(other), 'moment#from should be the same in all zones');
- });
- test('diff', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA).utcOffset(-720),
- zoneC = moment(zoneA).utcOffset(-360),
- zoneD = moment(zoneA).utcOffset(690),
- other = moment(zoneA).add(35, 'm');
- assert.equal(zoneA.diff(other), zoneB.diff(other), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other), zoneC.diff(other), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other), zoneD.diff(other), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'minute', true), zoneB.diff(other, 'minute', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'minute', true), zoneC.diff(other, 'minute', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'minute', true), zoneD.diff(other, 'minute', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'hour', true), zoneB.diff(other, 'hour', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'hour', true), zoneC.diff(other, 'hour', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'hour', true), zoneD.diff(other, 'hour', true), 'moment#diff should be the same in all zones');
- });
- test('unix offset and timestamp', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA).utcOffset(-720),
- zoneC = moment(zoneA).utcOffset(-360),
- zoneD = moment(zoneA).utcOffset(690);
- assert.equal(zoneA.unix(), zoneB.unix(), 'moment#unix should be the same in all zones');
- assert.equal(zoneA.unix(), zoneC.unix(), 'moment#unix should be the same in all zones');
- assert.equal(zoneA.unix(), zoneD.unix(), 'moment#unix should be the same in all zones');
- assert.equal(+zoneA, +zoneB, 'moment#valueOf should be the same in all zones');
- assert.equal(+zoneA, +zoneC, 'moment#valueOf should be the same in all zones');
- assert.equal(+zoneA, +zoneD, 'moment#valueOf should be the same in all zones');
- });
- test('cloning', function (assert) {
- assert.equal(moment().utcOffset(-120).clone().utcOffset(), -120,
- 'explicit cloning should retain the offset');
- assert.equal(moment().utcOffset(120).clone().utcOffset(), 120,
- 'explicit cloning should retain the offset');
- assert.equal(moment(moment().utcOffset(-120)).utcOffset(), -120,
- 'implicit cloning should retain the offset');
- assert.equal(moment(moment().utcOffset(120)).utcOffset(), 120,
- 'implicit cloning should retain the offset');
- });
- test('start of / end of', function (assert) {
- var a = moment.utc([2010, 1, 2, 0, 0, 0]).utcOffset(-450);
- assert.equal(a.clone().startOf('day').hour(), 0,
- 'start of day should work on moments with utc offset');
- assert.equal(a.clone().startOf('day').minute(), 0,
- 'start of day should work on moments with utc offset');
- assert.equal(a.clone().startOf('hour').minute(), 0,
- 'start of hour should work on moments with utc offset');
- assert.equal(a.clone().endOf('day').hour(), 23,
- 'end of day should work on moments with utc offset');
- assert.equal(a.clone().endOf('day').minute(), 59,
- 'end of day should work on moments with utc offset');
- assert.equal(a.clone().endOf('hour').minute(), 59,
- 'end of hour should work on moments with utc offset');
- });
- test('reset offset with moment#utc', function (assert) {
- var a = moment.utc([2012]).utcOffset(-480);
- assert.equal(a.clone().hour(), 16, 'different utc offset should have different hour');
- assert.equal(a.clone().utc().hour(), 0, 'calling moment#utc should reset the offset');
- });
- test('reset offset with moment#local', function (assert) {
- var a = moment([2012]).utcOffset(-480);
- assert.equal(a.clone().local().hour(), 0, 'calling moment#local should reset the offset');
- });
- test('toDate', function (assert) {
- var zoneA = new Date(),
- zoneB = moment(zoneA).utcOffset(-720).toDate(),
- zoneC = moment(zoneA).utcOffset(-360).toDate(),
- zoneD = moment(zoneA).utcOffset(690).toDate();
- assert.equal(+zoneA, +zoneB, 'moment#toDate should output a date with the right unix timestamp');
- assert.equal(+zoneA, +zoneC, 'moment#toDate should output a date with the right unix timestamp');
- assert.equal(+zoneA, +zoneD, 'moment#toDate should output a date with the right unix timestamp');
- });
- test('same / before / after', function (assert) {
- var zoneA = moment().utc(),
- zoneB = moment(zoneA).utcOffset(-120),
- zoneC = moment(zoneA).utcOffset(120);
- assert.ok(zoneA.isSame(zoneB), 'two moments with different offsets should be the same');
- assert.ok(zoneA.isSame(zoneC), 'two moments with different offsets should be the same');
- assert.ok(zoneA.isSame(zoneB, 'hour'), 'two moments with different offsets should be the same hour');
- assert.ok(zoneA.isSame(zoneC, 'hour'), 'two moments with different offsets should be the same hour');
- zoneA.add(1, 'hour');
- assert.ok(zoneA.isAfter(zoneB), 'isAfter should work with two moments with different offsets');
- assert.ok(zoneA.isAfter(zoneC), 'isAfter should work with two moments with different offsets');
- assert.ok(zoneA.isAfter(zoneB, 'hour'), 'isAfter:hour should work with two moments with different offsets');
- assert.ok(zoneA.isAfter(zoneC, 'hour'), 'isAfter:hour should work with two moments with different offsets');
- zoneA.subtract(2, 'hour');
- assert.ok(zoneA.isBefore(zoneB), 'isBefore should work with two moments with different offsets');
- assert.ok(zoneA.isBefore(zoneC), 'isBefore should work with two moments with different offsets');
- assert.ok(zoneA.isBefore(zoneB, 'hour'), 'isBefore:hour should work with two moments with different offsets');
- assert.ok(zoneA.isBefore(zoneC, 'hour'), 'isBefore:hour should work with two moments with different offsets');
- });
- test('add / subtract over dst', function (assert) {
- var oldOffset = moment.updateOffset,
- m = moment.utc([2000, 2, 31, 3]);
- moment.updateOffset = function (mom, keepTime) {
- if (mom.clone().utc().month() > 2) {
- mom.utcOffset(60, keepTime);
- } else {
- mom.utcOffset(0, keepTime);
- }
- };
- assert.equal(m.hour(), 3, 'should start at 00:00');
- m.add(24, 'hour');
- assert.equal(m.hour(), 4, 'adding 24 hours should disregard dst');
- m.subtract(24, 'hour');
- assert.equal(m.hour(), 3, 'subtracting 24 hours should disregard dst');
- m.add(1, 'day');
- assert.equal(m.hour(), 3, 'adding 1 day should have the same hour');
- m.subtract(1, 'day');
- assert.equal(m.hour(), 3, 'subtracting 1 day should have the same hour');
- m.add(1, 'month');
- assert.equal(m.hour(), 3, 'adding 1 month should have the same hour');
- m.subtract(1, 'month');
- assert.equal(m.hour(), 3, 'subtracting 1 month should have the same hour');
- moment.updateOffset = oldOffset;
- });
- test('isDST', function (assert) {
- var oldOffset = moment.updateOffset;
- moment.updateOffset = function (mom, keepTime) {
- if (mom.month() > 2 && mom.month() < 9) {
- mom.utcOffset(60, keepTime);
- } else {
- mom.utcOffset(0, keepTime);
- }
- };
- assert.ok(!moment().month(0).isDST(), 'Jan should not be summer dst');
- assert.ok(moment().month(6).isDST(), 'Jul should be summer dst');
- assert.ok(!moment().month(11).isDST(), 'Dec should not be summer dst');
- moment.updateOffset = function (mom) {
- if (mom.month() > 2 && mom.month() < 9) {
- mom.utcOffset(0);
- } else {
- mom.utcOffset(60);
- }
- };
- assert.ok(moment().month(0).isDST(), 'Jan should be winter dst');
- assert.ok(!moment().month(6).isDST(), 'Jul should not be winter dst');
- assert.ok(moment().month(11).isDST(), 'Dec should be winter dst');
- moment.updateOffset = oldOffset;
- });
- test('zone names', function (assert) {
- assert.equal(moment().zoneAbbr(), '', 'Local zone abbr should be empty');
- assert.equal(moment().format('z'), '', 'Local zone formatted abbr should be empty');
- assert.equal(moment().zoneName(), '', 'Local zone name should be empty');
- assert.equal(moment().format('zz'), '', 'Local zone formatted name should be empty');
- assert.equal(moment.utc().zoneAbbr(), 'UTC', 'UTC zone abbr should be UTC');
- assert.equal(moment.utc().format('z'), 'UTC', 'UTC zone formatted abbr should be UTC');
- assert.equal(moment.utc().zoneName(), 'Coordinated Universal Time', 'UTC zone abbr should be Coordinated Universal Time');
- assert.equal(moment.utc().format('zz'), 'Coordinated Universal Time', 'UTC zone formatted abbr should be Coordinated Universal Time');
- });
- test('hours alignment with UTC', function (assert) {
- assert.equal(moment().utcOffset(-120).hasAlignedHourOffset(), true);
- assert.equal(moment().utcOffset(180).hasAlignedHourOffset(), true);
- assert.equal(moment().utcOffset(-90).hasAlignedHourOffset(), false);
- assert.equal(moment().utcOffset(90).hasAlignedHourOffset(), false);
- });
- test('hours alignment with other zone', function (assert) {
- var m = moment().utcOffset(-120);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-90)), false);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(90)), false);
- m = moment().utcOffset(-90);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-180)), false);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(180)), false);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-30)), true);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(30)), true);
- m = moment().utcOffset(60);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-90)), false);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(90)), false);
- m = moment().utcOffset(-25);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(35)), true);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-85)), true);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(-35)), false);
- assert.equal(m.hasAlignedHourOffset(moment().utcOffset(85)), false);
- });
- test('parse zone', function (assert) {
- var m = moment('2013-01-01T00:00:00-13:00').parseZone();
- assert.equal(m.utcOffset(), -13 * 60);
- assert.equal(m.hours(), 0);
- });
- test('parse zone static', function (assert) {
- var m = moment.parseZone('2013-01-01T00:00:00-13:00');
- assert.equal(m.utcOffset(), -13 * 60);
- assert.equal(m.hours(), 0);
- });
- test('parse zone with more arguments', function (assert) {
- var m;
- m = moment.parseZone('2013 01 01 05 -13:00', 'YYYY MM DD HH ZZ');
- assert.equal(m.format(), '2013-01-01T05:00:00-13:00', 'accept input and format');
- m = moment.parseZone('2013-01-01-13:00', 'YYYY MM DD ZZ', true);
- assert.equal(m.isValid(), false, 'accept input, format and strict flag');
- m = moment.parseZone('2013-01-01-13:00', ['DD MM YYYY ZZ', 'YYYY MM DD ZZ']);
- assert.equal(m.format(), '2013-01-01T00:00:00-13:00', 'accept input and array of formats');
- });
- test('parse zone with a timezone from the format string', function (assert) {
- var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY ZZ #####').parseZone();
- assert.equal(m.utcOffset(), -4 * 60);
- });
- test('parse zone without a timezone included in the format string', function (assert) {
- var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY').parseZone();
- assert.equal(m.utcOffset(), 11 * 60);
- });
- test('timezone format', function (assert) {
- assert.equal(moment().utcOffset(60).format('ZZ'), '+0100', '-60 -> +0100');
- assert.equal(moment().utcOffset(90).format('ZZ'), '+0130', '-90 -> +0130');
- assert.equal(moment().utcOffset(120).format('ZZ'), '+0200', '-120 -> +0200');
- assert.equal(moment().utcOffset(-60).format('ZZ'), '-0100', '+60 -> -0100');
- assert.equal(moment().utcOffset(-90).format('ZZ'), '-0130', '+90 -> -0130');
- assert.equal(moment().utcOffset(-120).format('ZZ'), '-0200', '+120 -> -0200');
- });
- test('local to utc, keepLocalTime = true', function (assert) {
- var m = moment(),
- fmt = 'YYYY-DD-MM HH:mm:ss';
- assert.equal(m.clone().utc(true).format(fmt), m.format(fmt), 'local to utc failed to keep local time');
- });
- test('local to utc, keepLocalTime = false', function (assert) {
- var m = moment();
- assert.equal(m.clone().utc().valueOf(), m.valueOf(), 'local to utc failed to keep utc time (implicit)');
- assert.equal(m.clone().utc(false).valueOf(), m.valueOf(), 'local to utc failed to keep utc time (explicit)');
- });
- test('local to zone, keepLocalTime = true', function (assert) {
- var m = moment(),
- fmt = 'YYYY-DD-MM HH:mm:ss',
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- assert.equal(m.clone().utcOffset(z * 60, true).format(fmt),
- m.format(fmt),
- 'local to utcOffset(' + z + ':00) failed to keep local time');
- }
- });
- test('local to zone, keepLocalTime = false', function (assert) {
- var m = moment(),
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- assert.equal(m.clone().utcOffset(z * 60).valueOf(),
- m.valueOf(),
- 'local to utcOffset(' + z + ':00) failed to keep utc time (implicit)');
- assert.equal(m.clone().utcOffset(z * 60, false).valueOf(),
- m.valueOf(),
- 'local to utcOffset(' + z + ':00) failed to keep utc time (explicit)');
- }
- });
- test('utc to local, keepLocalTime = true', function (assert) {
- var um = moment.utc(),
- fmt = 'YYYY-DD-MM HH:mm:ss';
- assert.equal(um.clone().local(true).format(fmt), um.format(fmt), 'utc to local failed to keep local time');
- });
- test('utc to local, keepLocalTime = false', function (assert) {
- var um = moment.utc();
- assert.equal(um.clone().local().valueOf(), um.valueOf(), 'utc to local failed to keep utc time (implicit)');
- assert.equal(um.clone().local(false).valueOf(), um.valueOf(), 'utc to local failed to keep utc time (explicit)');
- });
- test('zone to local, keepLocalTime = true', function (assert) {
- var m = moment(),
- fmt = 'YYYY-DD-MM HH:mm:ss',
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- m.utcOffset(z * 60);
- assert.equal(m.clone().local(true).format(fmt),
- m.format(fmt),
- 'utcOffset(' + z + ':00) to local failed to keep local time');
- }
- });
- test('zone to local, keepLocalTime = false', function (assert) {
- var m = moment(),
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- m.utcOffset(z * 60);
- assert.equal(m.clone().local(false).valueOf(), m.valueOf(),
- 'utcOffset(' + z + ':00) to local failed to keep utc time (explicit)');
- assert.equal(m.clone().local().valueOf(), m.valueOf(),
- 'utcOffset(' + z + ':00) to local failed to keep utc time (implicit)');
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('week year');
- test('iso week year', function (assert) {
- // Some examples taken from http://en.wikipedia.org/wiki/ISO_week
- assert.equal(moment([2005, 0, 1]).isoWeekYear(), 2004);
- assert.equal(moment([2005, 0, 2]).isoWeekYear(), 2004);
- assert.equal(moment([2005, 0, 3]).isoWeekYear(), 2005);
- assert.equal(moment([2005, 11, 31]).isoWeekYear(), 2005);
- assert.equal(moment([2006, 0, 1]).isoWeekYear(), 2005);
- assert.equal(moment([2006, 0, 2]).isoWeekYear(), 2006);
- assert.equal(moment([2007, 0, 1]).isoWeekYear(), 2007);
- assert.equal(moment([2007, 11, 30]).isoWeekYear(), 2007);
- assert.equal(moment([2007, 11, 31]).isoWeekYear(), 2008);
- assert.equal(moment([2008, 0, 1]).isoWeekYear(), 2008);
- assert.equal(moment([2008, 11, 28]).isoWeekYear(), 2008);
- assert.equal(moment([2008, 11, 29]).isoWeekYear(), 2009);
- assert.equal(moment([2008, 11, 30]).isoWeekYear(), 2009);
- assert.equal(moment([2008, 11, 31]).isoWeekYear(), 2009);
- assert.equal(moment([2009, 0, 1]).isoWeekYear(), 2009);
- assert.equal(moment([2010, 0, 1]).isoWeekYear(), 2009);
- assert.equal(moment([2010, 0, 2]).isoWeekYear(), 2009);
- assert.equal(moment([2010, 0, 3]).isoWeekYear(), 2009);
- assert.equal(moment([2010, 0, 4]).isoWeekYear(), 2010);
- });
- test('week year', function (assert) {
- // Some examples taken from http://en.wikipedia.org/wiki/ISO_week
- moment.locale('dow: 1,doy: 4', {week: {dow: 1, doy: 4}}); // like iso
- assert.equal(moment([2005, 0, 1]).weekYear(), 2004);
- assert.equal(moment([2005, 0, 2]).weekYear(), 2004);
- assert.equal(moment([2005, 0, 3]).weekYear(), 2005);
- assert.equal(moment([2005, 11, 31]).weekYear(), 2005);
- assert.equal(moment([2006, 0, 1]).weekYear(), 2005);
- assert.equal(moment([2006, 0, 2]).weekYear(), 2006);
- assert.equal(moment([2007, 0, 1]).weekYear(), 2007);
- assert.equal(moment([2007, 11, 30]).weekYear(), 2007);
- assert.equal(moment([2007, 11, 31]).weekYear(), 2008);
- assert.equal(moment([2008, 0, 1]).weekYear(), 2008);
- assert.equal(moment([2008, 11, 28]).weekYear(), 2008);
- assert.equal(moment([2008, 11, 29]).weekYear(), 2009);
- assert.equal(moment([2008, 11, 30]).weekYear(), 2009);
- assert.equal(moment([2008, 11, 31]).weekYear(), 2009);
- assert.equal(moment([2009, 0, 1]).weekYear(), 2009);
- assert.equal(moment([2010, 0, 1]).weekYear(), 2009);
- assert.equal(moment([2010, 0, 2]).weekYear(), 2009);
- assert.equal(moment([2010, 0, 3]).weekYear(), 2009);
- assert.equal(moment([2010, 0, 4]).weekYear(), 2010);
- moment.locale('dow: 1,doy: 7', {week: {dow: 1, doy: 7}});
- assert.equal(moment([2004, 11, 26]).weekYear(), 2004);
- assert.equal(moment([2004, 11, 27]).weekYear(), 2005);
- assert.equal(moment([2005, 11, 25]).weekYear(), 2005);
- assert.equal(moment([2005, 11, 26]).weekYear(), 2006);
- assert.equal(moment([2006, 11, 31]).weekYear(), 2006);
- assert.equal(moment([2007, 0, 1]).weekYear(), 2007);
- assert.equal(moment([2007, 11, 30]).weekYear(), 2007);
- assert.equal(moment([2007, 11, 31]).weekYear(), 2008);
- assert.equal(moment([2008, 11, 28]).weekYear(), 2008);
- assert.equal(moment([2008, 11, 29]).weekYear(), 2009);
- assert.equal(moment([2009, 11, 27]).weekYear(), 2009);
- assert.equal(moment([2009, 11, 28]).weekYear(), 2010);
- });
- // Verifies that the week number, week day computation is correct for all dow, doy combinations
- test('week year roundtrip', function (assert) {
- var dow, doy, wd, m;
- for (dow = 0; dow < 7; ++dow) {
- for (doy = dow; doy < dow + 7; ++doy) {
- for (wd = 0; wd < 7; ++wd) {
- moment.locale('dow: ' + dow + ', doy: ' + doy, {week: {dow: dow, doy: doy}});
- // We use the 10th week as the 1st one can spill to the previous year
- m = moment('2015 10 ' + wd, 'gggg w d', true);
- assert.equal(m.format('gggg w d'), '2015 10 ' + wd, 'dow: ' + dow + ' doy: ' + doy + ' wd: ' + wd);
- m = moment('2015 10 ' + wd, 'gggg w e', true);
- assert.equal(m.format('gggg w e'), '2015 10 ' + wd, 'dow: ' + dow + ' doy: ' + doy + ' wd: ' + wd);
- }
- }
- }
- });
- test('week numbers 2012/2013', function (assert) {
- moment.locale('dow: 6, doy: 12', {week: {dow: 6, doy: 12}});
- assert.equal(52, moment('2012-12-28', 'YYYY-MM-DD').week(), '2012-12-28 is week 52'); // 51 -- should be 52?
- assert.equal(1, moment('2012-12-29', 'YYYY-MM-DD').week(), '2012-12-29 is week 1'); // 52 -- should be 1
- assert.equal(1, moment('2013-01-01', 'YYYY-MM-DD').week(), '2013-01-01 is week 1'); // 52 -- should be 1
- assert.equal(2, moment('2013-01-08', 'YYYY-MM-DD').week(), '2013-01-08 is week 2'); // 53 -- should be 2
- assert.equal(2, moment('2013-01-11', 'YYYY-MM-DD').week(), '2013-01-11 is week 2'); // 53 -- should be 2
- assert.equal(3, moment('2013-01-12', 'YYYY-MM-DD').week(), '2013-01-12 is week 3'); // 1 -- should be 3
- assert.equal(52, moment('2012-01-01', 'YYYY-MM-DD').weeksInYear(), 'weeks in 2012 are 52'); // 52
- });
- test('week year overflows', function (assert) {
- assert.equal('2005-01-01', moment.utc('2004-W53-6', moment.ISO_8601, true).format('YYYY-MM-DD'), '2004-W53-6 is 1st Jan 2005');
- assert.equal('2007-12-31', moment.utc('2008-W01-1', moment.ISO_8601, true).format('YYYY-MM-DD'), '2008-W01-1 is 31st Dec 2007');
- });
- test('weeks overflow', function (assert) {
- assert.equal(7, moment.utc('2004-W54-1', moment.ISO_8601, true).parsingFlags().overflow, '2004 has only 53 weeks');
- assert.equal(7, moment.utc('2004-W00-1', moment.ISO_8601, true).parsingFlags().overflow, 'there is no 0th week');
- });
- test('weekday overflow', function (assert) {
- assert.equal(8, moment.utc('2004-W30-0', moment.ISO_8601, true).parsingFlags().overflow, 'there is no 0 iso weekday');
- assert.equal(8, moment.utc('2004-W30-8', moment.ISO_8601, true).parsingFlags().overflow, 'there is no 8 iso weekday');
- assert.equal(8, moment.utc('2004-w30-7', 'gggg-[w]ww-e', true).parsingFlags().overflow, 'there is no 7 \'e\' weekday');
- assert.equal(8, moment.utc('2004-w30-7', 'gggg-[w]ww-d', true).parsingFlags().overflow, 'there is no 7 \'d\' weekday');
- });
- test('week year setter works', function (assert) {
- for (var year = 2000; year <= 2020; year += 1) {
- assert.equal(moment.utc('2012-12-31T00:00:00.000Z').isoWeekYear(year).isoWeekYear(), year, 'setting iso-week-year to ' + year);
- assert.equal(moment.utc('2012-12-31T00:00:00.000Z').weekYear(year).weekYear(), year, 'setting week-year to ' + year);
- }
- assert.equal(moment.utc('2004-W53-1', moment.ISO_8601, true).isoWeekYear(2013).format('GGGG-[W]WW-E'), '2013-W52-1', '2004-W53-1 to 2013');
- assert.equal(moment.utc('2004-W53-1', moment.ISO_8601, true).isoWeekYear(2020).format('GGGG-[W]WW-E'), '2020-W53-1', '2004-W53-1 to 2020');
- assert.equal(moment.utc('2005-W52-1', moment.ISO_8601, true).isoWeekYear(2004).format('GGGG-[W]WW-E'), '2004-W52-1', '2005-W52-1 to 2004');
- assert.equal(moment.utc('2013-W30-4', moment.ISO_8601, true).isoWeekYear(2015).format('GGGG-[W]WW-E'), '2015-W30-4', '2013-W30-4 to 2015');
- assert.equal(moment.utc('2005-w53-0', 'gggg-[w]ww-e', true).weekYear(2013).format('gggg-[w]ww-e'), '2013-w52-0', '2005-w53-0 to 2013');
- assert.equal(moment.utc('2005-w53-0', 'gggg-[w]ww-e', true).weekYear(2016).format('gggg-[w]ww-e'), '2016-w53-0', '2005-w53-0 to 2016');
- assert.equal(moment.utc('2004-w52-0', 'gggg-[w]ww-e', true).weekYear(2005).format('gggg-[w]ww-e'), '2005-w52-0', '2004-w52-0 to 2005');
- assert.equal(moment.utc('2013-w30-4', 'gggg-[w]ww-e', true).weekYear(2015).format('gggg-[w]ww-e'), '2015-w30-4', '2013-w30-4 to 2015');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('week day');
- test('iso weekday', function (assert) {
- var i;
- for (i = 0; i < 7; ++i) {
- moment.locale('dow:' + i + ',doy: 6', {week: {dow: i, doy: 6}});
- assert.equal(moment([1985, 1, 4]).isoWeekday(), 1, 'Feb 4 1985 is Monday -- 1st day');
- assert.equal(moment([2029, 8, 18]).isoWeekday(), 2, 'Sep 18 2029 is Tuesday -- 2nd day');
- assert.equal(moment([2013, 3, 24]).isoWeekday(), 3, 'Apr 24 2013 is Wednesday -- 3rd day');
- assert.equal(moment([2015, 2, 5]).isoWeekday(), 4, 'Mar 5 2015 is Thursday -- 4th day');
- assert.equal(moment([1970, 0, 2]).isoWeekday(), 5, 'Jan 2 1970 is Friday -- 5th day');
- assert.equal(moment([2001, 4, 12]).isoWeekday(), 6, 'May 12 2001 is Saturday -- 6th day');
- assert.equal(moment([2000, 0, 2]).isoWeekday(), 7, 'Jan 2 2000 is Sunday -- 7th day');
- }
- });
- test('iso weekday setter', function (assert) {
- var a = moment([2011, 0, 10]);
- assert.equal(moment(a).isoWeekday(1).date(), 10, 'set from mon to mon');
- assert.equal(moment(a).isoWeekday(4).date(), 13, 'set from mon to thu');
- assert.equal(moment(a).isoWeekday(7).date(), 16, 'set from mon to sun');
- assert.equal(moment(a).isoWeekday(-6).date(), 3, 'set from mon to last mon');
- assert.equal(moment(a).isoWeekday(-3).date(), 6, 'set from mon to last thu');
- assert.equal(moment(a).isoWeekday(0).date(), 9, 'set from mon to last sun');
- assert.equal(moment(a).isoWeekday(8).date(), 17, 'set from mon to next mon');
- assert.equal(moment(a).isoWeekday(11).date(), 20, 'set from mon to next thu');
- assert.equal(moment(a).isoWeekday(14).date(), 23, 'set from mon to next sun');
- a = moment([2011, 0, 13]);
- assert.equal(moment(a).isoWeekday(1).date(), 10, 'set from thu to mon');
- assert.equal(moment(a).isoWeekday(4).date(), 13, 'set from thu to thu');
- assert.equal(moment(a).isoWeekday(7).date(), 16, 'set from thu to sun');
- assert.equal(moment(a).isoWeekday(-6).date(), 3, 'set from thu to last mon');
- assert.equal(moment(a).isoWeekday(-3).date(), 6, 'set from thu to last thu');
- assert.equal(moment(a).isoWeekday(0).date(), 9, 'set from thu to last sun');
- assert.equal(moment(a).isoWeekday(8).date(), 17, 'set from thu to next mon');
- assert.equal(moment(a).isoWeekday(11).date(), 20, 'set from thu to next thu');
- assert.equal(moment(a).isoWeekday(14).date(), 23, 'set from thu to next sun');
- a = moment([2011, 0, 16]);
- assert.equal(moment(a).isoWeekday(1).date(), 10, 'set from sun to mon');
- assert.equal(moment(a).isoWeekday(4).date(), 13, 'set from sun to thu');
- assert.equal(moment(a).isoWeekday(7).date(), 16, 'set from sun to sun');
- assert.equal(moment(a).isoWeekday(-6).date(), 3, 'set from sun to last mon');
- assert.equal(moment(a).isoWeekday(-3).date(), 6, 'set from sun to last thu');
- assert.equal(moment(a).isoWeekday(0).date(), 9, 'set from sun to last sun');
- assert.equal(moment(a).isoWeekday(8).date(), 17, 'set from sun to next mon');
- assert.equal(moment(a).isoWeekday(11).date(), 20, 'set from sun to next thu');
- assert.equal(moment(a).isoWeekday(14).date(), 23, 'set from sun to next sun');
- });
- test('weekday first day of week Sunday (dow 0)', function (assert) {
- moment.locale('dow: 0,doy: 6', {week: {dow: 0, doy: 6}});
- assert.equal(moment([1985, 1, 3]).weekday(), 0, 'Feb 3 1985 is Sunday -- 0th day');
- assert.equal(moment([2029, 8, 17]).weekday(), 1, 'Sep 17 2029 is Monday -- 1st day');
- assert.equal(moment([2013, 3, 23]).weekday(), 2, 'Apr 23 2013 is Tuesday -- 2nd day');
- assert.equal(moment([2015, 2, 4]).weekday(), 3, 'Mar 4 2015 is Wednesday -- 3nd day');
- assert.equal(moment([1970, 0, 1]).weekday(), 4, 'Jan 1 1970 is Thursday -- 4th day');
- assert.equal(moment([2001, 4, 11]).weekday(), 5, 'May 11 2001 is Friday -- 5th day');
- assert.equal(moment([2000, 0, 1]).weekday(), 6, 'Jan 1 2000 is Saturday -- 6th day');
- });
- test('weekday first day of week Monday (dow 1)', function (assert) {
- moment.locale('dow: 1,doy: 6', {week: {dow: 1, doy: 6}});
- assert.equal(moment([1985, 1, 4]).weekday(), 0, 'Feb 4 1985 is Monday -- 0th day');
- assert.equal(moment([2029, 8, 18]).weekday(), 1, 'Sep 18 2029 is Tuesday -- 1st day');
- assert.equal(moment([2013, 3, 24]).weekday(), 2, 'Apr 24 2013 is Wednesday -- 2nd day');
- assert.equal(moment([2015, 2, 5]).weekday(), 3, 'Mar 5 2015 is Thursday -- 3nd day');
- assert.equal(moment([1970, 0, 2]).weekday(), 4, 'Jan 2 1970 is Friday -- 4th day');
- assert.equal(moment([2001, 4, 12]).weekday(), 5, 'May 12 2001 is Saturday -- 5th day');
- assert.equal(moment([2000, 0, 2]).weekday(), 6, 'Jan 2 2000 is Sunday -- 6th day');
- });
- test('weekday first day of week Tuesday (dow 2)', function (assert) {
- moment.locale('dow: 2,doy: 6', {week: {dow: 2, doy: 6}});
- assert.equal(moment([1985, 1, 5]).weekday(), 0, 'Feb 5 1985 is Tuesday -- 0th day');
- assert.equal(moment([2029, 8, 19]).weekday(), 1, 'Sep 19 2029 is Wednesday -- 1st day');
- assert.equal(moment([2013, 3, 25]).weekday(), 2, 'Apr 25 2013 is Thursday -- 2nd day');
- assert.equal(moment([2015, 2, 6]).weekday(), 3, 'Mar 6 2015 is Friday -- 3nd day');
- assert.equal(moment([1970, 0, 3]).weekday(), 4, 'Jan 3 1970 is Staturday -- 4th day');
- assert.equal(moment([2001, 4, 13]).weekday(), 5, 'May 13 2001 is Sunday -- 5th day');
- assert.equal(moment([2000, 0, 3]).weekday(), 6, 'Jan 3 2000 is Monday -- 6th day');
- });
- test('weekday first day of week Wednesday (dow 3)', function (assert) {
- moment.locale('dow: 3,doy: 6', {week: {dow: 3, doy: 6}});
- assert.equal(moment([1985, 1, 6]).weekday(), 0, 'Feb 6 1985 is Wednesday -- 0th day');
- assert.equal(moment([2029, 8, 20]).weekday(), 1, 'Sep 20 2029 is Thursday -- 1st day');
- assert.equal(moment([2013, 3, 26]).weekday(), 2, 'Apr 26 2013 is Friday -- 2nd day');
- assert.equal(moment([2015, 2, 7]).weekday(), 3, 'Mar 7 2015 is Saturday -- 3nd day');
- assert.equal(moment([1970, 0, 4]).weekday(), 4, 'Jan 4 1970 is Sunday -- 4th day');
- assert.equal(moment([2001, 4, 14]).weekday(), 5, 'May 14 2001 is Monday -- 5th day');
- assert.equal(moment([2000, 0, 4]).weekday(), 6, 'Jan 4 2000 is Tuesday -- 6th day');
- moment.locale('dow:3,doy:6', null);
- });
- test('weekday first day of week Thursday (dow 4)', function (assert) {
- moment.locale('dow: 4,doy: 6', {week: {dow: 4, doy: 6}});
- assert.equal(moment([1985, 1, 7]).weekday(), 0, 'Feb 7 1985 is Thursday -- 0th day');
- assert.equal(moment([2029, 8, 21]).weekday(), 1, 'Sep 21 2029 is Friday -- 1st day');
- assert.equal(moment([2013, 3, 27]).weekday(), 2, 'Apr 27 2013 is Saturday -- 2nd day');
- assert.equal(moment([2015, 2, 8]).weekday(), 3, 'Mar 8 2015 is Sunday -- 3nd day');
- assert.equal(moment([1970, 0, 5]).weekday(), 4, 'Jan 5 1970 is Monday -- 4th day');
- assert.equal(moment([2001, 4, 15]).weekday(), 5, 'May 15 2001 is Tuesday -- 5th day');
- assert.equal(moment([2000, 0, 5]).weekday(), 6, 'Jan 5 2000 is Wednesday -- 6th day');
- });
- test('weekday first day of week Friday (dow 5)', function (assert) {
- moment.locale('dow: 5,doy: 6', {week: {dow: 5, doy: 6}});
- assert.equal(moment([1985, 1, 8]).weekday(), 0, 'Feb 8 1985 is Friday -- 0th day');
- assert.equal(moment([2029, 8, 22]).weekday(), 1, 'Sep 22 2029 is Staturday -- 1st day');
- assert.equal(moment([2013, 3, 28]).weekday(), 2, 'Apr 28 2013 is Sunday -- 2nd day');
- assert.equal(moment([2015, 2, 9]).weekday(), 3, 'Mar 9 2015 is Monday -- 3nd day');
- assert.equal(moment([1970, 0, 6]).weekday(), 4, 'Jan 6 1970 is Tuesday -- 4th day');
- assert.equal(moment([2001, 4, 16]).weekday(), 5, 'May 16 2001 is Wednesday -- 5th day');
- assert.equal(moment([2000, 0, 6]).weekday(), 6, 'Jan 6 2000 is Thursday -- 6th day');
- });
- test('weekday first day of week Saturday (dow 6)', function (assert) {
- moment.locale('dow: 6,doy: 6', {week: {dow: 6, doy: 6}});
- assert.equal(moment([1985, 1, 9]).weekday(), 0, 'Feb 9 1985 is Staturday -- 0th day');
- assert.equal(moment([2029, 8, 23]).weekday(), 1, 'Sep 23 2029 is Sunday -- 1st day');
- assert.equal(moment([2013, 3, 29]).weekday(), 2, 'Apr 29 2013 is Monday -- 2nd day');
- assert.equal(moment([2015, 2, 10]).weekday(), 3, 'Mar 10 2015 is Tuesday -- 3nd day');
- assert.equal(moment([1970, 0, 7]).weekday(), 4, 'Jan 7 1970 is Wednesday -- 4th day');
- assert.equal(moment([2001, 4, 17]).weekday(), 5, 'May 17 2001 is Thursday -- 5th day');
- assert.equal(moment([2000, 0, 7]).weekday(), 6, 'Jan 7 2000 is Friday -- 6th day');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('weeks');
- test('day of year', function (assert) {
- assert.equal(moment([2000, 0, 1]).dayOfYear(), 1, 'Jan 1 2000 should be day 1 of the year');
- assert.equal(moment([2000, 1, 28]).dayOfYear(), 59, 'Feb 28 2000 should be day 59 of the year');
- assert.equal(moment([2000, 1, 29]).dayOfYear(), 60, 'Feb 28 2000 should be day 60 of the year');
- assert.equal(moment([2000, 11, 31]).dayOfYear(), 366, 'Dec 31 2000 should be day 366 of the year');
- assert.equal(moment([2001, 0, 1]).dayOfYear(), 1, 'Jan 1 2001 should be day 1 of the year');
- assert.equal(moment([2001, 1, 28]).dayOfYear(), 59, 'Feb 28 2001 should be day 59 of the year');
- assert.equal(moment([2001, 2, 1]).dayOfYear(), 60, 'Mar 1 2001 should be day 60 of the year');
- assert.equal(moment([2001, 11, 31]).dayOfYear(), 365, 'Dec 31 2001 should be day 365 of the year');
- });
- test('day of year setters', function (assert) {
- assert.equal(moment([2000, 0, 1]).dayOfYear(200).dayOfYear(), 200, 'Setting Jan 1 2000 day of the year to 200 should work');
- assert.equal(moment([2000, 1, 28]).dayOfYear(200).dayOfYear(), 200, 'Setting Feb 28 2000 day of the year to 200 should work');
- assert.equal(moment([2000, 1, 29]).dayOfYear(200).dayOfYear(), 200, 'Setting Feb 28 2000 day of the year to 200 should work');
- assert.equal(moment([2000, 11, 31]).dayOfYear(200).dayOfYear(), 200, 'Setting Dec 31 2000 day of the year to 200 should work');
- assert.equal(moment().dayOfYear(1).dayOfYear(), 1, 'Setting day of the year to 1 should work');
- assert.equal(moment().dayOfYear(59).dayOfYear(), 59, 'Setting day of the year to 59 should work');
- assert.equal(moment().dayOfYear(60).dayOfYear(), 60, 'Setting day of the year to 60 should work');
- assert.equal(moment().dayOfYear(365).dayOfYear(), 365, 'Setting day of the year to 365 should work');
- });
- test('iso weeks year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).isoWeek(), 52, 'Jan 1 2012 should be iso week 52');
- assert.equal(moment([2012, 0, 2]).isoWeek(), 1, 'Jan 2 2012 should be iso week 1');
- assert.equal(moment([2012, 0, 8]).isoWeek(), 1, 'Jan 8 2012 should be iso week 1');
- assert.equal(moment([2012, 0, 9]).isoWeek(), 2, 'Jan 9 2012 should be iso week 2');
- assert.equal(moment([2012, 0, 15]).isoWeek(), 2, 'Jan 15 2012 should be iso week 2');
- });
- test('iso weeks year starting monday', function (assert) {
- assert.equal(moment([2007, 0, 1]).isoWeek(), 1, 'Jan 1 2007 should be iso week 1');
- assert.equal(moment([2007, 0, 7]).isoWeek(), 1, 'Jan 7 2007 should be iso week 1');
- assert.equal(moment([2007, 0, 8]).isoWeek(), 2, 'Jan 8 2007 should be iso week 2');
- assert.equal(moment([2007, 0, 14]).isoWeek(), 2, 'Jan 14 2007 should be iso week 2');
- assert.equal(moment([2007, 0, 15]).isoWeek(), 3, 'Jan 15 2007 should be iso week 3');
- });
- test('iso weeks year starting tuesday', function (assert) {
- assert.equal(moment([2007, 11, 31]).isoWeek(), 1, 'Dec 31 2007 should be iso week 1');
- assert.equal(moment([2008, 0, 1]).isoWeek(), 1, 'Jan 1 2008 should be iso week 1');
- assert.equal(moment([2008, 0, 6]).isoWeek(), 1, 'Jan 6 2008 should be iso week 1');
- assert.equal(moment([2008, 0, 7]).isoWeek(), 2, 'Jan 7 2008 should be iso week 2');
- assert.equal(moment([2008, 0, 13]).isoWeek(), 2, 'Jan 13 2008 should be iso week 2');
- assert.equal(moment([2008, 0, 14]).isoWeek(), 3, 'Jan 14 2008 should be iso week 3');
- });
- test('iso weeks year starting wednesday', function (assert) {
- assert.equal(moment([2002, 11, 30]).isoWeek(), 1, 'Dec 30 2002 should be iso week 1');
- assert.equal(moment([2003, 0, 1]).isoWeek(), 1, 'Jan 1 2003 should be iso week 1');
- assert.equal(moment([2003, 0, 5]).isoWeek(), 1, 'Jan 5 2003 should be iso week 1');
- assert.equal(moment([2003, 0, 6]).isoWeek(), 2, 'Jan 6 2003 should be iso week 2');
- assert.equal(moment([2003, 0, 12]).isoWeek(), 2, 'Jan 12 2003 should be iso week 2');
- assert.equal(moment([2003, 0, 13]).isoWeek(), 3, 'Jan 13 2003 should be iso week 3');
- });
- test('iso weeks year starting thursday', function (assert) {
- assert.equal(moment([2008, 11, 29]).isoWeek(), 1, 'Dec 29 2008 should be iso week 1');
- assert.equal(moment([2009, 0, 1]).isoWeek(), 1, 'Jan 1 2009 should be iso week 1');
- assert.equal(moment([2009, 0, 4]).isoWeek(), 1, 'Jan 4 2009 should be iso week 1');
- assert.equal(moment([2009, 0, 5]).isoWeek(), 2, 'Jan 5 2009 should be iso week 2');
- assert.equal(moment([2009, 0, 11]).isoWeek(), 2, 'Jan 11 2009 should be iso week 2');
- assert.equal(moment([2009, 0, 13]).isoWeek(), 3, 'Jan 12 2009 should be iso week 3');
- });
- test('iso weeks year starting friday', function (assert) {
- assert.equal(moment([2009, 11, 28]).isoWeek(), 53, 'Dec 28 2009 should be iso week 53');
- assert.equal(moment([2010, 0, 1]).isoWeek(), 53, 'Jan 1 2010 should be iso week 53');
- assert.equal(moment([2010, 0, 3]).isoWeek(), 53, 'Jan 3 2010 should be iso week 53');
- assert.equal(moment([2010, 0, 4]).isoWeek(), 1, 'Jan 4 2010 should be iso week 1');
- assert.equal(moment([2010, 0, 10]).isoWeek(), 1, 'Jan 10 2010 should be iso week 1');
- assert.equal(moment([2010, 0, 11]).isoWeek(), 2, 'Jan 11 2010 should be iso week 2');
- });
- test('iso weeks year starting saturday', function (assert) {
- assert.equal(moment([2010, 11, 27]).isoWeek(), 52, 'Dec 27 2010 should be iso week 52');
- assert.equal(moment([2011, 0, 1]).isoWeek(), 52, 'Jan 1 2011 should be iso week 52');
- assert.equal(moment([2011, 0, 2]).isoWeek(), 52, 'Jan 2 2011 should be iso week 52');
- assert.equal(moment([2011, 0, 3]).isoWeek(), 1, 'Jan 3 2011 should be iso week 1');
- assert.equal(moment([2011, 0, 9]).isoWeek(), 1, 'Jan 9 2011 should be iso week 1');
- assert.equal(moment([2011, 0, 10]).isoWeek(), 2, 'Jan 10 2011 should be iso week 2');
- });
- test('iso weeks year starting sunday formatted', function (assert) {
- assert.equal(moment([2012, 0, 1]).format('W WW Wo'), '52 52 52nd', 'Jan 1 2012 should be iso week 52');
- assert.equal(moment([2012, 0, 2]).format('W WW Wo'), '1 01 1st', 'Jan 2 2012 should be iso week 1');
- assert.equal(moment([2012, 0, 8]).format('W WW Wo'), '1 01 1st', 'Jan 8 2012 should be iso week 1');
- assert.equal(moment([2012, 0, 9]).format('W WW Wo'), '2 02 2nd', 'Jan 9 2012 should be iso week 2');
- assert.equal(moment([2012, 0, 15]).format('W WW Wo'), '2 02 2nd', 'Jan 15 2012 should be iso week 2');
- });
- test('weeks plural year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).weeks(), 1, 'Jan 1 2012 should be week 1');
- assert.equal(moment([2012, 0, 7]).weeks(), 1, 'Jan 7 2012 should be week 1');
- assert.equal(moment([2012, 0, 8]).weeks(), 2, 'Jan 8 2012 should be week 2');
- assert.equal(moment([2012, 0, 14]).weeks(), 2, 'Jan 14 2012 should be week 2');
- assert.equal(moment([2012, 0, 15]).weeks(), 3, 'Jan 15 2012 should be week 3');
- });
- test('iso weeks plural year starting sunday', function (assert) {
- assert.equal(moment([2012, 0, 1]).isoWeeks(), 52, 'Jan 1 2012 should be iso week 52');
- assert.equal(moment([2012, 0, 2]).isoWeeks(), 1, 'Jan 2 2012 should be iso week 1');
- assert.equal(moment([2012, 0, 8]).isoWeeks(), 1, 'Jan 8 2012 should be iso week 1');
- assert.equal(moment([2012, 0, 9]).isoWeeks(), 2, 'Jan 9 2012 should be iso week 2');
- assert.equal(moment([2012, 0, 15]).isoWeeks(), 2, 'Jan 15 2012 should be iso week 2');
- });
- test('weeks setter', function (assert) {
- assert.equal(moment([2012, 0, 1]).week(30).week(), 30, 'Setting Jan 1 2012 to week 30 should work');
- assert.equal(moment([2012, 0, 7]).week(30).week(), 30, 'Setting Jan 7 2012 to week 30 should work');
- assert.equal(moment([2012, 0, 8]).week(30).week(), 30, 'Setting Jan 8 2012 to week 30 should work');
- assert.equal(moment([2012, 0, 14]).week(30).week(), 30, 'Setting Jan 14 2012 to week 30 should work');
- assert.equal(moment([2012, 0, 15]).week(30).week(), 30, 'Setting Jan 15 2012 to week 30 should work');
- });
- test('iso weeks setter', function (assert) {
- assert.equal(moment([2012, 0, 1]).isoWeeks(25).isoWeeks(), 25, 'Setting Jan 1 2012 to week 25 should work');
- assert.equal(moment([2012, 0, 2]).isoWeeks(24).isoWeeks(), 24, 'Setting Jan 2 2012 to week 24 should work');
- assert.equal(moment([2012, 0, 8]).isoWeeks(23).isoWeeks(), 23, 'Setting Jan 8 2012 to week 23 should work');
- assert.equal(moment([2012, 0, 9]).isoWeeks(22).isoWeeks(), 22, 'Setting Jan 9 2012 to week 22 should work');
- assert.equal(moment([2012, 0, 15]).isoWeeks(21).isoWeeks(), 21, 'Setting Jan 15 2012 to week 21 should work');
- });
- test('iso weeks setter day of year', function (assert) {
- assert.equal(moment([2012, 0, 1]).isoWeek(1).dayOfYear(), 9, 'Setting Jan 1 2012 to week 1 should be day of year 8');
- assert.equal(moment([2012, 0, 1]).isoWeek(1).year(), 2011, 'Setting Jan 1 2012 to week 1 should be year 2011');
- assert.equal(moment([2012, 0, 2]).isoWeek(1).dayOfYear(), 2, 'Setting Jan 2 2012 to week 1 should be day of year 2');
- assert.equal(moment([2012, 0, 8]).isoWeek(1).dayOfYear(), 8, 'Setting Jan 8 2012 to week 1 should be day of year 8');
- assert.equal(moment([2012, 0, 9]).isoWeek(1).dayOfYear(), 2, 'Setting Jan 9 2012 to week 1 should be day of year 2');
- assert.equal(moment([2012, 0, 15]).isoWeek(1).dayOfYear(), 8, 'Setting Jan 15 2012 to week 1 should be day of year 8');
- });
- test('years with iso week 53', function (assert) {
- // Based on a table taken from http://en.wikipedia.org/wiki/ISO_week_date
- // (as downloaded on 2014-01-06) listing the 71 years in a 400-year cycle
- // that have 53 weeks; in this case reflecting the 2000 based cycle
- assert.equal(moment([2004, 11, 31]).isoWeek(), 53, 'Dec 31 2004 should be iso week 53');
- assert.equal(moment([2009, 11, 31]).isoWeek(), 53, 'Dec 31 2009 should be iso week 53');
- assert.equal(moment([2015, 11, 31]).isoWeek(), 53, 'Dec 31 2015 should be iso week 53');
- assert.equal(moment([2020, 11, 31]).isoWeek(), 53, 'Dec 31 2020 should be iso week 53');
- assert.equal(moment([2026, 11, 31]).isoWeek(), 53, 'Dec 31 2026 should be iso week 53');
- assert.equal(moment([2032, 11, 31]).isoWeek(), 53, 'Dec 31 2032 should be iso week 53');
- assert.equal(moment([2037, 11, 31]).isoWeek(), 53, 'Dec 31 2037 should be iso week 53');
- assert.equal(moment([2043, 11, 31]).isoWeek(), 53, 'Dec 31 2043 should be iso week 53');
- assert.equal(moment([2048, 11, 31]).isoWeek(), 53, 'Dec 31 2048 should be iso week 53');
- assert.equal(moment([2054, 11, 31]).isoWeek(), 53, 'Dec 31 2054 should be iso week 53');
- assert.equal(moment([2060, 11, 31]).isoWeek(), 53, 'Dec 31 2060 should be iso week 53');
- assert.equal(moment([2065, 11, 31]).isoWeek(), 53, 'Dec 31 2065 should be iso week 53');
- assert.equal(moment([2071, 11, 31]).isoWeek(), 53, 'Dec 31 2071 should be iso week 53');
- assert.equal(moment([2076, 11, 31]).isoWeek(), 53, 'Dec 31 2076 should be iso week 53');
- assert.equal(moment([2082, 11, 31]).isoWeek(), 53, 'Dec 31 2082 should be iso week 53');
- assert.equal(moment([2088, 11, 31]).isoWeek(), 53, 'Dec 31 2088 should be iso week 53');
- assert.equal(moment([2093, 11, 31]).isoWeek(), 53, 'Dec 31 2093 should be iso week 53');
- assert.equal(moment([2099, 11, 31]).isoWeek(), 53, 'Dec 31 2099 should be iso week 53');
- assert.equal(moment([2105, 11, 31]).isoWeek(), 53, 'Dec 31 2105 should be iso week 53');
- assert.equal(moment([2111, 11, 31]).isoWeek(), 53, 'Dec 31 2111 should be iso week 53');
- assert.equal(moment([2116, 11, 31]).isoWeek(), 53, 'Dec 31 2116 should be iso week 53');
- assert.equal(moment([2122, 11, 31]).isoWeek(), 53, 'Dec 31 2122 should be iso week 53');
- assert.equal(moment([2128, 11, 31]).isoWeek(), 53, 'Dec 31 2128 should be iso week 53');
- assert.equal(moment([2133, 11, 31]).isoWeek(), 53, 'Dec 31 2133 should be iso week 53');
- assert.equal(moment([2139, 11, 31]).isoWeek(), 53, 'Dec 31 2139 should be iso week 53');
- assert.equal(moment([2144, 11, 31]).isoWeek(), 53, 'Dec 31 2144 should be iso week 53');
- assert.equal(moment([2150, 11, 31]).isoWeek(), 53, 'Dec 31 2150 should be iso week 53');
- assert.equal(moment([2156, 11, 31]).isoWeek(), 53, 'Dec 31 2156 should be iso week 53');
- assert.equal(moment([2161, 11, 31]).isoWeek(), 53, 'Dec 31 2161 should be iso week 53');
- assert.equal(moment([2167, 11, 31]).isoWeek(), 53, 'Dec 31 2167 should be iso week 53');
- assert.equal(moment([2172, 11, 31]).isoWeek(), 53, 'Dec 31 2172 should be iso week 53');
- assert.equal(moment([2178, 11, 31]).isoWeek(), 53, 'Dec 31 2178 should be iso week 53');
- assert.equal(moment([2184, 11, 31]).isoWeek(), 53, 'Dec 31 2184 should be iso week 53');
- assert.equal(moment([2189, 11, 31]).isoWeek(), 53, 'Dec 31 2189 should be iso week 53');
- assert.equal(moment([2195, 11, 31]).isoWeek(), 53, 'Dec 31 2195 should be iso week 53');
- assert.equal(moment([2201, 11, 31]).isoWeek(), 53, 'Dec 31 2201 should be iso week 53');
- assert.equal(moment([2207, 11, 31]).isoWeek(), 53, 'Dec 31 2207 should be iso week 53');
- assert.equal(moment([2212, 11, 31]).isoWeek(), 53, 'Dec 31 2212 should be iso week 53');
- assert.equal(moment([2218, 11, 31]).isoWeek(), 53, 'Dec 31 2218 should be iso week 53');
- assert.equal(moment([2224, 11, 31]).isoWeek(), 53, 'Dec 31 2224 should be iso week 53');
- assert.equal(moment([2229, 11, 31]).isoWeek(), 53, 'Dec 31 2229 should be iso week 53');
- assert.equal(moment([2235, 11, 31]).isoWeek(), 53, 'Dec 31 2235 should be iso week 53');
- assert.equal(moment([2240, 11, 31]).isoWeek(), 53, 'Dec 31 2240 should be iso week 53');
- assert.equal(moment([2246, 11, 31]).isoWeek(), 53, 'Dec 31 2246 should be iso week 53');
- assert.equal(moment([2252, 11, 31]).isoWeek(), 53, 'Dec 31 2252 should be iso week 53');
- assert.equal(moment([2257, 11, 31]).isoWeek(), 53, 'Dec 31 2257 should be iso week 53');
- assert.equal(moment([2263, 11, 31]).isoWeek(), 53, 'Dec 31 2263 should be iso week 53');
- assert.equal(moment([2268, 11, 31]).isoWeek(), 53, 'Dec 31 2268 should be iso week 53');
- assert.equal(moment([2274, 11, 31]).isoWeek(), 53, 'Dec 31 2274 should be iso week 53');
- assert.equal(moment([2280, 11, 31]).isoWeek(), 53, 'Dec 31 2280 should be iso week 53');
- assert.equal(moment([2285, 11, 31]).isoWeek(), 53, 'Dec 31 2285 should be iso week 53');
- assert.equal(moment([2291, 11, 31]).isoWeek(), 53, 'Dec 31 2291 should be iso week 53');
- assert.equal(moment([2296, 11, 31]).isoWeek(), 53, 'Dec 31 2296 should be iso week 53');
- assert.equal(moment([2303, 11, 31]).isoWeek(), 53, 'Dec 31 2303 should be iso week 53');
- assert.equal(moment([2308, 11, 31]).isoWeek(), 53, 'Dec 31 2308 should be iso week 53');
- assert.equal(moment([2314, 11, 31]).isoWeek(), 53, 'Dec 31 2314 should be iso week 53');
- assert.equal(moment([2320, 11, 31]).isoWeek(), 53, 'Dec 31 2320 should be iso week 53');
- assert.equal(moment([2325, 11, 31]).isoWeek(), 53, 'Dec 31 2325 should be iso week 53');
- assert.equal(moment([2331, 11, 31]).isoWeek(), 53, 'Dec 31 2331 should be iso week 53');
- assert.equal(moment([2336, 11, 31]).isoWeek(), 53, 'Dec 31 2336 should be iso week 53');
- assert.equal(moment([2342, 11, 31]).isoWeek(), 53, 'Dec 31 2342 should be iso week 53');
- assert.equal(moment([2348, 11, 31]).isoWeek(), 53, 'Dec 31 2348 should be iso week 53');
- assert.equal(moment([2353, 11, 31]).isoWeek(), 53, 'Dec 31 2353 should be iso week 53');
- assert.equal(moment([2359, 11, 31]).isoWeek(), 53, 'Dec 31 2359 should be iso week 53');
- assert.equal(moment([2364, 11, 31]).isoWeek(), 53, 'Dec 31 2364 should be iso week 53');
- assert.equal(moment([2370, 11, 31]).isoWeek(), 53, 'Dec 31 2370 should be iso week 53');
- assert.equal(moment([2376, 11, 31]).isoWeek(), 53, 'Dec 31 2376 should be iso week 53');
- assert.equal(moment([2381, 11, 31]).isoWeek(), 53, 'Dec 31 2381 should be iso week 53');
- assert.equal(moment([2387, 11, 31]).isoWeek(), 53, 'Dec 31 2387 should be iso week 53');
- assert.equal(moment([2392, 11, 31]).isoWeek(), 53, 'Dec 31 2392 should be iso week 53');
- assert.equal(moment([2398, 11, 31]).isoWeek(), 53, 'Dec 31 2398 should be iso week 53');
- });
- test('count years with iso week 53', function (assert) {
- // Based on http://en.wikipedia.org/wiki/ISO_week_date (as seen on 2014-01-06)
- // stating that there are 71 years in a 400-year cycle that have 53 weeks;
- // in this case reflecting the 2000 based cycle
- var count = 0, i;
- for (i = 0; i < 400; i++) {
- count += (moment([2000 + i, 11, 31]).isoWeek() === 53) ? 1 : 0;
- }
- assert.equal(count, 71, 'Should have 71 years in 400-year cycle with iso week 53');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('weeks in year');
- test('isoWeeksInYear', function (assert) {
- assert.equal(moment([2004]).isoWeeksInYear(), 53, '2004 has 53 iso weeks');
- assert.equal(moment([2005]).isoWeeksInYear(), 52, '2005 has 53 iso weeks');
- assert.equal(moment([2006]).isoWeeksInYear(), 52, '2006 has 53 iso weeks');
- assert.equal(moment([2007]).isoWeeksInYear(), 52, '2007 has 52 iso weeks');
- assert.equal(moment([2008]).isoWeeksInYear(), 52, '2008 has 53 iso weeks');
- assert.equal(moment([2009]).isoWeeksInYear(), 53, '2009 has 53 iso weeks');
- assert.equal(moment([2010]).isoWeeksInYear(), 52, '2010 has 52 iso weeks');
- assert.equal(moment([2011]).isoWeeksInYear(), 52, '2011 has 52 iso weeks');
- assert.equal(moment([2012]).isoWeeksInYear(), 52, '2012 has 52 iso weeks');
- assert.equal(moment([2013]).isoWeeksInYear(), 52, '2013 has 52 iso weeks');
- assert.equal(moment([2014]).isoWeeksInYear(), 52, '2014 has 52 iso weeks');
- assert.equal(moment([2015]).isoWeeksInYear(), 53, '2015 has 53 iso weeks');
- });
- test('weeksInYear doy/dow = 1/4', function (assert) {
- moment.locale('1/4', {week: {dow: 1, doy: 4}});
- assert.equal(moment([2004]).weeksInYear(), 53, '2004 has 53 weeks');
- assert.equal(moment([2005]).weeksInYear(), 52, '2005 has 53 weeks');
- assert.equal(moment([2006]).weeksInYear(), 52, '2006 has 53 weeks');
- assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks');
- assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks');
- assert.equal(moment([2009]).weeksInYear(), 53, '2009 has 53 weeks');
- assert.equal(moment([2010]).weeksInYear(), 52, '2010 has 52 weeks');
- assert.equal(moment([2011]).weeksInYear(), 52, '2011 has 52 weeks');
- assert.equal(moment([2012]).weeksInYear(), 52, '2012 has 52 weeks');
- assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks');
- assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks');
- assert.equal(moment([2015]).weeksInYear(), 53, '2015 has 53 weeks');
- });
- test('weeksInYear doy/dow = 6/12', function (assert) {
- moment.locale('6/12', {week: {dow: 6, doy: 12}});
- assert.equal(moment([2004]).weeksInYear(), 53, '2004 has 53 weeks');
- assert.equal(moment([2005]).weeksInYear(), 52, '2005 has 53 weeks');
- assert.equal(moment([2006]).weeksInYear(), 52, '2006 has 53 weeks');
- assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks');
- assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks');
- assert.equal(moment([2009]).weeksInYear(), 52, '2009 has 53 weeks');
- assert.equal(moment([2010]).weeksInYear(), 53, '2010 has 52 weeks');
- assert.equal(moment([2011]).weeksInYear(), 52, '2011 has 52 weeks');
- assert.equal(moment([2012]).weeksInYear(), 52, '2012 has 52 weeks');
- assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks');
- assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks');
- assert.equal(moment([2015]).weeksInYear(), 52, '2015 has 53 weeks');
- });
- test('weeksInYear doy/dow = 1/7', function (assert) {
- moment.locale('1/7', {week: {dow: 1, doy: 7}});
- assert.equal(moment([2004]).weeksInYear(), 52, '2004 has 53 weeks');
- assert.equal(moment([2005]).weeksInYear(), 52, '2005 has 53 weeks');
- assert.equal(moment([2006]).weeksInYear(), 53, '2006 has 53 weeks');
- assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks');
- assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks');
- assert.equal(moment([2009]).weeksInYear(), 52, '2009 has 53 weeks');
- assert.equal(moment([2010]).weeksInYear(), 52, '2010 has 52 weeks');
- assert.equal(moment([2011]).weeksInYear(), 52, '2011 has 52 weeks');
- assert.equal(moment([2012]).weeksInYear(), 53, '2012 has 52 weeks');
- assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks');
- assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks');
- assert.equal(moment([2015]).weeksInYear(), 52, '2015 has 53 weeks');
- });
- test('weeksInYear doy/dow = 0/6', function (assert) {
- moment.locale('0/6', {week: {dow: 0, doy: 6}});
- assert.equal(moment([2004]).weeksInYear(), 52, '2004 has 53 weeks');
- assert.equal(moment([2005]).weeksInYear(), 53, '2005 has 53 weeks');
- assert.equal(moment([2006]).weeksInYear(), 52, '2006 has 53 weeks');
- assert.equal(moment([2007]).weeksInYear(), 52, '2007 has 52 weeks');
- assert.equal(moment([2008]).weeksInYear(), 52, '2008 has 53 weeks');
- assert.equal(moment([2009]).weeksInYear(), 52, '2009 has 53 weeks');
- assert.equal(moment([2010]).weeksInYear(), 52, '2010 has 52 weeks');
- assert.equal(moment([2011]).weeksInYear(), 53, '2011 has 52 weeks');
- assert.equal(moment([2012]).weeksInYear(), 52, '2012 has 52 weeks');
- assert.equal(moment([2013]).weeksInYear(), 52, '2013 has 52 weeks');
- assert.equal(moment([2014]).weeksInYear(), 52, '2014 has 52 weeks');
- assert.equal(moment([2015]).weeksInYear(), 52, '2015 has 53 weeks');
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('zone switching');
- test('local to utc, keepLocalTime = true', function (assert) {
- var m = moment(),
- fmt = 'YYYY-DD-MM HH:mm:ss';
- assert.equal(m.clone().utc(true).format(fmt), m.format(fmt), 'local to utc failed to keep local time');
- });
- test('local to utc, keepLocalTime = false', function (assert) {
- var m = moment();
- assert.equal(m.clone().utc().valueOf(), m.valueOf(), 'local to utc failed to keep utc time (implicit)');
- assert.equal(m.clone().utc(false).valueOf(), m.valueOf(), 'local to utc failed to keep utc time (explicit)');
- });
- test('local to zone, keepLocalTime = true', function (assert) {
- var m = moment(),
- fmt = 'YYYY-DD-MM HH:mm:ss',
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- assert.equal(m.clone().zone(z * 60, true).format(fmt), m.format(fmt),
- 'local to zone(' + z + ':00) failed to keep local time');
- }
- });
- test('local to zone, keepLocalTime = false', function (assert) {
- var m = moment(),
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- assert.equal(m.clone().zone(z * 60).valueOf(), m.valueOf(),
- 'local to zone(' + z + ':00) failed to keep utc time (implicit)');
- assert.equal(m.clone().zone(z * 60, false).valueOf(), m.valueOf(),
- 'local to zone(' + z + ':00) failed to keep utc time (explicit)');
- }
- });
- test('utc to local, keepLocalTime = true', function (assert) {
- var um = moment.utc(),
- fmt = 'YYYY-DD-MM HH:mm:ss';
- assert.equal(um.clone().local(true).format(fmt), um.format(fmt), 'utc to local failed to keep local time');
- });
- test('utc to local, keepLocalTime = false', function (assert) {
- var um = moment.utc();
- assert.equal(um.clone().local().valueOf(), um.valueOf(), 'utc to local failed to keep utc time (implicit)');
- assert.equal(um.clone().local(false).valueOf(), um.valueOf(), 'utc to local failed to keep utc time (explicit)');
- });
- test('zone to local, keepLocalTime = true', function (assert) {
- var m = moment(),
- fmt = 'YYYY-DD-MM HH:mm:ss',
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- m.zone(z * 60);
- assert.equal(m.clone().local(true).format(fmt), m.format(fmt),
- 'zone(' + z + ':00) to local failed to keep local time');
- }
- });
- test('zone to local, keepLocalTime = false', function (assert) {
- var m = moment(),
- z;
- // Apparently there is -12:00 and +14:00
- // http://en.wikipedia.org/wiki/UTC+14:00
- // http://en.wikipedia.org/wiki/UTC-12:00
- for (z = -12; z <= 14; ++z) {
- m.zone(z * 60);
- assert.equal(m.clone().local(false).valueOf(), m.valueOf(),
- 'zone(' + z + ':00) to local failed to keep utc time (explicit)');
- assert.equal(m.clone().local().valueOf(), m.valueOf(),
- 'zone(' + z + ':00) to local failed to keep utc time (implicit)');
- }
- });
- }));
- ;(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined'
- && typeof require === 'function' ? factory(require('../../moment')) :
- typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
- factory(global.moment)
- }(this, function (moment) { 'use strict';
- /*global QUnit:false*/
- var test = QUnit.test;
- var expect = QUnit.expect;
- function module (name, lifecycle) {
- QUnit.module(name, {
- setup : function () {
- moment.locale('en');
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- function localeModule (name, lifecycle) {
- QUnit.module('locale:' + name, {
- setup : function () {
- moment.locale(name);
- moment.createFromInputFallback = function (config) {
- throw new Error('input not handled by moment: ' + config._i);
- };
- if (lifecycle && lifecycle.setup) {
- lifecycle.setup();
- }
- },
- teardown : function () {
- moment.locale('en');
- if (lifecycle && lifecycle.teardown) {
- lifecycle.teardown();
- }
- }
- });
- }
- module('zones');
- test('set zone', function (assert) {
- var zone = moment();
- zone.zone(0);
- assert.equal(zone.zone(), 0, 'should be able to set the zone to 0');
- zone.zone(60);
- assert.equal(zone.zone(), 60, 'should be able to set the zone to 60');
- zone.zone(-60);
- assert.equal(zone.zone(), -60, 'should be able to set the zone to -60');
- });
- test('set zone shorthand', function (assert) {
- var zone = moment();
- zone.zone(1);
- assert.equal(zone.zone(), 60, 'setting the zone to 1 should imply hours and convert to 60');
- zone.zone(-1);
- assert.equal(zone.zone(), -60, 'setting the zone to -1 should imply hours and convert to -60');
- zone.zone(15);
- assert.equal(zone.zone(), 900, 'setting the zone to 15 should imply hours and convert to 900');
- zone.zone(-15);
- assert.equal(zone.zone(), -900, 'setting the zone to -15 should imply hours and convert to -900');
- zone.zone(16);
- assert.equal(zone.zone(), 16, 'setting the zone to 16 should imply minutes');
- zone.zone(-16);
- assert.equal(zone.zone(), -16, 'setting the zone to -16 should imply minutes');
- });
- test('set zone with string', function (assert) {
- var zone = moment();
- zone.zone('+00:00');
- assert.equal(zone.zone(), 0, 'set the zone with a timezone string');
- zone.zone('2013-03-07T07:00:00-08:00');
- assert.equal(zone.zone(), 480, 'set the zone with a string that does not begin with the timezone');
- zone.zone('2013-03-07T07:00:00+0100');
- assert.equal(zone.zone(), -60, 'set the zone with a string that uses the +0000 syntax');
- zone.zone('2013-03-07T07:00:00+02');
- assert.equal(zone.zone(), -120, 'set the zone with a string that uses the +00 syntax');
- zone.zone('03-07-2013T07:00:00-08:00');
- assert.equal(zone.zone(), 480, 'set the zone with a string with a non-ISO 8601 date');
- });
- test('change hours when changing the zone', function (assert) {
- var zone = moment.utc([2000, 0, 1, 6]);
- zone.zone(0);
- assert.equal(zone.hour(), 6, 'UTC 6AM should be 6AM at +0000');
- zone.zone(60);
- assert.equal(zone.hour(), 5, 'UTC 6AM should be 5AM at -0100');
- zone.zone(-60);
- assert.equal(zone.hour(), 7, 'UTC 6AM should be 7AM at +0100');
- });
- test('change minutes when changing the zone', function (assert) {
- var zone = moment.utc([2000, 0, 1, 6, 31]);
- zone.zone(0);
- assert.equal(zone.format('HH:mm'), '06:31', 'UTC 6:31AM should be 6:31AM at +0000');
- zone.zone(30);
- assert.equal(zone.format('HH:mm'), '06:01', 'UTC 6:31AM should be 6:01AM at -0030');
- zone.zone(-30);
- assert.equal(zone.format('HH:mm'), '07:01', 'UTC 6:31AM should be 7:01AM at +0030');
- zone.zone(1380);
- assert.equal(zone.format('HH:mm'), '07:31', 'UTC 6:31AM should be 7:31AM at +1380');
- });
- test('distance from the unix epoch', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA),
- zoneC = moment(zoneA),
- zoneD = moment(zoneA),
- zoneE = moment(zoneA);
- zoneB.utc();
- assert.equal(+zoneA, +zoneB, 'moment should equal moment.utc');
- zoneC.zone(-60);
- assert.equal(+zoneA, +zoneC, 'moment should equal moment.zone(-60)');
- zoneD.zone(480);
- assert.equal(+zoneA, +zoneD, 'moment should equal moment.zone(480)');
- zoneE.zone(1000);
- assert.equal(+zoneA, +zoneE, 'moment should equal moment.zone(1000)');
- });
- test('update offset after changing any values', function (assert) {
- var oldOffset = moment.updateOffset,
- m = moment.utc([2000, 6, 1]);
- moment.updateOffset = function (mom, keepTime) {
- if (mom.__doChange) {
- if (+mom > 962409600000) {
- mom.zone(120, keepTime);
- } else {
- mom.zone(60, keepTime);
- }
- }
- };
- assert.equal(m.format('ZZ'), '+0000', 'should be at +0000');
- assert.equal(m.format('HH:mm'), '00:00', 'should start 12AM at +0000 timezone');
- m.__doChange = true;
- m.add(1, 'h');
- assert.equal(m.format('ZZ'), '-0200', 'should be at -0200');
- assert.equal(m.format('HH:mm'), '23:00', '1AM at +0000 should be 11PM at -0200 timezone');
- m.subtract(1, 'h');
- assert.equal(m.format('ZZ'), '-0100', 'should be at -0100');
- assert.equal(m.format('HH:mm'), '23:00', '12AM at +0000 should be 11PM at -0100 timezone');
- moment.updateOffset = oldOffset;
- });
- test('getters and setters', function (assert) {
- var a = moment([2011, 5, 20]);
- assert.equal(a.clone().zone(120).year(2012).year(), 2012, 'should get and set year correctly');
- assert.equal(a.clone().zone(120).month(1).month(), 1, 'should get and set month correctly');
- assert.equal(a.clone().zone(120).date(2).date(), 2, 'should get and set date correctly');
- assert.equal(a.clone().zone(120).day(1).day(), 1, 'should get and set day correctly');
- assert.equal(a.clone().zone(120).hour(1).hour(), 1, 'should get and set hour correctly');
- assert.equal(a.clone().zone(120).minute(1).minute(), 1, 'should get and set minute correctly');
- });
- test('getters', function (assert) {
- var a = moment.utc([2012, 0, 1, 0, 0, 0]);
- assert.equal(a.clone().zone(120).year(), 2011, 'should get year correctly');
- assert.equal(a.clone().zone(120).month(), 11, 'should get month correctly');
- assert.equal(a.clone().zone(120).date(), 31, 'should get date correctly');
- assert.equal(a.clone().zone(120).hour(), 22, 'should get hour correctly');
- assert.equal(a.clone().zone(120).minute(), 0, 'should get minute correctly');
- assert.equal(a.clone().zone(-120).year(), 2012, 'should get year correctly');
- assert.equal(a.clone().zone(-120).month(), 0, 'should get month correctly');
- assert.equal(a.clone().zone(-120).date(), 1, 'should get date correctly');
- assert.equal(a.clone().zone(-120).hour(), 2, 'should get hour correctly');
- assert.equal(a.clone().zone(-120).minute(), 0, 'should get minute correctly');
- assert.equal(a.clone().zone(-90).year(), 2012, 'should get year correctly');
- assert.equal(a.clone().zone(-90).month(), 0, 'should get month correctly');
- assert.equal(a.clone().zone(-90).date(), 1, 'should get date correctly');
- assert.equal(a.clone().zone(-90).hour(), 1, 'should get hour correctly');
- assert.equal(a.clone().zone(-90).minute(), 30, 'should get minute correctly');
- });
- test('from', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA).zone(720),
- zoneC = moment(zoneA).zone(360),
- zoneD = moment(zoneA).zone(-690),
- other = moment(zoneA).add(35, 'm');
- assert.equal(zoneA.from(other), zoneB.from(other), 'moment#from should be the same in all zones');
- assert.equal(zoneA.from(other), zoneC.from(other), 'moment#from should be the same in all zones');
- assert.equal(zoneA.from(other), zoneD.from(other), 'moment#from should be the same in all zones');
- });
- test('diff', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA).zone(720),
- zoneC = moment(zoneA).zone(360),
- zoneD = moment(zoneA).zone(-690),
- other = moment(zoneA).add(35, 'm');
- assert.equal(zoneA.diff(other), zoneB.diff(other), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other), zoneC.diff(other), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other), zoneD.diff(other), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'minute', true), zoneB.diff(other, 'minute', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'minute', true), zoneC.diff(other, 'minute', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'minute', true), zoneD.diff(other, 'minute', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'hour', true), zoneB.diff(other, 'hour', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'hour', true), zoneC.diff(other, 'hour', true), 'moment#diff should be the same in all zones');
- assert.equal(zoneA.diff(other, 'hour', true), zoneD.diff(other, 'hour', true), 'moment#diff should be the same in all zones');
- });
- test('unix offset and timestamp', function (assert) {
- var zoneA = moment(),
- zoneB = moment(zoneA).zone(720),
- zoneC = moment(zoneA).zone(360),
- zoneD = moment(zoneA).zone(-690);
- assert.equal(zoneA.unix(), zoneB.unix(), 'moment#unix should be the same in all zones');
- assert.equal(zoneA.unix(), zoneC.unix(), 'moment#unix should be the same in all zones');
- assert.equal(zoneA.unix(), zoneD.unix(), 'moment#unix should be the same in all zones');
- assert.equal(+zoneA, +zoneB, 'moment#valueOf should be the same in all zones');
- assert.equal(+zoneA, +zoneC, 'moment#valueOf should be the same in all zones');
- assert.equal(+zoneA, +zoneD, 'moment#valueOf should be the same in all zones');
- });
- test('cloning', function (assert) {
- assert.equal(moment().zone(120).clone().zone(), 120, 'explicit cloning should retain the zone');
- assert.equal(moment().zone(-120).clone().zone(), -120, 'explicit cloning should retain the zone');
- assert.equal(moment(moment().zone(120)).zone(), 120, 'implicit cloning should retain the zone');
- assert.equal(moment(moment().zone(-120)).zone(), -120, 'implicit cloning should retain the zone');
- });
- test('start of / end of', function (assert) {
- var a = moment.utc([2010, 1, 2, 0, 0, 0]).zone(450);
- assert.equal(a.clone().startOf('day').hour(), 0, 'start of day should work on moments with a zone');
- assert.equal(a.clone().startOf('day').minute(), 0, 'start of day should work on moments with a zone');
- assert.equal(a.clone().startOf('hour').minute(), 0, 'start of hour should work on moments with a zone');
- assert.equal(a.clone().endOf('day').hour(), 23, 'end of day should work on moments with a zone');
- assert.equal(a.clone().endOf('day').minute(), 59, 'end of day should work on moments with a zone');
- assert.equal(a.clone().endOf('hour').minute(), 59, 'end of hour should work on moments with a zone');
- });
- test('reset zone with moment#utc', function (assert) {
- var a = moment.utc([2012]).zone(480);
- assert.equal(a.clone().hour(), 16, 'different zone should have different hour');
- assert.equal(a.clone().utc().hour(), 0, 'calling moment#utc should reset the offset');
- });
- test('reset zone with moment#local', function (assert) {
- var a = moment([2012]).zone(480);
- assert.equal(a.clone().local().hour(), 0, 'calling moment#local should reset the offset');
- });
- test('toDate', function (assert) {
- var zoneA = new Date(),
- zoneB = moment(zoneA).zone(720).toDate(),
- zoneC = moment(zoneA).zone(360).toDate(),
- zoneD = moment(zoneA).zone(-690).toDate();
- assert.equal(+zoneA, +zoneB, 'moment#toDate should output a date with the right unix timestamp');
- assert.equal(+zoneA, +zoneC, 'moment#toDate should output a date with the right unix timestamp');
- assert.equal(+zoneA, +zoneD, 'moment#toDate should output a date with the right unix timestamp');
- });
- test('same / before / after', function (assert) {
- var zoneA = moment().utc(),
- zoneB = moment(zoneA).zone(120),
- zoneC = moment(zoneA).zone(-120);
- assert.ok(zoneA.isSame(zoneB), 'two moments with different offsets should be the same');
- assert.ok(zoneA.isSame(zoneC), 'two moments with different offsets should be the same');
- assert.ok(zoneA.isSame(zoneB, 'hour'), 'two moments with different offsets should be the same hour');
- assert.ok(zoneA.isSame(zoneC, 'hour'), 'two moments with different offsets should be the same hour');
- zoneA.add(1, 'hour');
- assert.ok(zoneA.isAfter(zoneB), 'isAfter should work with two moments with different offsets');
- assert.ok(zoneA.isAfter(zoneC), 'isAfter should work with two moments with different offsets');
- assert.ok(zoneA.isAfter(zoneB, 'hour'), 'isAfter:hour should work with two moments with different offsets');
- assert.ok(zoneA.isAfter(zoneC, 'hour'), 'isAfter:hour should work with two moments with different offsets');
- zoneA.subtract(2, 'hour');
- assert.ok(zoneA.isBefore(zoneB), 'isBefore should work with two moments with different offsets');
- assert.ok(zoneA.isBefore(zoneC), 'isBefore should work with two moments with different offsets');
- assert.ok(zoneA.isBefore(zoneB, 'hour'), 'isBefore:hour should work with two moments with different offsets');
- assert.ok(zoneA.isBefore(zoneC, 'hour'), 'isBefore:hour should work with two moments with different offsets');
- });
- test('add / subtract over dst', function (assert) {
- var oldOffset = moment.updateOffset,
- m = moment.utc([2000, 2, 31, 3]);
- moment.updateOffset = function (mom, keepTime) {
- if (mom.clone().utc().month() > 2) {
- mom.zone(-60, keepTime);
- } else {
- mom.zone(0, keepTime);
- }
- };
- assert.equal(m.hour(), 3, 'should start at 00:00');
- m.add(24, 'hour');
- assert.equal(m.hour(), 4, 'adding 24 hours should disregard dst');
- m.subtract(24, 'hour');
- assert.equal(m.hour(), 3, 'subtracting 24 hours should disregard dst');
- m.add(1, 'day');
- assert.equal(m.hour(), 3, 'adding 1 day should have the same hour');
- m.subtract(1, 'day');
- assert.equal(m.hour(), 3, 'subtracting 1 day should have the same hour');
- m.add(1, 'month');
- assert.equal(m.hour(), 3, 'adding 1 month should have the same hour');
- m.subtract(1, 'month');
- assert.equal(m.hour(), 3, 'subtracting 1 month should have the same hour');
- moment.updateOffset = oldOffset;
- });
- test('isDST', function (assert) {
- var oldOffset = moment.updateOffset;
- moment.updateOffset = function (mom, keepTime) {
- if (mom.month() > 2 && mom.month() < 9) {
- mom.zone(-60, keepTime);
- } else {
- mom.zone(0, keepTime);
- }
- };
- assert.ok(!moment().month(0).isDST(), 'Jan should not be summer dst');
- assert.ok(moment().month(6).isDST(), 'Jul should be summer dst');
- assert.ok(!moment().month(11).isDST(), 'Dec should not be summer dst');
- moment.updateOffset = function (mom) {
- if (mom.month() > 2 && mom.month() < 9) {
- mom.zone(0);
- } else {
- mom.zone(-60);
- }
- };
- assert.ok(moment().month(0).isDST(), 'Jan should be winter dst');
- assert.ok(!moment().month(6).isDST(), 'Jul should not be winter dst');
- assert.ok(moment().month(11).isDST(), 'Dec should be winter dst');
- moment.updateOffset = oldOffset;
- });
- test('zone names', function (assert) {
- assert.equal(moment().zoneAbbr(), '', 'Local zone abbr should be empty');
- assert.equal(moment().format('z'), '', 'Local zone formatted abbr should be empty');
- assert.equal(moment().zoneName(), '', 'Local zone name should be empty');
- assert.equal(moment().format('zz'), '', 'Local zone formatted name should be empty');
- assert.equal(moment.utc().zoneAbbr(), 'UTC', 'UTC zone abbr should be UTC');
- assert.equal(moment.utc().format('z'), 'UTC', 'UTC zone formatted abbr should be UTC');
- assert.equal(moment.utc().zoneName(), 'Coordinated Universal Time', 'UTC zone abbr should be Coordinated Universal Time');
- assert.equal(moment.utc().format('zz'), 'Coordinated Universal Time', 'UTC zone formatted abbr should be Coordinated Universal Time');
- });
- test('hours alignment with UTC', function (assert) {
- assert.equal(moment().zone(120).hasAlignedHourOffset(), true);
- assert.equal(moment().zone(-180).hasAlignedHourOffset(), true);
- assert.equal(moment().zone(90).hasAlignedHourOffset(), false);
- assert.equal(moment().zone(-90).hasAlignedHourOffset(), false);
- });
- test('hours alignment with other zone', function (assert) {
- var m = moment().zone(120);
- assert.equal(m.hasAlignedHourOffset(moment().zone(180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().zone(90)), false);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-90)), false);
- m = moment().zone(90);
- assert.equal(m.hasAlignedHourOffset(moment().zone(180)), false);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-180)), false);
- assert.equal(m.hasAlignedHourOffset(moment().zone(30)), true);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-30)), true);
- m = moment().zone(-60);
- assert.equal(m.hasAlignedHourOffset(moment().zone(180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-180)), true);
- assert.equal(m.hasAlignedHourOffset(moment().zone(90)), false);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-90)), false);
- m = moment().zone(25);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-35)), true);
- assert.equal(m.hasAlignedHourOffset(moment().zone(85)), true);
- assert.equal(m.hasAlignedHourOffset(moment().zone(35)), false);
- assert.equal(m.hasAlignedHourOffset(moment().zone(-85)), false);
- });
- test('parse zone', function (assert) {
- var m = moment('2013-01-01T00:00:00-13:00').parseZone();
- assert.equal(m.zone(), 13 * 60);
- assert.equal(m.hours(), 0);
- });
- test('parse zone static', function (assert) {
- var m = moment.parseZone('2013-01-01T00:00:00-13:00');
- assert.equal(m.zone(), 13 * 60);
- assert.equal(m.hours(), 0);
- });
- test('parse zone with more arguments', function (assert) {
- var m;
- m = moment.parseZone('2013 01 01 05 -13:00', 'YYYY MM DD HH ZZ');
- assert.equal(m.format(), '2013-01-01T05:00:00-13:00', 'accept input and format');
- m = moment.parseZone('2013-01-01-13:00', 'YYYY MM DD ZZ', true);
- assert.equal(m.isValid(), false, 'accept input, format and strict flag');
- m = moment.parseZone('2013-01-01-13:00', ['DD MM YYYY ZZ', 'YYYY MM DD ZZ']);
- assert.equal(m.format(), '2013-01-01T00:00:00-13:00', 'accept input and array of formats');
- });
- test('parse zone with a timezone from the format string', function (assert) {
- var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY ZZ #####').parseZone();
- assert.equal(m.zone(), 4 * 60);
- });
- test('parse zone without a timezone included in the format string', function (assert) {
- var m = moment('11-12-2013 -0400 +1100', 'DD-MM-YYYY').parseZone();
- assert.equal(m.zone(), -11 * 60);
- });
- test('timezone format', function (assert) {
- assert.equal(moment().zone(-60).format('ZZ'), '+0100', '-60 -> +0100');
- assert.equal(moment().zone(-90).format('ZZ'), '+0130', '-90 -> +0130');
- assert.equal(moment().zone(-120).format('ZZ'), '+0200', '-120 -> +0200');
- assert.equal(moment().zone(+60).format('ZZ'), '-0100', '+60 -> -0100');
- assert.equal(moment().zone(+90).format('ZZ'), '-0130', '+90 -> -0130');
- assert.equal(moment().zone(+120).format('ZZ'), '-0200', '+120 -> -0200');
- });
- }));
|