#include <catch.hpp>
#include "rive/math/mat4.hpp"
#include "rive/math/mat2d.hpp"

TEST_CASE("Mat2D to Mat4 works", "[mat4]") {
    rive::Mat2D matrix2D(0.1f, 0.2f, 0.0f, 2.0f, 22.0f, 33.0f);
    rive::Mat4 matrix4x4 = matrix2D;
    REQUIRE(matrix4x4[0] == 0.1f);
    REQUIRE(matrix4x4[1] == 0.2f);
    REQUIRE(matrix4x4[4] == 0.0f);
    REQUIRE(matrix4x4[5] == 2.0f);
    REQUIRE(matrix4x4[12] == 22.0f);
    REQUIRE(matrix4x4[13] == 33.0f);
}

TEST_CASE("Mat4 times Mat2 works", "[mat4]") {
    rive::Mat2D matrix2D(0.1f, 0.2f, 0.0f, 2.0f, 22.0f, 33.0f);
    rive::Mat4 identity4x4;
    rive::Mat4 matrix4x4 = identity4x4 * matrix2D;
    REQUIRE(matrix4x4[0] == 0.1f);
    REQUIRE(matrix4x4[1] == 0.2f);
    REQUIRE(matrix4x4[4] == 0.0f);
    REQUIRE(matrix4x4[5] == 2.0f);
    REQUIRE(matrix4x4[12] == 22.0f);
    REQUIRE(matrix4x4[13] == 33.0f);
}

TEST_CASE("Mat4 times Mat4 works", "[mat4]") {
    rive::Mat4 a(
        // clang-format off
        5.0f, 7.0f, 9.0f, 10.0f,
        2.0f, 3.0f, 3.0f, 8.0f,
        8.0f, 10.0f, 2.0f, 3.0f, 
        3.0f, 3.0f, 4.0f, 8.0f
        // clang-format on
    );
    rive::Mat4 b(
        // clang-format off
        3.0f, 10.0f, 12.0f, 18.0f,
        12.0f, 1.0f, 4.0f, 9.0f,
        9.0f, 10.0f, 12.0f, 2.0f, 
        3.0f, 12.0f, 4.0f, 10.0f
        // clang-format on
    );

    auto result = b * a;
    REQUIRE(result[0] == 210.0f);
    REQUIRE(result[1] == 267.0f);
    REQUIRE(result[2] == 236.0f);
    REQUIRE(result[3] == 271.0f);

    REQUIRE(result[4] == 93.0f);
    REQUIRE(result[5] == 149.0f);
    REQUIRE(result[6] == 104.0f);
    REQUIRE(result[7] == 149.0f);

    REQUIRE(result[8] == 171.0f);
    REQUIRE(result[9] == 146.0f);
    REQUIRE(result[10] == 172.0f);
    REQUIRE(result[11] == 268.0f);

    REQUIRE(result[12] == 105.0f);
    REQUIRE(result[13] == 169.0f);
    REQUIRE(result[14] == 128.0f);
    REQUIRE(result[15] == 169.0f);
}