if (typeof T === 'undefined') require('../setup'); (function () { T('sin'); function t(n, pr, rm, expected) { Decimal.precision = pr; Decimal.rounding = rm; T.assertEqual(expected, new Decimal(n).sin().valueOf()); } Decimal.config({ precision: 40, rounding: 4, toExpNeg: -9e15, toExpPos: 9e15, minE: -9e15, maxE: 9e15 }); t('NaN', 40, 4, 'NaN'); t('0', 20, 4, '0'); t('-0', 20, 4, '-0'); t('Infinity', 40, 4, 'NaN'); t('-Infinity', 40, 4, 'NaN'); t('93332358216', 48, 5, '0.000816283943127306029649893248669685836695194145277'); t('766737078569022420173292205068953186848344673451240027655054631094318050', 18, 6, '0.00111135055272494455'); t('0.359136383962093189473162700700590970518456985109181875257764726415814563424613193774806585890478208084275468196568294033', 38, 1, '0.35146584650000000000000000000000000006'); t('3202222222227222222222222222222224222222222222222222222222.222222222222222222222222222', 7, 0, '0.5499568'); t('8', 5, 6, '0.98936'); t('0.15865555', 6, 0, '0.157991'); t('4.752', 5, 5, '-0.99922'); t('82315980453524767298085693995239044972', 5, 6, '0.18971'); t('9975666666', 10, 4, '-0.1932244457'); t('8111111111111111222222222222222.1118', 8, 4, '0.93383768'); t('1582389099446045988.444444444164077777777777777777', 3, 5, '0.145'); t('42.29499991999999919999999919', 2, 5, '-0.99'); t('2', 3, 1, '0.909'); t('225204831071708162873414430801935442203', 3, 4, '-0.367'); t('70387777777777777777', 6, 6, '-0.903662'); t('0.000009960105486531367489163480390414384530151948706557615588133070855712559603', 5, 3, '0.0000099601'); t('2.3', 1, 5, '0.7'); t('0.0369897655941305860082440964', 1, 0, '0.04'); t('93333333333.1111111113333335607254506018497853948241554833333333', 1, 4, '1'); t('0.81475726', 10, 2, '0.7275590895'); t('0.0020719', 5, 2, '0.0020719'); t('0.822309454290117043180146453820530722', 3, 2, '0.733'); t('811801481366184919659088.161679696898591', 8, 0, '-0.33739172'); t('82222222239', 6, 1, '0.85357'); t('0.671515352458', 4, 1, '0.6221'); t('0.1', 10, 2, '0.09983341665'); t('30.4507', 5, 0, '-0.82218'); t('82539', 1, 6, '0.06'); t('7904297312438003184', 8, 1, '0.88548151'); t('1555591677261255189013625216076301609467761280', 4, 4, '0.6012'); t('0.206', 5, 0, '0.20455'); t('47.85', 4, 3, '-0.664'); t('354522', 6, 0, '-0.432959'); t('57111.555555555551111', 9, 1, '-0.51645502'); t('5084117035723528870966332457.91693481159599044107', 10, 0, '0.5456651665'); t('66', 3, 2, '-0.0265'); t('4415133931290705273393593393689.69701970681754754956578240920056', 3, 4, '0.651'); t('4641', 4, 1, '-0.7628'); t('60782.222222', 3, 0, '-0.967'); t('9295.7', 4, 1, '0.2692'); t('660060.8', 5, 6, '-0.3736'); t('86', 7, 0, '-0.9234585'); t('0.867224365334893476015547423881141062327495194226274166759019810427983958472019', 7, 0, '0.7625362'); t('35', 9, 4, '-0.428182669'); t('6.4522', 4, 2, '0.1683'); t('74298341154961724283464838063126436742467617925325544', 6, 5, '0.381838'); t('98.9', 1, 3, '-1'); t('8719985534823285.8450271997', 5, 4, '-0.43915'); t('0.9528405', 9, 0, '0.815064492'); t('3007.440843', 1, 3, '-0.9'); t('8821000', 9, 3, '-0.999820738'); t('0.7244', 2, 5, '0.66'); t('223798525254185007541841321707204622.59819179923', 16, 1, '0.7304638404669184'); t('29832077939805655500490926756388', 31, 5, '0.9999881003434971787558628446047'); t('13555555555555.00000000000000000472565', 49, 1, '0.6767787926553990715415556952412713237217924208783'); t('899998709983400169781485597598985275361858454653904477166', 80, 0, '-0.9619682988852763093696947825524296540074948329137260856105387448568258894882118'); t('39826881720735191122621609200399853', 63, 6, '0.808868299975611790138921415253062939870563699821120858587818528'); t('0.005341982048471623278003226810889859381173803701969742990587783072822', 70, 4, '0.005341956641353734027312587021500975661701907307617983686735841700502311'); t('277.9997777777777716692059399741498679999', 30, 6, '0.999514190524582708045097875864'); t('61429536536284373.1373681766492167', 72, 0, '-0.987289391477952440400357263926723647295916567423922849613191038848150249'); t('7499999999909999997.909999999999', 71, 4, '0.34301339416705489181513042461845425762147177499632116466434976820897798'); t('349999995999999999939992999.92', 78, 4, '0.470719374558628137654141208065693026899676258865423797523069796274766223234845'); t('44510000000002060000000000000000.0200000008', 20, 5, '0.94842545081726504808'); t('62222222222293973777.555555555555577777777777', 20, 1, '0.97474440584787996681'); t('0.00000075952439582097539633', 49, 6, '0.0000007595243958209023709318824206298992320090760083707'); t('6466917226846635097989717000204.490981137498768', 23, 6, '-0.5067890798594245927272'); t('90000000000000007122', 12, 0, '-0.953061948465'); t('0.422029137363394323', 22, 5, '0.4096123952171808560627'); t('818.843', 70, 1, '0.8968883045810930941510638401062405075664719019866066309176929107557629'); t('30000000000000000200000000000003000000000000005.0000009', 50, 2, '-0.12313481713171373142907951990491671356466363502241'); t('975675853314022371079225', 48, 5, '0.880137190184686438889125592539968640170534430859'); t('0.00000066558889026', 77, 6, '0.00000066558889025995085640282676346670712623242127613563915036627009080674622220984'); t('69299999.9999999999999', 46, 5, '-0.3462252058608000475638742067375334366431550575'); t('8111111111267488711.9286432453434826269588597', 62, 4, '-0.99113853372157352283292183868051054140090305817866106070973511'); t('82', 71, 0, '0.31322878243308515263353199729481870255069002611658346075413062493460387'); t('488826170909042284127242210428971', 76, 6, '0.8995289099301142050732477297866877720021805553317366849920338096104233105207'); t('9092229227242222522222222222.66', 18, 0, '-0.935465793019682237'); t('5805959970379373082098495883210891370.0067111', 46, 6, '0.2201197700332631564419599177639647998475543596'); t('926600000000000000590', 41, 2, '0.81228550764810620054247659502626219692234'); t('619490746366110587736593084360', 65, 1, '0.21194121003724604936564767272815880572843184525364715905320674006'); t('5473424', 25, 0, '0.09262060997310434002923837'); t('5666666666666666666666666666666666666666666666616666626.6666', 87, 4, '-0.977239495645491722400759456250446932597508047794151805593705662875402907345001472700784'); t('499999.99999899999999999999999999999999999', 78, 5, '0.177832185579176104658571003320627225266903968719990210539163985433843099469721'); t('900000', 117, 3, '0.316282026370992050734738815532587276379228020456998295610327862506624971973233544404550831654146703508761520381016242'); t('83027766684462236825322.62114650623171519639122521318', 12, 4, '-0.476316326483'); t('925910897623', 129, 5, '0.792868652237225000804927754028414838623611710010734993138551247754919869022556217868513568705036768423332287103460206126685907362'); t('2918961308828646648994639730677467564302490828837720043486456401538236854705425586479512418277497121841759061091363', 23, 0, '-0.80586906475943044297492'); t('800000000000000', 13, 2, '0.9931677199759'); t('18400003.16100000000000032', 8, 6, '0.27307495'); t('99.999999999999999999999999999999999999999999999993', 63, 4, '-0.506365641109758793656557610459785432065032721296693555549406261'); t('20694757397464803355324887435556580472151471', 24, 6, '-0.0958707304545699270391254'); t('333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333335', 171, 3, '0.999861104212610844432827649084650490692662683912806434297051730891484017620891490814751729807506108594451118885277110368312661669230716203945478379798471281336247356157603'); t('22011131111011111.111111611113111111111151111111', 143, 2, '0.82582504036277799386306063085803210583251158969990606609364360685569588545519071481543672724620118406694191888115120286393881609546697317692404'); t('996270725099515169352424536636186062915113219400094989.8763797268889422850038402633796294758036260533902551191769915343780424028900449342752548782035', 46, 2, '0.6613706114081017074779805460666900787572253475'); t('0.780360750628373', 37, 5, '0.7035358359376557390803090830882458906'); T.stop(); })();