Files
silly/tests/test.c
2017-07-29 16:33:47 -04:00

86 lines
1.5 KiB
C

#include "greatest.h"
#include "../silly.h"
TEST silly_zeros_is_zero() {
silly x = silly_zeros();
ASSERT_EQ_FMT(0, x.sign, "%d");
ASSERT_EQ_FMT(0, x.before, "%d");
ASSERT_EQ_FMT(0, x.after, "%d");
PASS();
}
TEST silly_string() {
silly x = silly_zeros();
ASSERT_STR_EQ("+0000000000.0000000000", silly_to_string(x));
x.before = 1;
ASSERT_STR_EQ("+0000000001.0000000000", silly_to_string(x));
PASS();
}
TEST silly_addition() {
silly x = silly_zeros();
x.before = 1;
x.after = 1;
silly y = silly_zeros();
y.before = 1;
y.after = 0xffffffff;
x = silly_add(x, y);
ASSERT_EQ_FMT(3, x.before, "%d");
ASSERT_EQ_FMT(0, x.after, "%d");
y = silly_zeros();
y.sign = 1;
y.before = 4;
x = silly_add(x, y);
ASSERT_EQ_FMT(1, x.sign, "%d");
ASSERT_EQ_FMT(1, x.before, "%d");
ASSERT_EQ_FMT(0, x.after, "%d");
PASS();
}
TEST silly_subtraction() {
silly x = silly_zeros();
x.before = 2;
silly y = silly_zeros();
y.before = 1;
y.after = 0xffffffff;
x = silly_sub(x, y);
ASSERT_EQ_FMT(0, x.before, "%d");
ASSERT_EQ_FMT(1, x.after, "%d");
x = silly_zeros();
x.before = 2;
y = silly_zeros();
y.sign = 1;
y.before = 4;
x = silly_sub(x, y);
ASSERT_EQ_FMT(6, x.before, "%d");
ASSERT_EQ_FMT(0, x.after, "%d");
PASS();
}
SUITE(tests) {
RUN_TEST(silly_zeros_is_zero);
RUN_TEST(silly_string);
RUN_TEST(silly_addition);
RUN_TEST(silly_subtraction);
}
GREATEST_MAIN_DEFS();
int main(int argc, char **argv) {
GREATEST_MAIN_BEGIN();
RUN_SUITE(tests);
GREATEST_MAIN_END();
}