diff --git a/main.cpp b/main.cpp index 3570545..d304e81 100644 --- a/main.cpp +++ b/main.cpp @@ -26,6 +26,7 @@ void test_function() { assert(("converting 01001001", Function("01001001").string() == "01001001")); assert(("converting 00000000", Function("00000000").string() == "00000000")); assert(("converting 11111111", Function("11111111").string() == "11111111")); + assert((Function("0010101111110001").string() == "0010101111110001")); Function a(12); Function b(5); @@ -59,7 +60,13 @@ void test_function() { assert(i_matrix.string("") == "100010001"); assert(i_matrix.get_determinant() == 1); assert(minus_i_matrix.string("") == "001010100"); - assert(minus_i_matrix.get_determinant() == uint16_t(-1)); + assert(minus_i_matrix.get_determinant() != 0); // == uint16_t(-1) + + assert((BoolSquareMatrix(0b001001010).get_determinant() == 0)); + assert((BoolSquareMatrix(0b101000010).get_determinant() == 0)); + assert((BoolSquareMatrix(0b110101110).get_determinant() == 0)); + assert((BoolSquareMatrix(0b110101011).get_determinant() %2 == 0)); + assert((BoolSquareMatrix(0b001011111).get_determinant() != 0)); // == uint16_t(-1) BoolSquareMatrix ones_matrix_4(0b1111111111111111), i_matrix_4(0b1000010000100001), @@ -71,6 +78,10 @@ void test_function() { assert(minus_i_matrix_4.string("") == "0001001001001000"); assert(minus_i_matrix_4.get_determinant() == 1); + assert((BoolSquareMatrix(0b0001100000011010).get_determinant() == 0)); + assert((BoolSquareMatrix(0b0100011110111001).get_determinant() != 0)); + assert((BoolSquareMatrix(0b0000110100001101).get_determinant() == 0)); + assert((BoolSquareMatrix(0b0010101111110001).get_determinant() != 0)); cout << "self-test passed" << endl; }