mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 20:11:17 +00:00
62 lines
1.0 KiB
Plaintext
62 lines
1.0 KiB
Plaintext
module math_tests @test;
|
|
import std::math;
|
|
import std::math::complex;
|
|
|
|
|
|
fn void complex_mul_imaginary()
|
|
{
|
|
Complex c = math::I;
|
|
assert(c * c == -1);
|
|
assert(c * c * c == -math::I);
|
|
}
|
|
|
|
fn void complex_add()
|
|
{
|
|
Complex a = { 3, 4 };
|
|
Complex b = { 1, 2 };
|
|
assert(a + b == (Complex){ 4, 6 });
|
|
assert(a.add_each(1).equals({4, 5}));
|
|
a += b;
|
|
assert(a == (Complex){ 4, 6 });
|
|
}
|
|
|
|
fn void complex_sub()
|
|
{
|
|
Complex a = { 3, 4 };
|
|
Complex b = { 1, 2 };
|
|
assert(a - b == (Complex){ 2, 2 });
|
|
assert(a.sub_each(1).equals({2, 3}));
|
|
a -= b;
|
|
assert(a == (Complex){ 2, 2 });
|
|
}
|
|
|
|
fn void complex_scale()
|
|
{
|
|
Complex a = {2, 1};
|
|
assert(a * 2 == (Complex) {4, 2});
|
|
a *= 2;
|
|
assert(a == (Complex) {4, 2});
|
|
}
|
|
|
|
fn void complex_conjugate()
|
|
{
|
|
Complex a = {3, 4};
|
|
assert(a.conjugate() == (Complex) {3, -4});
|
|
}
|
|
|
|
fn void complex_inverse()
|
|
{
|
|
Complex a = {3, 4};
|
|
assert(a.inverse() * a == 1);
|
|
}
|
|
|
|
fn void complex_div()
|
|
{
|
|
Complex a = {2, 5};
|
|
Complex b = {4, -1};
|
|
assert(a / b == (Complex) {3.0/17.0, 22.0/17.0});
|
|
a /= b;
|
|
assert(a == (Complex) {3.0/17.0, 22.0/17.0});
|
|
}
|
|
|