1if (typeof T === 'undefined') require('../setup'); 2 3T('sin', function () { 4 5 function t(n, pr, rm, expected) { 6 Decimal.precision = pr; 7 Decimal.rounding = rm; 8 T.assertEqual(expected, new Decimal(n).sin().valueOf()); 9 } 10 11 Decimal.config({ 12 precision: 40, 13 rounding: 4, 14 toExpNeg: -9e15, 15 toExpPos: 9e15, 16 minE: -9e15, 17 maxE: 9e15 18 }); 19 20 t('NaN', 40, 4, 'NaN'); 21 t('0', 20, 4, '0'); 22 t('-0', 20, 4, '-0'); 23 t('Infinity', 40, 4, 'NaN'); 24 t('-Infinity', 40, 4, 'NaN'); 25 26 t('93332358216', 48, 5, '0.000816283943127306029649893248669685836695194145277'); 27 t('766737078569022420173292205068953186848344673451240027655054631094318050', 18, 6, '0.00111135055272494455'); 28 29 t('0.359136383962093189473162700700590970518456985109181875257764726415814563424613193774806585890478208084275468196568294033', 38, 1, '0.35146584650000000000000000000000000006'); 30 t('3202222222227222222222222222222224222222222222222222222222.222222222222222222222222222', 7, 0, '0.5499568'); 31 t('8', 5, 6, '0.98936'); 32 t('0.15865555', 6, 0, '0.157991'); 33 t('4.752', 5, 5, '-0.99922'); 34 t('82315980453524767298085693995239044972', 5, 6, '0.18971'); 35 t('9975666666', 10, 4, '-0.1932244457'); 36 t('8111111111111111222222222222222.1118', 8, 4, '0.93383768'); 37 t('1582389099446045988.444444444164077777777777777777', 3, 5, '0.145'); 38 t('42.29499991999999919999999919', 2, 5, '-0.99'); 39 t('2', 3, 1, '0.909'); 40 t('225204831071708162873414430801935442203', 3, 4, '-0.367'); 41 t('70387777777777777777', 6, 6, '-0.903662'); 42 t('0.000009960105486531367489163480390414384530151948706557615588133070855712559603', 5, 3, '0.0000099601'); 43 t('2.3', 1, 5, '0.7'); 44 t('0.0369897655941305860082440964', 1, 0, '0.04'); 45 t('93333333333.1111111113333335607254506018497853948241554833333333', 1, 4, '1'); 46 t('0.81475726', 10, 2, '0.7275590895'); 47 t('0.0020719', 5, 2, '0.0020719'); 48 t('0.822309454290117043180146453820530722', 3, 2, '0.733'); 49 t('811801481366184919659088.161679696898591', 8, 0, '-0.33739172'); 50 t('82222222239', 6, 1, '0.85357'); 51 t('0.671515352458', 4, 1, '0.6221'); 52 t('0.1', 10, 2, '0.09983341665'); 53 t('30.4507', 5, 0, '-0.82218'); 54 t('82539', 1, 6, '0.06'); 55 t('7904297312438003184', 8, 1, '0.88548151'); 56 t('1555591677261255189013625216076301609467761280', 4, 4, '0.6012'); 57 t('0.206', 5, 0, '0.20455'); 58 t('47.85', 4, 3, '-0.664'); 59 t('354522', 6, 0, '-0.432959'); 60 t('57111.555555555551111', 9, 1, '-0.51645502'); 61 t('5084117035723528870966332457.91693481159599044107', 10, 0, '0.5456651665'); 62 t('66', 3, 2, '-0.0265'); 63 t('4415133931290705273393593393689.69701970681754754956578240920056', 3, 4, '0.651'); 64 t('4641', 4, 1, '-0.7628'); 65 t('60782.222222', 3, 0, '-0.967'); 66 t('9295.7', 4, 1, '0.2692'); 67 t('660060.8', 5, 6, '-0.3736'); 68 t('86', 7, 0, '-0.9234585'); 69 t('0.867224365334893476015547423881141062327495194226274166759019810427983958472019', 7, 0, '0.7625362'); 70 t('35', 9, 4, '-0.428182669'); 71 t('6.4522', 4, 2, '0.1683'); 72 t('74298341154961724283464838063126436742467617925325544', 6, 5, '0.381838'); 73 t('98.9', 1, 3, '-1'); 74 t('8719985534823285.8450271997', 5, 4, '-0.43915'); 75 t('0.9528405', 9, 0, '0.815064492'); 76 t('3007.440843', 1, 3, '-0.9'); 77 t('8821000', 9, 3, '-0.999820738'); 78 t('0.7244', 2, 5, '0.66'); 79 t('223798525254185007541841321707204622.59819179923', 16, 1, '0.7304638404669184'); 80 t('29832077939805655500490926756388', 31, 5, '0.9999881003434971787558628446047'); 81 t('13555555555555.00000000000000000472565', 49, 1, '0.6767787926553990715415556952412713237217924208783'); 82 t('899998709983400169781485597598985275361858454653904477166', 80, 0, '-0.9619682988852763093696947825524296540074948329137260856105387448568258894882118'); 83 t('39826881720735191122621609200399853', 63, 6, '0.808868299975611790138921415253062939870563699821120858587818528'); 84 t('0.005341982048471623278003226810889859381173803701969742990587783072822', 70, 4, '0.005341956641353734027312587021500975661701907307617983686735841700502311'); 85 t('277.9997777777777716692059399741498679999', 30, 6, '0.999514190524582708045097875864'); 86 t('61429536536284373.1373681766492167', 72, 0, '-0.987289391477952440400357263926723647295916567423922849613191038848150249'); 87 t('7499999999909999997.909999999999', 71, 4, '0.34301339416705489181513042461845425762147177499632116466434976820897798'); 88 t('349999995999999999939992999.92', 78, 4, '0.470719374558628137654141208065693026899676258865423797523069796274766223234845'); 89 t('44510000000002060000000000000000.0200000008', 20, 5, '0.94842545081726504808'); 90 t('62222222222293973777.555555555555577777777777', 20, 1, '0.97474440584787996681'); 91 t('0.00000075952439582097539633', 49, 6, '0.0000007595243958209023709318824206298992320090760083707'); 92 t('6466917226846635097989717000204.490981137498768', 23, 6, '-0.5067890798594245927272'); 93 t('90000000000000007122', 12, 0, '-0.953061948465'); 94 t('0.422029137363394323', 22, 5, '0.4096123952171808560627'); 95 t('818.843', 70, 1, '0.8968883045810930941510638401062405075664719019866066309176929107557629'); 96 t('30000000000000000200000000000003000000000000005.0000009', 50, 2, '-0.12313481713171373142907951990491671356466363502241'); 97 t('975675853314022371079225', 48, 5, '0.880137190184686438889125592539968640170534430859'); 98 t('0.00000066558889026', 77, 6, '0.00000066558889025995085640282676346670712623242127613563915036627009080674622220984'); 99 t('69299999.9999999999999', 46, 5, '-0.3462252058608000475638742067375334366431550575'); 100 t('8111111111267488711.9286432453434826269588597', 62, 4, '-0.99113853372157352283292183868051054140090305817866106070973511'); 101 t('82', 71, 0, '0.31322878243308515263353199729481870255069002611658346075413062493460387'); 102 t('488826170909042284127242210428971', 76, 6, '0.8995289099301142050732477297866877720021805553317366849920338096104233105207'); 103 t('9092229227242222522222222222.66', 18, 0, '-0.935465793019682237'); 104 t('5805959970379373082098495883210891370.0067111', 46, 6, '0.2201197700332631564419599177639647998475543596'); 105 t('926600000000000000590', 41, 2, '0.81228550764810620054247659502626219692234'); 106 t('619490746366110587736593084360', 65, 1, '0.21194121003724604936564767272815880572843184525364715905320674006'); 107 t('5473424', 25, 0, '0.09262060997310434002923837'); 108 t('5666666666666666666666666666666666666666666666616666626.6666', 87, 4, '-0.977239495645491722400759456250446932597508047794151805593705662875402907345001472700784'); 109 t('499999.99999899999999999999999999999999999', 78, 5, '0.177832185579176104658571003320627225266903968719990210539163985433843099469721'); 110 t('900000', 117, 3, '0.316282026370992050734738815532587276379228020456998295610327862506624971973233544404550831654146703508761520381016242'); 111 t('83027766684462236825322.62114650623171519639122521318', 12, 4, '-0.476316326483'); 112 t('925910897623', 129, 5, '0.792868652237225000804927754028414838623611710010734993138551247754919869022556217868513568705036768423332287103460206126685907362'); 113 t('2918961308828646648994639730677467564302490828837720043486456401538236854705425586479512418277497121841759061091363', 23, 0, '-0.80586906475943044297492'); 114 t('800000000000000', 13, 2, '0.9931677199759'); 115 t('18400003.16100000000000032', 8, 6, '0.27307495'); 116 t('99.999999999999999999999999999999999999999999999993', 63, 4, '-0.506365641109758793656557610459785432065032721296693555549406261'); 117 t('20694757397464803355324887435556580472151471', 24, 6, '-0.0958707304545699270391254'); 118 t('333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333335', 171, 3, '0.999861104212610844432827649084650490692662683912806434297051730891484017620891490814751729807506108594451118885277110368312661669230716203945478379798471281336247356157603'); 119 t('22011131111011111.111111611113111111111151111111', 143, 2, '0.82582504036277799386306063085803210583251158969990606609364360685569588545519071481543672724620118406694191888115120286393881609546697317692404'); 120 t('996270725099515169352424536636186062915113219400094989.8763797268889422850038402633796294758036260533902551191769915343780424028900449342752548782035', 46, 2, '0.6613706114081017074779805460666900787572253475'); 121 t('0.780360750628373', 37, 5, '0.7035358359376557390803090830882458906'); 122}); 123