/
Xakka
/
CPP1
Обзор
Документация
Войти
/
Xakka
/
CPP1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/tests/test.cpp
822 строки
15 KB
moshedur
master: release 1.0
04 янв 2025, 23:23
04 янв 2025, 23:23
a55ad39
Код
Авторство
О чём код?
#include <gtest/gtest.h> #include "../s21_matrix_oop.h" int main(int argc, char *argv[]) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } TEST(Accessor, test_1) { S21Matrix a; a.set_rows(5); a.set_cols(4); EXPECT_EQ(5, a.get_rows()); EXPECT_EQ(4, a.get_cols()); } TEST(Mutator, test_1) { S21Matrix a; a.set_rows(1); a.set_cols(1); EXPECT_EQ(1, a.get_rows()); EXPECT_EQ(1, a.get_cols()); } TEST(SumMatrix, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 3; a.SumMatrix(b); EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(SumMatrix, test_2) { S21Matrix a(1, 1); S21Matrix b(2, 2); EXPECT_THROW(a.SumMatrix(b), std::out_of_range); } TEST(SumMatrix, test_3) { S21Matrix a(1, 1); S21Matrix b; EXPECT_THROW(a.SumMatrix(b), std::out_of_range); } TEST(MulMatrix, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 3; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; a.MulMatrix(b); EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(MulMatrix, test_2) { S21Matrix a(2, 1); double *a1 = a.get_matrix(); a1[0] = 3; a1[1] = 4; S21Matrix b(1, 2); double *b1 = b.get_matrix(); b1[0] = 2; b1[1] = 5; S21Matrix standart(2, 2); double *standart1 = standart.get_matrix(); standart1[0] = 6; standart1[1] = 15; standart1[2] = 8; standart1[3] = 20; a.MulMatrix(b); EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(MulMatrix, test_3) { S21Matrix a(1, 1); S21Matrix b(2, 2); EXPECT_THROW(a.MulMatrix(b), std::out_of_range); } TEST(MulNumber, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 3; double num = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; a.MulNumber(num); EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(MulNumber, test_2) { S21Matrix a(2, 1); double *a1 = a.get_matrix(); a1[0] = 3; a1[1] = 4; double num = 2; S21Matrix standart(2, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; standart1[1] = 8; a.MulNumber(num); EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(MulNumber, test_3) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 3; a1[1] = 4; a1[2] = 1; a1[3] = 2; double num = 2; S21Matrix standart(2, 2); double *standart1 = standart.get_matrix(); standart1[0] = 6; standart1[1] = 8; standart1[2] = 2; standart1[3] = 4; a.MulNumber(num); EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(SubMatrix, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = -1; a.SubMatrix(b); EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(SubMatrix, test_2) { S21Matrix a(1, 1); S21Matrix b(2, 2); EXPECT_THROW(a.SubMatrix(b), std::out_of_range); } TEST(Constructor, test_1) { S21Matrix a; EXPECT_EQ(3, a.get_rows()); EXPECT_EQ(3, a.get_cols()); } TEST(Constructor, test_2) { S21Matrix a(4, 5); EXPECT_EQ(4, a.get_rows()); EXPECT_EQ(5, a.get_cols()); } TEST(Constructor, test_3) { EXPECT_THROW(S21Matrix a(-4, -5), std::out_of_range); EXPECT_THROW(S21Matrix a(0, 0), std::out_of_range); } TEST(Constructor, test_4) { S21Matrix a(4, 5); S21Matrix b(a); EXPECT_EQ(4, a.get_rows()); EXPECT_EQ(5, a.get_cols()); EXPECT_EQ(4, b.get_rows()); EXPECT_EQ(5, b.get_cols()); } TEST(Constructor, test_5) { S21Matrix a(4, 5); S21Matrix b(std::move(a)); EXPECT_EQ(4, b.get_rows()); EXPECT_EQ(5, b.get_cols()); EXPECT_EQ(0, a.get_rows()); EXPECT_EQ(0, a.get_cols()); } TEST(EqMatrix, test_1) { S21Matrix a; S21Matrix b; EXPECT_EQ(true, a.EqMatrix(b)); } TEST(EqMatrix, test_2) { S21Matrix a; double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b; EXPECT_EQ(false, a.EqMatrix(b)); } TEST(EqMatrix, test_3) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b(2, 2); double *b1 = b.get_matrix(); b1[0] = 1; b1[1] = 2; b1[2] = 3; b1[3] = 4; EXPECT_EQ(true, a.EqMatrix(b)); } TEST(EqMatrix, test_4) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b(2, 2); double *b1 = b.get_matrix(); b1[0] = 4; b1[1] = 3; b1[2] = 2; b1[3] = 1; EXPECT_EQ(false, a.EqMatrix(b)); } TEST(EqMatrix, test_5) { S21Matrix a(1, 2); S21Matrix b(2, 2); EXPECT_EQ(false, a.EqMatrix(b)); } TEST(Transpose, test_1) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b = a.Transpose(); S21Matrix standart(2, 2); double *standart1 = standart.get_matrix(); standart1[0] = 1; standart1[1] = 3; standart1[2] = 2; standart1[3] = 4; a.Transpose(); EXPECT_EQ(true, b.EqMatrix(standart)); } TEST(Transpose, test_2) { S21Matrix a(2, 3); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; a1[4] = 5; a1[5] = 6; S21Matrix b = a.Transpose(); S21Matrix standart(3, 2); double *standart1 = standart.get_matrix(); standart1[0] = 1; standart1[1] = 4; standart1[2] = 2; standart1[3] = 5; standart1[4] = 3; standart1[5] = 6; a.Transpose(); EXPECT_EQ(true, b.EqMatrix(standart)); } TEST(CalcComplements, test_1) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b(2, 2); double *b1 = b.get_matrix(); b1[0] = 4; b1[1] = -3; b1[2] = -2; b1[3] = 1; S21Matrix c = a.CalcComplements(); EXPECT_EQ(true, b.EqMatrix(c)); } TEST(CalcComplements, test_2) { S21Matrix a(3, 3); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 0; a1[4] = 4; a1[5] = 2; a1[6] = 5; a1[7] = 2; a1[8] = 1; S21Matrix b(3, 3); double *b1 = b.get_matrix(); b1[0] = 0; b1[1] = 10; b1[2] = -20; b1[3] = 4; b1[4] = -14; b1[5] = 8; b1[6] = -8; b1[7] = -2; b1[8] = 4; S21Matrix c = a.CalcComplements(); EXPECT_EQ(true, b.EqMatrix(c)); } TEST(CalcComplements, test_3) { S21Matrix a(5, 5); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 0; a1[2] = -1; a1[3] = 1; a1[4] = 0; a1[5] = -1; a1[6] = 0; a1[7] = 0; a1[8] = -1; a1[9] = -1; a1[10] = 0; a1[11] = -1; a1[12] = 0; a1[13] = 1; a1[14] = 1; a1[15] = -1; a1[16] = -1; a1[17] = 1; a1[18] = 1; a1[19] = 1; a1[20] = -1; a1[21] = -1; a1[22] = 1; a1[23] = -1; a1[24] = -1; S21Matrix b(5, 5); double *b1 = b.get_matrix(); b1[0] = 0; b1[1] = 0; b1[2] = 0; b1[3] = 2; b1[4] = -2; b1[5] = -2; b1[6] = 0; b1[7] = -2; b1[8] = 0; b1[9] = 0; b1[10] = 0; b1[11] = -2; b1[12] = -2; b1[13] = -2; b1[14] = 2; b1[15] = -1; b1[16] = 1; b1[17] = 1; b1[18] = 2; b1[19] = -1; b1[20] = 1; b1[21] = -1; b1[22] = 1; b1[23] = 0; b1[24] = -1; S21Matrix c = a.CalcComplements(); EXPECT_EQ(true, b.EqMatrix(c)); } TEST(CalcComplements, test_4) { S21Matrix a(1, 2); EXPECT_THROW(a.CalcComplements(), std::invalid_argument); } TEST(Determinant, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; EXPECT_EQ(1, a.Determinant()); } TEST(Determinant, test_2) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; EXPECT_EQ(-2, a.Determinant()); } TEST(Determinant, test_3) { S21Matrix a(2, 1); EXPECT_THROW(a.Determinant(), std::invalid_argument); } TEST(Determinant, test_4) { S21Matrix a(3, 3); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 4; a1[3] = 2; a1[4] = 5; a1[5] = 6; a1[6] = 7; a1[7] = 8; a1[8] = 9; EXPECT_EQ(-31, a.Determinant()); } TEST(Determinant, test_5) { S21Matrix a(4, 4); double *a1 = a.get_matrix(); a1[0] = -4; a1[1] = -2; a1[2] = -7; a1[3] = 8; a1[4] = 2; a1[5] = 7; a1[6] = 4; a1[7] = 9; a1[8] = 2; a1[9] = 0; a1[10] = 6; a1[11] = -3; a1[12] = 6; a1[13] = 4; a1[14] = -10; a1[15] = -4; EXPECT_EQ(-1926, a.Determinant()); } TEST(Determinant, test_6) { S21Matrix a(5, 5); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 0; a1[2] = -1; a1[3] = 1; a1[4] = 0; a1[5] = -1; a1[6] = 0; a1[7] = 0; a1[8] = -1; a1[9] = -1; a1[10] = 0; a1[11] = -1; a1[12] = 0; a1[13] = 1; a1[14] = 1; a1[15] = -1; a1[16] = -1; a1[17] = 1; a1[18] = 1; a1[19] = 1; a1[20] = -1; a1[21] = -1; a1[22] = 1; a1[23] = -1; a1[24] = -1; EXPECT_EQ(2, a.Determinant()); } TEST(InverseMatrix, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 1; S21Matrix c = a.InverseMatrix(); EXPECT_EQ(true, b.EqMatrix(c)); } TEST(InverseMatrix, test_2) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b(2, 2); double *b1 = b.get_matrix(); b1[0] = -2; b1[1] = 1; b1[2] = 1.5; b1[3] = -0.5; S21Matrix c = a.InverseMatrix(); EXPECT_EQ(true, b.EqMatrix(c)); } TEST(InverseMatrix, test_3) { S21Matrix a(3, 3); double *a1 = a.get_matrix(); a1[0] = 2; a1[1] = 5; a1[2] = 7; a1[3] = 6; a1[4] = 3; a1[5] = 4; a1[6] = 5; a1[7] = -2; a1[8] = -3; S21Matrix b(3, 3); double *b1 = b.get_matrix(); b1[0] = 1; b1[1] = -1; b1[2] = 1; b1[3] = -38; b1[4] = 41; b1[5] = -34; b1[6] = 27; b1[7] = -29; b1[8] = 24; S21Matrix c = a.InverseMatrix(); EXPECT_EQ(true, b.EqMatrix(c)); } TEST(InverseMatrix, test_4) { S21Matrix a(4, 4); double *a1 = a.get_matrix(); a1[0] = 3; a1[1] = 1; a1[2] = 1; a1[3] = 2; a1[4] = 1; a1[5] = 2; a1[6] = 3; a1[7] = 1; a1[8] = 2; a1[9] = 3; a1[10] = 3; a1[11] = 1; a1[12] = 3; a1[13] = 1; a1[14] = 2; a1[15] = 1; S21Matrix b(4, 4); double *b1 = b.get_matrix(); b1[0] = -1. / 11; b1[1] = -5. / 11; b1[2] = 2. / 11; b1[3] = 5. / 11; b1[4] = 1. / 11; b1[5] = -6. / 11; b1[6] = 9. / 11; b1[7] = -5. / 11; b1[8] = -3. / 11; b1[9] = 7. / 11; b1[10] = -5. / 11; b1[11] = 4. / 11; b1[12] = 8. / 11; b1[13] = 7. / 11; b1[14] = -5. / 11; b1[15] = -7. / 11; S21Matrix c = a.InverseMatrix(); EXPECT_EQ(true, b.EqMatrix(c)); } TEST(InverseMatrix, test_5) { S21Matrix a(1, 1); EXPECT_THROW(a.InverseMatrix();, std::invalid_argument); } TEST(InverseMatrix, test_6) { S21Matrix a(1, 2); EXPECT_THROW(a.InverseMatrix();, std::invalid_argument); } TEST(Op_plus, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix c = a + b; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 3; EXPECT_EQ(true, c.EqMatrix(standart)); } TEST(Op_minus, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix c = a - b; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = -1; EXPECT_EQ(true, c.EqMatrix(standart)); } TEST(Op_mul_m, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 3; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix c = a * b; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; EXPECT_EQ(true, c.EqMatrix(standart)); } TEST(Op_mul_n, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 3; double b = 2; S21Matrix c = a * b; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; EXPECT_EQ(true, c.EqMatrix(standart)); } TEST(Op_eq, test_1) { S21Matrix a; S21Matrix b; EXPECT_EQ(true, a == b); } TEST(Op_eq, test_2) { S21Matrix a; double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b; EXPECT_EQ(false, a == b); } TEST(Op_eq, test_3) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b(2, 2); double *b1 = b.get_matrix(); b1[0] = 1; b1[1] = 2; b1[2] = 3; b1[3] = 4; EXPECT_EQ(true, a == b); } TEST(Op_eq, test_4) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b(2, 2); double *b1 = b.get_matrix(); b1[0] = 4; b1[1] = 3; b1[2] = 2; b1[3] = 1; EXPECT_EQ(false, a == b); } TEST(Op_assignment, test_1) { S21Matrix a; double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b = a; EXPECT_EQ(true, a == b); } TEST(Op_assignment, test_3) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; S21Matrix b = a; EXPECT_EQ(true, a == b); } TEST(Op_brackets, test_1) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 1; a1[1] = 2; a1[2] = 3; a1[3] = 4; EXPECT_EQ(1, a(0, 0)); EXPECT_EQ(2, a(0, 1)); EXPECT_EQ(3, a(1, 0)); EXPECT_EQ(4, a(1, 1)); EXPECT_THROW(a(5, 5), std::out_of_range); } TEST(Op_plus_assignment, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 3; a += b; EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(Op_minus_assignment, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 1; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = -1; a -= b; EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(Op_mul_m_assignment, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 3; S21Matrix b(1, 1); double *b1 = b.get_matrix(); b1[0] = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; a *= b; EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(Op_mul_m_assignment, test_2) { S21Matrix a(2, 1); double *a1 = a.get_matrix(); a1[0] = 3; a1[1] = 4; S21Matrix b(1, 2); double *b1 = b.get_matrix(); b1[0] = 2; b1[1] = 5; S21Matrix standart(2, 2); double *standart1 = standart.get_matrix(); standart1[0] = 6; standart1[1] = 15; standart1[2] = 8; standart1[3] = 20; a *= b; EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(Op_mul_n_assignment, test_1) { S21Matrix a(1, 1); double *a1 = a.get_matrix(); a1[0] = 3; double num = 2; S21Matrix standart(1, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; a *= num; EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(Op_mul_n_assignment, test_2) { S21Matrix a(2, 1); double *a1 = a.get_matrix(); a1[0] = 3; a1[1] = 4; double num = 2; S21Matrix standart(2, 1); double *standart1 = standart.get_matrix(); standart1[0] = 6; standart1[1] = 8; a *= num; EXPECT_EQ(true, a.EqMatrix(standart)); } TEST(Op_mul_n_assignment, test_3) { S21Matrix a(2, 2); double *a1 = a.get_matrix(); a1[0] = 3; a1[1] = 4; a1[2] = 1; a1[3] = 2; double num = 2; S21Matrix standart(2, 2); double *standart1 = standart.get_matrix(); standart1[0] = 6; standart1[1] = 8; standart1[2] = 2; standart1[3] = 4; a *= num; EXPECT_EQ(true, a.EqMatrix(standart)); }