infix-calculator/tests/reader_tests.c

51 lines
1.4 KiB
C

#include "reader.h"
#include "testing.h"
static memory_pool_t pool;
static void input_1234_is_read_as_number_with_expected_value(void)
{
init_memory_pool(&pool);
const expression_t *result = read_expression(&pool, "1234", 4);
ASSERT_NOT_NULL(result);
ASSERT_TRUE(result->is_number);
ASSERT_EQUAL(1234, result->number);
}
static void input_4321_is_read_as_number_with_expected_value(void)
{
init_memory_pool(&pool);
const expression_t *result = read_expression(&pool, "4321", 4);
ASSERT_NOT_NULL(result);
ASSERT_TRUE(result->is_number);
ASSERT_EQUAL(4321, result->number);
}
static void input_1234_with_len_3_is_read_as_123(void)
{
init_memory_pool(&pool);
const expression_t *result = read_expression(&pool, "1234", 3);
ASSERT_NOT_NULL(result);
ASSERT_TRUE(result->is_number);
ASSERT_EQUAL(123, result->number);
}
static void input_1_plus_2_with_no_spaces_is_read_as_an_add_application(void)
{
init_memory_pool(&pool);
const expression_t *result = read_expression(&pool, "1+2", 3);
ASSERT_NOT_NULL(result);
ASSERT_FALSE(result->is_number);
ASSERT_EQUAL(OPERATOR_ADD, result->application.operator);
}
int main(void)
{
TESTING_BEGIN();
RUN_TEST(input_1234_is_read_as_number_with_expected_value);
RUN_TEST(input_4321_is_read_as_number_with_expected_value);
RUN_TEST(input_1234_with_len_3_is_read_as_123);
RUN_TEST(input_1_plus_2_with_no_spaces_is_read_as_an_add_application);
TESTING_END();
}