use rstest::*;
use fastnum::{decimal::*, *};
#[rstest(::trace)]
#[case(dec128!(0), dec128!(0), dec128!(1), dec128!(0))]
#[case(dec128!(1), dec128!(0.0175), dec128!(0.9998), dec128!(0.0175))]
#[case(dec128!(2), dec128!(0.0349), dec128!(0.9994), dec128!(0.0349))]
#[case(dec128!(3), dec128!(0.0523), dec128!(0.9986), dec128!(0.0524))]
#[case(dec128!(4), dec128!(0.0698), dec128!(0.9976), dec128!(0.0699))]
#[case(dec128!(5), dec128!(0.0872), dec128!(0.9962), dec128!(0.0875))]
#[case(dec128!(6), dec128!(0.1045), dec128!(0.9945), dec128!(0.1051))]
#[case(dec128!(7), dec128!(0.1219), dec128!(0.9925), dec128!(0.1228))]
#[case(dec128!(8), dec128!(0.1392), dec128!(0.9903), dec128!(0.1405))]
#[case(dec128!(9), dec128!(0.1564), dec128!(0.9877), dec128!(0.1584))]
#[case(dec128!(10), dec128!(0.1736), dec128!(0.9848), dec128!(0.1763))]
#[case(dec128!(11), dec128!(0.1908), dec128!(0.9816), dec128!(0.1944))]
#[case(dec128!(12), dec128!(0.2079), dec128!(0.9781), dec128!(0.2126))]
#[case(dec128!(13), dec128!(0.225), dec128!(0.9744), dec128!(0.2309))]
#[case(dec128!(14), dec128!(0.2419), dec128!(0.9703), dec128!(0.2493))]
#[case(dec128!(15), dec128!(0.2588), dec128!(0.9659), dec128!(0.2679))]
#[case(dec128!(16), dec128!(0.2756), dec128!(0.9613), dec128!(0.2867))]
#[case(dec128!(17), dec128!(0.2924), dec128!(0.9563), dec128!(0.3057))]
#[case(dec128!(18), dec128!(0.309), dec128!(0.9511), dec128!(0.3249))]
#[case(dec128!(19), dec128!(0.3256), dec128!(0.9455), dec128!(0.3443))]
#[case(dec128!(20), dec128!(0.342), dec128!(0.9397), dec128!(0.364))]
#[case(dec128!(21), dec128!(0.3584), dec128!(0.9336), dec128!(0.3839))]
#[case(dec128!(22), dec128!(0.3746), dec128!(0.9272), dec128!(0.404))]
#[case(dec128!(23), dec128!(0.3907), dec128!(0.9205), dec128!(0.4245))]
#[case(dec128!(24), dec128!(0.4067), dec128!(0.9135), dec128!(0.4452))]
#[case(dec128!(25), dec128!(0.4226), dec128!(0.9063), dec128!(0.4663))]
#[case(dec128!(26), dec128!(0.4384), dec128!(0.8988), dec128!(0.4877))]
#[case(dec128!(27), dec128!(0.454), dec128!(0.891), dec128!(0.5095))]
#[case(dec128!(28), dec128!(0.4695), dec128!(0.8829), dec128!(0.5317))]
#[case(dec128!(29), dec128!(0.4848), dec128!(0.8746), dec128!(0.5543))]
#[case(dec128!(30), dec128!(0.5), dec128!(0.866), dec128!(0.5774))]
#[case(dec128!(31), dec128!(0.515), dec128!(0.8572), dec128!(0.6009))]
#[case(dec128!(32), dec128!(0.5299), dec128!(0.848), dec128!(0.6249))]
#[case(dec128!(33), dec128!(0.5446), dec128!(0.8387), dec128!(0.6494))]
#[case(dec128!(34), dec128!(0.5592), dec128!(0.829), dec128!(0.6745))]
#[case(dec128!(35), dec128!(0.5736), dec128!(0.8192), dec128!(0.7002))]
#[case(dec128!(36), dec128!(0.5878), dec128!(0.809), dec128!(0.7265))]
#[case(dec128!(37), dec128!(0.6018), dec128!(0.7986), dec128!(0.7536))]
#[case(dec128!(38), dec128!(0.6157), dec128!(0.788), dec128!(0.7813))]
#[case(dec128!(39), dec128!(0.6293), dec128!(0.7771), dec128!(0.8098))]
#[case(dec128!(40), dec128!(0.6428), dec128!(0.766), dec128!(0.8391))]
#[case(dec128!(41), dec128!(0.6561), dec128!(0.7547), dec128!(0.8693))]
#[case(dec128!(42), dec128!(0.6691), dec128!(0.7431), dec128!(0.9004))]
#[case(dec128!(43), dec128!(0.682), dec128!(0.7314), dec128!(0.9325))]
#[case(dec128!(44), dec128!(0.6947), dec128!(0.7193), dec128!(0.9657))]
#[case(dec128!(45), dec128!(0.7071), dec128!(0.7071), dec128!(1))]
#[case(dec128!(46), dec128!(0.7193), dec128!(0.6947), dec128!(1.0355))]
#[case(dec128!(47), dec128!(0.7314), dec128!(0.682), dec128!(1.0724))]
#[case(dec128!(48), dec128!(0.7431), dec128!(0.6691), dec128!(1.1106))]
#[case(dec128!(49), dec128!(0.7547), dec128!(0.6561), dec128!(1.1504))]
#[case(dec128!(50), dec128!(0.766), dec128!(0.6428), dec128!(1.1918))]
#[case(dec128!(51), dec128!(0.7771), dec128!(0.6293), dec128!(1.2349))]
#[case(dec128!(52), dec128!(0.788), dec128!(0.6157), dec128!(1.2799))]
#[case(dec128!(53), dec128!(0.7986), dec128!(0.6018), dec128!(1.327))]
#[case(dec128!(54), dec128!(0.809), dec128!(0.5878), dec128!(1.3764))]
#[case(dec128!(55), dec128!(0.8192), dec128!(0.5736), dec128!(1.4281))]
#[case(dec128!(56), dec128!(0.829), dec128!(0.5592), dec128!(1.4826))]
#[case(dec128!(57), dec128!(0.8387), dec128!(0.5446), dec128!(1.5399))]
#[case(dec128!(58), dec128!(0.848), dec128!(0.5299), dec128!(1.6003))]
#[case(dec128!(59), dec128!(0.8572), dec128!(0.515), dec128!(1.6643))]
#[case(dec128!(60), dec128!(0.866), dec128!(0.5), dec128!(1.7321))]
#[case(dec128!(61), dec128!(0.8746), dec128!(0.4848), dec128!(1.804))]
#[case(dec128!(62), dec128!(0.8829), dec128!(0.4695), dec128!(1.8807))]
#[case(dec128!(63), dec128!(0.891), dec128!(0.454), dec128!(1.9626))]
#[case(dec128!(64), dec128!(0.8988), dec128!(0.4384), dec128!(2.0503))]
#[case(dec128!(65), dec128!(0.9063), dec128!(0.4226), dec128!(2.1445))]
#[case(dec128!(66), dec128!(0.9135), dec128!(0.4067), dec128!(2.246))]
#[case(dec128!(67), dec128!(0.9205), dec128!(0.3907), dec128!(2.3559))]
#[case(dec128!(68), dec128!(0.9272), dec128!(0.3746), dec128!(2.4751))]
#[case(dec128!(69), dec128!(0.9336), dec128!(0.3584), dec128!(2.6051))]
#[case(dec128!(70), dec128!(0.9397), dec128!(0.342), dec128!(2.7475))]
#[case(dec128!(71), dec128!(0.9455), dec128!(0.3256), dec128!(2.9042))]
#[case(dec128!(72), dec128!(0.9511), dec128!(0.309), dec128!(3.0777))]
#[case(dec128!(73), dec128!(0.9563), dec128!(0.2924), dec128!(3.2709))]
#[case(dec128!(74), dec128!(0.9613), dec128!(0.2756), dec128!(3.4874))]
#[case(dec128!(75), dec128!(0.9659), dec128!(0.2588), dec128!(3.7321))]
#[case(dec128!(76), dec128!(0.9703), dec128!(0.2419), dec128!(4.0108))]
#[case(dec128!(77), dec128!(0.9744), dec128!(0.225), dec128!(4.3315))]
#[case(dec128!(78), dec128!(0.9781), dec128!(0.2079), dec128!(4.7046))]
#[case(dec128!(79), dec128!(0.9816), dec128!(0.1908), dec128!(5.1446))]
#[case(dec128!(80), dec128!(0.9848), dec128!(0.1736), dec128!(5.6713))]
#[case(dec128!(81), dec128!(0.9877), dec128!(0.1564), dec128!(6.3138))]
#[case(dec128!(82), dec128!(0.9903), dec128!(0.1392), dec128!(7.1154))]
#[case(dec128!(83), dec128!(0.9925), dec128!(0.1219), dec128!(8.1443))]
#[case(dec128!(84), dec128!(0.9945), dec128!(0.1045), dec128!(9.5144))]
#[case(dec128!(85), dec128!(0.9962), dec128!(0.0872), dec128!(11.4301))]
#[case(dec128!(86), dec128!(0.9976), dec128!(0.0698), dec128!(14.3007))]
#[case(dec128!(87), dec128!(0.9986), dec128!(0.0523), dec128!(19.0811))]
#[case(dec128!(88), dec128!(0.9994), dec128!(0.0349), dec128!(28.6363))]
#[case(dec128!(89), dec128!(0.9998), dec128!(0.0175), dec128!(57.29))]
#[case(dec128!(90), dec128!(1), dec128!(0), D128::INFINITY)]
#[case(dec128!(91), dec128!(0.9998), dec128!(-0.0175), dec128!(-57.29))]
#[case(dec128!(92), dec128!(0.9994), dec128!(-0.0349), dec128!(-28.6363))]
#[case(dec128!(93), dec128!(0.9986), dec128!(-0.0523), dec128!(-19.0811))]
#[case(dec128!(94), dec128!(0.9976), dec128!(-0.0698), dec128!(-14.3007))]
#[case(dec128!(95), dec128!(0.9962), dec128!(-0.0872), dec128!(-11.4301))]
#[case(dec128!(96), dec128!(0.9945), dec128!(-0.1045), dec128!(-9.5144))]
#[case(dec128!(97), dec128!(0.9925), dec128!(-0.1219), dec128!(-8.1443))]
#[case(dec128!(98), dec128!(0.9903), dec128!(-0.1392), dec128!(-7.1154))]
#[case(dec128!(99), dec128!(0.9877), dec128!(-0.1564), dec128!(-6.3138))]
#[case(dec128!(100), dec128!(0.9848), dec128!(-0.1736), dec128!(-5.6713))]
#[case(dec128!(101), dec128!(0.9816), dec128!(-0.1908), dec128!(-5.1446))]
#[case(dec128!(102), dec128!(0.9781), dec128!(-0.2079), dec128!(-4.7046))]
#[case(dec128!(103), dec128!(0.9744), dec128!(-0.225), dec128!(-4.3315))]
#[case(dec128!(104), dec128!(0.9703), dec128!(-0.2419), dec128!(-4.0108))]
#[case(dec128!(105), dec128!(0.9659), dec128!(-0.2588), dec128!(-3.7321))]
#[case(dec128!(106), dec128!(0.9613), dec128!(-0.2756), dec128!(-3.4874))]
#[case(dec128!(107), dec128!(0.9563), dec128!(-0.2924), dec128!(-3.2709))]
#[case(dec128!(108), dec128!(0.9511), dec128!(-0.309), dec128!(-3.0777))]
#[case(dec128!(109), dec128!(0.9455), dec128!(-0.3256), dec128!(-2.9042))]
#[case(dec128!(110), dec128!(0.9397), dec128!(-0.342), dec128!(-2.7475))]
#[case(dec128!(111), dec128!(0.9336), dec128!(-0.3584), dec128!(-2.6051))]
#[case(dec128!(112), dec128!(0.9272), dec128!(-0.3746), dec128!(-2.4751))]
#[case(dec128!(113), dec128!(0.9205), dec128!(-0.3907), dec128!(-2.3559))]
#[case(dec128!(114), dec128!(0.9135), dec128!(-0.4067), dec128!(-2.246))]
#[case(dec128!(115), dec128!(0.9063), dec128!(-0.4226), dec128!(-2.1445))]
#[case(dec128!(116), dec128!(0.8988), dec128!(-0.4384), dec128!(-2.0503))]
#[case(dec128!(117), dec128!(0.891), dec128!(-0.454), dec128!(-1.9626))]
#[case(dec128!(118), dec128!(0.8829), dec128!(-0.4695), dec128!(-1.8807))]
#[case(dec128!(119), dec128!(0.8746), dec128!(-0.4848), dec128!(-1.804))]
#[case(dec128!(120), dec128!(0.866), dec128!(-0.5), dec128!(-1.7321))]
#[case(dec128!(121), dec128!(0.8572), dec128!(-0.515), dec128!(-1.6643))]
#[case(dec128!(122), dec128!(0.848), dec128!(-0.5299), dec128!(-1.6003))]
#[case(dec128!(123), dec128!(0.8387), dec128!(-0.5446), dec128!(-1.5399))]
#[case(dec128!(124), dec128!(0.829), dec128!(-0.5592), dec128!(-1.4826))]
#[case(dec128!(125), dec128!(0.8192), dec128!(-0.5736), dec128!(-1.4281))]
#[case(dec128!(126), dec128!(0.809), dec128!(-0.5878), dec128!(-1.3764))]
#[case(dec128!(127), dec128!(0.7986), dec128!(-0.6018), dec128!(-1.327))]
#[case(dec128!(128), dec128!(0.788), dec128!(-0.6157), dec128!(-1.2799))]
#[case(dec128!(129), dec128!(0.7771), dec128!(-0.6293), dec128!(-1.2349))]
#[case(dec128!(130), dec128!(0.766), dec128!(-0.6428), dec128!(-1.1918))]
#[case(dec128!(131), dec128!(0.7547), dec128!(-0.6561), dec128!(-1.1504))]
#[case(dec128!(132), dec128!(0.7431), dec128!(-0.6691), dec128!(-1.1106))]
#[case(dec128!(133), dec128!(0.7314), dec128!(-0.682), dec128!(-1.0724))]
#[case(dec128!(134), dec128!(0.7193), dec128!(-0.6947), dec128!(-1.0355))]
#[case(dec128!(135), dec128!(0.7071), dec128!(-0.7071), dec128!(-1))]
#[case(dec128!(136), dec128!(0.6947), dec128!(-0.7193), dec128!(-0.9657))]
#[case(dec128!(137), dec128!(0.682), dec128!(-0.7314), dec128!(-0.9325))]
#[case(dec128!(138), dec128!(0.6691), dec128!(-0.7431), dec128!(-0.9004))]
#[case(dec128!(139), dec128!(0.6561), dec128!(-0.7547), dec128!(-0.8693))]
#[case(dec128!(140), dec128!(0.6428), dec128!(-0.766), dec128!(-0.8391))]
#[case(dec128!(141), dec128!(0.6293), dec128!(-0.7771), dec128!(-0.8098))]
#[case(dec128!(142), dec128!(0.6157), dec128!(-0.788), dec128!(-0.7813))]
#[case(dec128!(143), dec128!(0.6018), dec128!(-0.7986), dec128!(-0.7536))]
#[case(dec128!(144), dec128!(0.5878), dec128!(-0.809), dec128!(-0.7265))]
#[case(dec128!(145), dec128!(0.5736), dec128!(-0.8192), dec128!(-0.7002))]
#[case(dec128!(146), dec128!(0.5592), dec128!(-0.829), dec128!(-0.6745))]
#[case(dec128!(147), dec128!(0.5446), dec128!(-0.8387), dec128!(-0.6494))]
#[case(dec128!(148), dec128!(0.5299), dec128!(-0.848), dec128!(-0.6249))]
#[case(dec128!(149), dec128!(0.515), dec128!(-0.8572), dec128!(-0.6009))]
#[case(dec128!(150), dec128!(0.5), dec128!(-0.866), dec128!(-0.5774))]
#[case(dec128!(151), dec128!(0.4848), dec128!(-0.8746), dec128!(-0.5543))]
#[case(dec128!(152), dec128!(0.4695), dec128!(-0.8829), dec128!(-0.5317))]
#[case(dec128!(153), dec128!(0.454), dec128!(-0.891), dec128!(-0.5095))]
#[case(dec128!(154), dec128!(0.4384), dec128!(-0.8988), dec128!(-0.4877))]
#[case(dec128!(155), dec128!(0.4226), dec128!(-0.9063), dec128!(-0.4663))]
#[case(dec128!(156), dec128!(0.4067), dec128!(-0.9135), dec128!(-0.4452))]
#[case(dec128!(157), dec128!(0.3907), dec128!(-0.9205), dec128!(-0.4245))]
#[case(dec128!(158), dec128!(0.3746), dec128!(-0.9272), dec128!(-0.404))]
#[case(dec128!(159), dec128!(0.3584), dec128!(-0.9336), dec128!(-0.3839))]
#[case(dec128!(160), dec128!(0.342), dec128!(-0.9397), dec128!(-0.364))]
#[case(dec128!(161), dec128!(0.3256), dec128!(-0.9455), dec128!(-0.3443))]
#[case(dec128!(162), dec128!(0.309), dec128!(-0.9511), dec128!(-0.3249))]
#[case(dec128!(163), dec128!(0.2924), dec128!(-0.9563), dec128!(-0.3057))]
#[case(dec128!(164), dec128!(0.2756), dec128!(-0.9613), dec128!(-0.2867))]
#[case(dec128!(165), dec128!(0.2588), dec128!(-0.9659), dec128!(-0.2679))]
#[case(dec128!(166), dec128!(0.2419), dec128!(-0.9703), dec128!(-0.2493))]
#[case(dec128!(167), dec128!(0.225), dec128!(-0.9744), dec128!(-0.2309))]
#[case(dec128!(168), dec128!(0.2079), dec128!(-0.9781), dec128!(-0.2126))]
#[case(dec128!(169), dec128!(0.1908), dec128!(-0.9816), dec128!(-0.1944))]
#[case(dec128!(170), dec128!(0.1736), dec128!(-0.9848), dec128!(-0.1763))]
#[case(dec128!(171), dec128!(0.1564), dec128!(-0.9877), dec128!(-0.1584))]
#[case(dec128!(172), dec128!(0.1392), dec128!(-0.9903), dec128!(-0.1405))]
#[case(dec128!(173), dec128!(0.1219), dec128!(-0.9925), dec128!(-0.1228))]
#[case(dec128!(174), dec128!(0.1045), dec128!(-0.9945), dec128!(-0.1051))]
#[case(dec128!(175), dec128!(0.0872), dec128!(-0.9962), dec128!(-0.0875))]
#[case(dec128!(176), dec128!(0.0698), dec128!(-0.9976), dec128!(-0.0699))]
#[case(dec128!(177), dec128!(0.0523), dec128!(-0.9986), dec128!(-0.0524))]
#[case(dec128!(178), dec128!(0.0349), dec128!(-0.9994), dec128!(-0.0349))]
#[case(dec128!(179), dec128!(0.0175), dec128!(-0.9998), dec128!(-0.0175))]
#[case(dec128!(180), dec128!(-0), dec128!(-1), dec128!(0))]
#[case(dec128!(181), dec128!(-0.0175), dec128!(-0.9998), dec128!(0.0175))]
#[case(dec128!(182), dec128!(-0.0349), dec128!(-0.9994), dec128!(0.0349))]
#[case(dec128!(183), dec128!(-0.0523), dec128!(-0.9986), dec128!(0.0524))]
#[case(dec128!(184), dec128!(-0.0698), dec128!(-0.9976), dec128!(0.0699))]
#[case(dec128!(185), dec128!(-0.0872), dec128!(-0.9962), dec128!(0.0875))]
#[case(dec128!(186), dec128!(-0.1045), dec128!(-0.9945), dec128!(0.1051))]
#[case(dec128!(187), dec128!(-0.1219), dec128!(-0.9925), dec128!(0.1228))]
#[case(dec128!(188), dec128!(-0.1392), dec128!(-0.9903), dec128!(0.1405))]
#[case(dec128!(189), dec128!(-0.1564), dec128!(-0.9877), dec128!(0.1584))]
#[case(dec128!(190), dec128!(-0.1736), dec128!(-0.9848), dec128!(0.1763))]
#[case(dec128!(191), dec128!(-0.1908), dec128!(-0.9816), dec128!(0.1944))]
#[case(dec128!(192), dec128!(-0.2079), dec128!(-0.9781), dec128!(0.2126))]
#[case(dec128!(193), dec128!(-0.225), dec128!(-0.9744), dec128!(0.2309))]
#[case(dec128!(194), dec128!(-0.2419), dec128!(-0.9703), dec128!(0.2493))]
#[case(dec128!(195), dec128!(-0.2588), dec128!(-0.9659), dec128!(0.2679))]
#[case(dec128!(196), dec128!(-0.2756), dec128!(-0.9613), dec128!(0.2867))]
#[case(dec128!(197), dec128!(-0.2924), dec128!(-0.9563), dec128!(0.3057))]
#[case(dec128!(198), dec128!(-0.309), dec128!(-0.9511), dec128!(0.3249))]
#[case(dec128!(199), dec128!(-0.3256), dec128!(-0.9455), dec128!(0.3443))]
#[case(dec128!(200), dec128!(-0.342), dec128!(-0.9397), dec128!(0.364))]
#[case(dec128!(201), dec128!(-0.3584), dec128!(-0.9336), dec128!(0.3839))]
#[case(dec128!(202), dec128!(-0.3746), dec128!(-0.9272), dec128!(0.404))]
#[case(dec128!(203), dec128!(-0.3907), dec128!(-0.9205), dec128!(0.4245))]
#[case(dec128!(204), dec128!(-0.4067), dec128!(-0.9135), dec128!(0.4452))]
#[case(dec128!(205), dec128!(-0.4226), dec128!(-0.9063), dec128!(0.4663))]
#[case(dec128!(206), dec128!(-0.4384), dec128!(-0.8988), dec128!(0.4877))]
#[case(dec128!(207), dec128!(-0.454), dec128!(-0.891), dec128!(0.5095))]
#[case(dec128!(208), dec128!(-0.4695), dec128!(-0.8829), dec128!(0.5317))]
#[case(dec128!(209), dec128!(-0.4848), dec128!(-0.8746), dec128!(0.5543))]
#[case(dec128!(210), dec128!(-0.5), dec128!(-0.866), dec128!(0.5774))]
#[case(dec128!(211), dec128!(-0.515), dec128!(-0.8572), dec128!(0.6009))]
#[case(dec128!(212), dec128!(-0.5299), dec128!(-0.848), dec128!(0.6249))]
#[case(dec128!(213), dec128!(-0.5446), dec128!(-0.8387), dec128!(0.6494))]
#[case(dec128!(214), dec128!(-0.5592), dec128!(-0.829), dec128!(0.6745))]
#[case(dec128!(215), dec128!(-0.5736), dec128!(-0.8192), dec128!(0.7002))]
#[case(dec128!(216), dec128!(-0.5878), dec128!(-0.809), dec128!(0.7265))]
#[case(dec128!(217), dec128!(-0.6018), dec128!(-0.7986), dec128!(0.7536))]
#[case(dec128!(218), dec128!(-0.6157), dec128!(-0.788), dec128!(0.7813))]
#[case(dec128!(219), dec128!(-0.6293), dec128!(-0.7771), dec128!(0.8098))]
#[case(dec128!(220), dec128!(-0.6428), dec128!(-0.766), dec128!(0.8391))]
#[case(dec128!(221), dec128!(-0.6561), dec128!(-0.7547), dec128!(0.8693))]
#[case(dec128!(222), dec128!(-0.6691), dec128!(-0.7431), dec128!(0.9004))]
#[case(dec128!(223), dec128!(-0.682), dec128!(-0.7314), dec128!(0.9325))]
#[case(dec128!(224), dec128!(-0.6947), dec128!(-0.7193), dec128!(0.9657))]
#[case(dec128!(225), dec128!(-0.7071), dec128!(-0.7071), dec128!(1))]
#[case(dec128!(226), dec128!(-0.7193), dec128!(-0.6947), dec128!(1.0355))]
#[case(dec128!(227), dec128!(-0.7314), dec128!(-0.682), dec128!(1.0724))]
#[case(dec128!(228), dec128!(-0.7431), dec128!(-0.6691), dec128!(1.1106))]
#[case(dec128!(229), dec128!(-0.7547), dec128!(-0.6561), dec128!(1.1504))]
#[case(dec128!(230), dec128!(-0.766), dec128!(-0.6428), dec128!(1.1918))]
#[case(dec128!(231), dec128!(-0.7771), dec128!(-0.6293), dec128!(1.2349))]
#[case(dec128!(232), dec128!(-0.788), dec128!(-0.6157), dec128!(1.2799))]
#[case(dec128!(233), dec128!(-0.7986), dec128!(-0.6018), dec128!(1.327))]
#[case(dec128!(234), dec128!(-0.809), dec128!(-0.5878), dec128!(1.3764))]
#[case(dec128!(235), dec128!(-0.8192), dec128!(-0.5736), dec128!(1.4281))]
#[case(dec128!(236), dec128!(-0.829), dec128!(-0.5592), dec128!(1.4826))]
#[case(dec128!(237), dec128!(-0.8387), dec128!(-0.5446), dec128!(1.5399))]
#[case(dec128!(238), dec128!(-0.848), dec128!(-0.5299), dec128!(1.6003))]
#[case(dec128!(239), dec128!(-0.8572), dec128!(-0.515), dec128!(1.6643))]
#[case(dec128!(240), dec128!(-0.866), dec128!(-0.5), dec128!(1.7321))]
#[case(dec128!(241), dec128!(-0.8746), dec128!(-0.4848), dec128!(1.804))]
#[case(dec128!(242), dec128!(-0.8829), dec128!(-0.4695), dec128!(1.8807))]
#[case(dec128!(243), dec128!(-0.891), dec128!(-0.454), dec128!(1.9626))]
#[case(dec128!(244), dec128!(-0.8988), dec128!(-0.4384), dec128!(2.0503))]
#[case(dec128!(245), dec128!(-0.9063), dec128!(-0.4226), dec128!(2.1445))]
#[case(dec128!(246), dec128!(-0.9135), dec128!(-0.4067), dec128!(2.246))]
#[case(dec128!(247), dec128!(-0.9205), dec128!(-0.3907), dec128!(2.3559))]
#[case(dec128!(248), dec128!(-0.9272), dec128!(-0.3746), dec128!(2.4751))]
#[case(dec128!(249), dec128!(-0.9336), dec128!(-0.3584), dec128!(2.6051))]
#[case(dec128!(250), dec128!(-0.9397), dec128!(-0.342), dec128!(2.7475))]
#[case(dec128!(251), dec128!(-0.9455), dec128!(-0.3256), dec128!(2.9042))]
#[case(dec128!(252), dec128!(-0.9511), dec128!(-0.309), dec128!(3.0777))]
#[case(dec128!(253), dec128!(-0.9563), dec128!(-0.2924), dec128!(3.2709))]
#[case(dec128!(254), dec128!(-0.9613), dec128!(-0.2756), dec128!(3.4874))]
#[case(dec128!(255), dec128!(-0.9659), dec128!(-0.2588), dec128!(3.7321))]
#[case(dec128!(256), dec128!(-0.9703), dec128!(-0.2419), dec128!(4.0108))]
#[case(dec128!(257), dec128!(-0.9744), dec128!(-0.225), dec128!(4.3315))]
#[case(dec128!(258), dec128!(-0.9781), dec128!(-0.2079), dec128!(4.7046))]
#[case(dec128!(259), dec128!(-0.9816), dec128!(-0.1908), dec128!(5.1446))]
#[case(dec128!(260), dec128!(-0.9848), dec128!(-0.1736), dec128!(5.6713))]
#[case(dec128!(261), dec128!(-0.9877), dec128!(-0.1564), dec128!(6.3138))]
#[case(dec128!(262), dec128!(-0.9903), dec128!(-0.1392), dec128!(7.1154))]
#[case(dec128!(263), dec128!(-0.9925), dec128!(-0.1219), dec128!(8.1443))]
#[case(dec128!(264), dec128!(-0.9945), dec128!(-0.1045), dec128!(9.5144))]
#[case(dec128!(265), dec128!(-0.9962), dec128!(-0.0872), dec128!(11.4301))]
#[case(dec128!(266), dec128!(-0.9976), dec128!(-0.0698), dec128!(14.3007))]
#[case(dec128!(267), dec128!(-0.9986), dec128!(-0.0523), dec128!(19.0811))]
#[case(dec128!(268), dec128!(-0.9994), dec128!(-0.0349), dec128!(28.6363))]
#[case(dec128!(269), dec128!(-0.9998), dec128!(-0.0175), dec128!(57.29))]
#[case(dec128!(270), dec128!(-1), dec128!(0), D128::NEG_INFINITY)]
#[case(dec128!(271), dec128!(-0.9998), dec128!(0.0175), dec128!(-57.29))]
#[case(dec128!(272), dec128!(-0.9994), dec128!(0.0349), dec128!(-28.6363))]
#[case(dec128!(273), dec128!(-0.9986), dec128!(0.0523), dec128!(-19.0811))]
#[case(dec128!(274), dec128!(-0.9976), dec128!(0.0698), dec128!(-14.3007))]
#[case(dec128!(275), dec128!(-0.9962), dec128!(0.0872), dec128!(-11.4301))]
#[case(dec128!(276), dec128!(-0.9945), dec128!(0.1045), dec128!(-9.5144))]
#[case(dec128!(277), dec128!(-0.9925), dec128!(0.1219), dec128!(-8.1443))]
#[case(dec128!(278), dec128!(-0.9903), dec128!(0.1392), dec128!(-7.1154))]
#[case(dec128!(279), dec128!(-0.9877), dec128!(0.1564), dec128!(-6.3138))]
#[case(dec128!(280), dec128!(-0.9848), dec128!(0.1736), dec128!(-5.6713))]
#[case(dec128!(281), dec128!(-0.9816), dec128!(0.1908), dec128!(-5.1446))]
#[case(dec128!(282), dec128!(-0.9781), dec128!(0.2079), dec128!(-4.7046))]
#[case(dec128!(283), dec128!(-0.9744), dec128!(0.225), dec128!(-4.3315))]
#[case(dec128!(284), dec128!(-0.9703), dec128!(0.2419), dec128!(-4.0108))]
#[case(dec128!(285), dec128!(-0.9659), dec128!(0.2588), dec128!(-3.7321))]
#[case(dec128!(286), dec128!(-0.9613), dec128!(0.2756), dec128!(-3.4874))]
#[case(dec128!(287), dec128!(-0.9563), dec128!(0.2924), dec128!(-3.2709))]
#[case(dec128!(288), dec128!(-0.9511), dec128!(0.309), dec128!(-3.0777))]
#[case(dec128!(289), dec128!(-0.9455), dec128!(0.3256), dec128!(-2.9042))]
#[case(dec128!(290), dec128!(-0.9397), dec128!(0.342), dec128!(-2.7475))]
#[case(dec128!(291), dec128!(-0.9336), dec128!(0.3584), dec128!(-2.6051))]
#[case(dec128!(292), dec128!(-0.9272), dec128!(0.3746), dec128!(-2.4751))]
#[case(dec128!(293), dec128!(-0.9205), dec128!(0.3907), dec128!(-2.3559))]
#[case(dec128!(294), dec128!(-0.9135), dec128!(0.4067), dec128!(-2.246))]
#[case(dec128!(295), dec128!(-0.9063), dec128!(0.4226), dec128!(-2.1445))]
#[case(dec128!(296), dec128!(-0.8988), dec128!(0.4384), dec128!(-2.0503))]
#[case(dec128!(297), dec128!(-0.891), dec128!(0.454), dec128!(-1.9626))]
#[case(dec128!(298), dec128!(-0.8829), dec128!(0.4695), dec128!(-1.8807))]
#[case(dec128!(299), dec128!(-0.8746), dec128!(0.4848), dec128!(-1.804))]
#[case(dec128!(300), dec128!(-0.866), dec128!(0.5), dec128!(-1.7321))]
#[case(dec128!(301), dec128!(-0.8572), dec128!(0.515), dec128!(-1.6643))]
#[case(dec128!(302), dec128!(-0.848), dec128!(0.5299), dec128!(-1.6003))]
#[case(dec128!(303), dec128!(-0.8387), dec128!(0.5446), dec128!(-1.5399))]
#[case(dec128!(304), dec128!(-0.829), dec128!(0.5592), dec128!(-1.4826))]
#[case(dec128!(305), dec128!(-0.8192), dec128!(0.5736), dec128!(-1.4281))]
#[case(dec128!(306), dec128!(-0.809), dec128!(0.5878), dec128!(-1.3764))]
#[case(dec128!(307), dec128!(-0.7986), dec128!(0.6018), dec128!(-1.327))]
#[case(dec128!(308), dec128!(-0.788), dec128!(0.6157), dec128!(-1.2799))]
#[case(dec128!(309), dec128!(-0.7771), dec128!(0.6293), dec128!(-1.2349))]
#[case(dec128!(310), dec128!(-0.766), dec128!(0.6428), dec128!(-1.1918))]
#[case(dec128!(311), dec128!(-0.7547), dec128!(0.6561), dec128!(-1.1504))]
#[case(dec128!(312), dec128!(-0.7431), dec128!(0.6691), dec128!(-1.1106))]
#[case(dec128!(313), dec128!(-0.7314), dec128!(0.682), dec128!(-1.0724))]
#[case(dec128!(314), dec128!(-0.7193), dec128!(0.6947), dec128!(-1.0355))]
#[case(dec128!(315), dec128!(-0.7071), dec128!(0.7071), dec128!(-1))]
#[case(dec128!(316), dec128!(-0.6947), dec128!(0.7193), dec128!(-0.9657))]
#[case(dec128!(317), dec128!(-0.682), dec128!(0.7314), dec128!(-0.9325))]
#[case(dec128!(318), dec128!(-0.6691), dec128!(0.7431), dec128!(-0.9004))]
#[case(dec128!(319), dec128!(-0.6561), dec128!(0.7547), dec128!(-0.8693))]
#[case(dec128!(320), dec128!(-0.6428), dec128!(0.766), dec128!(-0.8391))]
#[case(dec128!(321), dec128!(-0.6293), dec128!(0.7771), dec128!(-0.8098))]
#[case(dec128!(322), dec128!(-0.6157), dec128!(0.788), dec128!(-0.7813))]
#[case(dec128!(323), dec128!(-0.6018), dec128!(0.7986), dec128!(-0.7536))]
#[case(dec128!(324), dec128!(-0.5878), dec128!(0.809), dec128!(-0.7265))]
#[case(dec128!(325), dec128!(-0.5736), dec128!(0.8192), dec128!(-0.7002))]
#[case(dec128!(326), dec128!(-0.5592), dec128!(0.829), dec128!(-0.6745))]
#[case(dec128!(327), dec128!(-0.5446), dec128!(0.8387), dec128!(-0.6494))]
#[case(dec128!(328), dec128!(-0.5299), dec128!(0.848), dec128!(-0.6249))]
#[case(dec128!(329), dec128!(-0.515), dec128!(0.8572), dec128!(-0.6009))]
#[case(dec128!(330), dec128!(-0.5), dec128!(0.866), dec128!(-0.5774))]
#[case(dec128!(331), dec128!(-0.4848), dec128!(0.8746), dec128!(-0.5543))]
#[case(dec128!(332), dec128!(-0.4695), dec128!(0.8829), dec128!(-0.5317))]
#[case(dec128!(333), dec128!(-0.454), dec128!(0.891), dec128!(-0.5095))]
#[case(dec128!(334), dec128!(-0.4384), dec128!(0.8988), dec128!(-0.4877))]
#[case(dec128!(335), dec128!(-0.4226), dec128!(0.9063), dec128!(-0.4663))]
#[case(dec128!(336), dec128!(-0.4067), dec128!(0.9135), dec128!(-0.4452))]
#[case(dec128!(337), dec128!(-0.3907), dec128!(0.9205), dec128!(-0.4245))]
#[case(dec128!(338), dec128!(-0.3746), dec128!(0.9272), dec128!(-0.404))]
#[case(dec128!(339), dec128!(-0.3584), dec128!(0.9336), dec128!(-0.3839))]
#[case(dec128!(340), dec128!(-0.342), dec128!(0.9397), dec128!(-0.364))]
#[case(dec128!(341), dec128!(-0.3256), dec128!(0.9455), dec128!(-0.3443))]
#[case(dec128!(342), dec128!(-0.309), dec128!(0.9511), dec128!(-0.3249))]
#[case(dec128!(343), dec128!(-0.2924), dec128!(0.9563), dec128!(-0.3057))]
#[case(dec128!(344), dec128!(-0.2756), dec128!(0.9613), dec128!(-0.2867))]
#[case(dec128!(345), dec128!(-0.2588), dec128!(0.9659), dec128!(-0.2679))]
#[case(dec128!(346), dec128!(-0.2419), dec128!(0.9703), dec128!(-0.2493))]
#[case(dec128!(347), dec128!(-0.225), dec128!(0.9744), dec128!(-0.2309))]
#[case(dec128!(348), dec128!(-0.2079), dec128!(0.9781), dec128!(-0.2126))]
#[case(dec128!(349), dec128!(-0.1908), dec128!(0.9816), dec128!(-0.1944))]
#[case(dec128!(350), dec128!(-0.1736), dec128!(0.9848), dec128!(-0.1763))]
#[case(dec128!(351), dec128!(-0.1564), dec128!(0.9877), dec128!(-0.1584))]
#[case(dec128!(352), dec128!(-0.1392), dec128!(0.9903), dec128!(-0.1405))]
#[case(dec128!(353), dec128!(-0.1219), dec128!(0.9925), dec128!(-0.1228))]
#[case(dec128!(354), dec128!(-0.1045), dec128!(0.9945), dec128!(-0.1051))]
#[case(dec128!(355), dec128!(-0.0872), dec128!(0.9962), dec128!(-0.0875))]
#[case(dec128!(356), dec128!(-0.0698), dec128!(0.9976), dec128!(-0.0699))]
#[case(dec128!(357), dec128!(-0.0523), dec128!(0.9986), dec128!(-0.0524))]
#[case(dec128!(358), dec128!(-0.0349), dec128!(0.9994), dec128!(-0.0349))]
#[case(dec128!(359), dec128!(-0.0175), dec128!(0.9998), dec128!(-0.0175))]
#[case(dec128!(360), dec128!(0), dec128!(1), dec128!(0))]
fn test_angles_360(#[case] angle: D128, #[case] sin: D128, #[case] cos: D128, #[case] tan: D128) {
assert_eq!(angle.to_radians().sin().round(4), sin);
assert_eq!(angle.to_radians().cos().round(4), cos);
if !tan.is_infinite() {
assert_eq!(angle.to_radians().tan().round(4), tan);
}
}