Coverage for src/lib.mys : 85%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1c"""source-before-namespace
2#include <cmath>
3"""
5PI: f64 = 3.14159265358979323846
7E: f64 = 2.71828182845904523536
9func sin(angle: f64) -> f64:
10 """Returns the trigonometric sine of given angle in radians.
12 """
14 value: f64 = 0.0
16 c"value = std::sin(angle);"
18 return value
20func cos(angle: f64) -> f64:
21 """Returns the trigonometric cosine of given angle in radians.
23 """
25 value: f64 = 0.0
27 c"value = std::cos(angle);"
29 return value
31func tan(value: f64) -> f64:
32 return sin(value) / cos(value)
34func is_nan(value: f64) -> bool:
35 """Returns true if given value is not a number.
37 """
39 result: bool = False
41 c"value = std::isnan(value);"
43 return result
45func sqrt(value: f64) -> f64:
46 """Returns the square root of given number.
48 """
50 c"value = std::sqrt(value);"
52 return value
54func sqrt(value: f32) -> f32:
55 """Returns the square root of given number.
57 """
59 c"value = std::sqrt(value);"
61 return value
63@generic(T)
64func abs(value: T) -> T:
65 if value < 0:
66 value *= -1
68 return value
70@generic(T)
71func div_ceil(numerator: T, denominator: T) -> T:
72 return (numerator + (denominator - 1)) / denominator
74test sin():
75 assert sin(0.0) == 0.0
77test cos():
78 assert cos(0.0) == 1.0
80test tan():
81 assert tan(0.0) == 0.0
82 assert tan(PI / 4.0) > 0.99
83 assert tan(PI / 4.0) < 1.01
85test pi():
86 assert PI > 3.14
87 assert PI < 3.15
89test e():
90 assert E > 2.71
91 assert E < 2.72
93test nan():
94 assert not is_nan(1.0)
96test abs():
97 assert abs(-1) == 1
98 assert abs(1) == 1
99 assert abs(-10.0) == 10.0
100 assert abs(10.0) == 10.0
102test div_ceil():
103 assert div_ceil[i64](3, 3) == 1
104 assert div_ceil[i64](4, 3) == 2
105 assert div_ceil[i64](5, 3) == 2
106 assert div_ceil[i64](6, 3) == 2
107 assert div_ceil[i64](7, 3) == 3
109 assert div_ceil[i64](5, 1) == 5
111test sqrt():
112 assert sqrt(f64(4.0)) == 2.0
113 assert sqrt(f64(16.0)) == 4.0
114 assert sqrt(f64(144.0)) == 12.0
115 assert sqrt(f32(4.0)) == 2.0
116 assert sqrt(f32(16.0)) == 4.0
117 assert sqrt(f32(144.0)) == 12.0