#include "Matrix.h" #include "Matrix_test_helpers.h" #include "unit_test_framework.h" #include using std::ostringstream; TEST(test_matrix_basic) { Matrix *mat = new Matrix; Matrix_init(mat, 5, 5); ASSERT_EQUAL(Matrix_width(mat), 5); ASSERT_EQUAL(Matrix_height(mat), 5); Matrix_fill(mat, 0); int *ptr = Matrix_at(mat, 2, 3); ASSERT_EQUAL(Matrix_row(mat, ptr), 2); ASSERT_EQUAL(Matrix_column(mat, ptr), 3); ASSERT_EQUAL(*ptr, 0); *ptr = 42; const int *cptr = Matrix_at(mat, 2, 3); ASSERT_EQUAL(*cptr, 42); Matrix_fill_border(mat, 2); ASSERT_EQUAL(*Matrix_at(mat, 0, 0), 2); ASSERT_EQUAL(Matrix_max(mat), 42); delete mat; } TEST(test_matrix_print) { Matrix *mat = new Matrix; Matrix_init(mat, 1, 1); *Matrix_at(mat, 0, 0) = 42; ostringstream expected; expected << "1 1\n" << "42 \n"; ostringstream actual; Matrix_print(mat, actual); ASSERT_EQUAL(expected.str(), actual.str()); delete mat; } TEST_MAIN()