Initial commit

This commit is contained in:
2026-04-03 00:22:39 -05:00
commit eca1e8c458
945 changed files with 218160 additions and 0 deletions

View File

@@ -0,0 +1,490 @@
/*
AUTOMATICALLY GENERATED FILE - DO NOT EDIT!
Please change MatrixNxN.py and re-run it
*/
/* Generated with ./MatrixNxN.py n = 2, TYPE = int */
#include "ZUnitTest.hpp"
#include <float.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <SST/SST_Mat22.h>
#include <SST/SST_Vec2.h>
static const char* testSST_Math_Mat22iAdd();
static const char* testSST_Math_Mat22iAddLocal();
static const char* testSST_Math_Mat22iSubtract();
static const char* testSST_Math_Mat22iSubtractLocal();
static const char* testSST_Math_Mat22iMultiplyElementwise();
static const char* testSST_Math_Mat22iMultiplyElementwiseLocal();
static const char* testSST_Math_Mat22iMultiplyScalar();
static const char* testSST_Math_Mat22iMultiplyScalarLocal();
static const char* testSST_Math_Mat22iMultiplyMatrix();
static const char* testSST_Math_Mat22iMultiplyMatrixLocal();
static const char* testSST_Math_Mat22iMultiplyVector();
static const char* testSST_Math_Mat22iMultiplyVectorLocal();
static const char* testSST_Math_Mat22iTranspose();
static const char* testSST_Math_Mat22iTransposeLocal();
static const char* testSST_Math_Mat22iDeterminant();
static const char* testSST_Math_Mat22iCheckOrthonormal();
// List of unit tests
ZUnitTest SST_Math_Mat22iUnitTests[] =
{
{ "testSST_Math_Mat22iAdd " , testSST_Math_Mat22iAdd },
{ "testSST_Math_Mat22iAddLocal " , testSST_Math_Mat22iAddLocal },
{ "testSST_Math_Mat22iSubtract " , testSST_Math_Mat22iSubtract },
{ "testSST_Math_Mat22iSubtractLocal " , testSST_Math_Mat22iSubtractLocal },
{ "testSST_Math_Mat22iMultiplyElementwise " , testSST_Math_Mat22iMultiplyElementwise },
{ "testSST_Math_Mat22iMultiplyElementwiseLocal " , testSST_Math_Mat22iMultiplyElementwiseLocal },
{ "testSST_Math_Mat22iMultiplyScalar " , testSST_Math_Mat22iMultiplyScalar },
{ "testSST_Math_Mat22iMultiplyScalarLocal " , testSST_Math_Mat22iMultiplyScalarLocal },
{ "testSST_Math_Mat22iMultiplyMatrix " , testSST_Math_Mat22iMultiplyMatrix },
{ "testSST_Math_Mat22iMultiplyMatrixLocal " , testSST_Math_Mat22iMultiplyMatrixLocal },
{ "testSST_Math_Mat22iMultiplyVector " , testSST_Math_Mat22iMultiplyVector },
{ "testSST_Math_Mat22iMultiplyVectorLocal " , testSST_Math_Mat22iMultiplyVectorLocal },
{ "testSST_Math_Mat22iDeterminant " , testSST_Math_Mat22iDeterminant },
{ "testSST_Math_Mat22iCheckOrthonormal " , testSST_Math_Mat22iCheckOrthonormal },
{ "testSST_Math_Mat22iTranspose " , testSST_Math_Mat22iTranspose },
{ "testSST_Math_Mat22iTransposeLocal " , testSST_Math_Mat22iTransposeLocal }
};
DECLARE_ZTESTBLOCK(SST_Math_Mat22i)
/******************************************************************************/
static const char* testSST_Math_Mat22iAdd(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
SST_Mat22i A; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 15;
X.v[1] = -18;
X.v[2] = -14;
X.v[3] = -20;
Y.v[0] = -7;
Y.v[1] = 7;
Y.v[2] = 4;
Y.v[3] = 14;
/*
[[ 15 -14]
[-18 -20]]
[[-7 4]
[ 7 14]]
[[ 8 -10]
[-11 -6]]
*/
SST_Math_Mat22iAdd(&X,&Y,&A);
TASSERT((A.v[0])==(8),"Entry _a11 failed!");
TASSERT((A.v[2])==(-10),"Entry _a12 failed!");
TASSERT((A.v[1])==(-11),"Entry _a21 failed!");
TASSERT((A.v[3])==(-6),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iAddLocal(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 14;
X.v[1] = -8;
X.v[2] = -19;
X.v[3] = 11;
Y.v[0] = -20;
Y.v[1] = -10;
Y.v[2] = 13;
Y.v[3] = 17;
/*
[[ 14 -19]
[ -8 11]]
[[-20 13]
[-10 17]]
[[ -6 -6]
[-18 28]]
*/
SST_Math_Mat22iAddLocal(&X,&Y); /* for accuracy */
TASSERT((X.v[0])==(-6),"Entry _a11 failed!");
TASSERT((X.v[2])==(-6),"Entry _a12 failed!");
TASSERT((X.v[1])==(-18),"Entry _a21 failed!");
TASSERT((X.v[3])==(28),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iSubtract(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
SST_Mat22i A; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 14;
X.v[1] = -16;
X.v[2] = -9;
X.v[3] = -14;
Y.v[0] = 13;
Y.v[1] = 11;
Y.v[2] = 9;
Y.v[3] = -7;
/*
[[ 14 -9]
[-16 -14]]
[[13 9]
[11 -7]]
[[ 1 -18]
[-27 -7]]
*/
SST_Math_Mat22iSubtract(&X,&Y,&A);
TASSERT((A.v[0])==(1),"Entry _a11 failed!");
TASSERT((A.v[2])==(-18),"Entry _a12 failed!");
TASSERT((A.v[1])==(-27),"Entry _a21 failed!");
TASSERT((A.v[3])==(-7),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iSubtractLocal(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 19;
X.v[1] = 18;
X.v[2] = -16;
X.v[3] = -13;
Y.v[0] = 12;
Y.v[1] = 6;
Y.v[2] = 2;
Y.v[3] = -6;
/*
[[ 19 -16]
[ 18 -13]]
[[12 2]
[ 6 -6]]
[[ 7 -18]
[ 12 -7]]
*/
SST_Math_Mat22iSubtractLocal(&X,&Y); /* for accuracy */
TASSERT((X.v[0])==(7),"Entry _a11 failed!");
TASSERT((X.v[2])==(-18),"Entry _a12 failed!");
TASSERT((X.v[1])==(12),"Entry _a21 failed!");
TASSERT((X.v[3])==(-7),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyElementwise(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
SST_Mat22i A; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 13;
X.v[1] = -2;
X.v[2] = -20;
X.v[3] = 18;
Y.v[0] = 2;
Y.v[1] = 14;
Y.v[2] = -5;
Y.v[3] = 16;
/*
[[ 13 -20]
[ -2 18]]
[[ 2 -5]
[14 16]]
[[ 26 100]
[-28 288]]
*/
SST_Math_Mat22iMultiplyElementwise(&X, &Y, &A);
TASSERT((A.v[0])==(26),"Entry _a11 failed!");
TASSERT((A.v[2])==(100),"Entry _a12 failed!");
TASSERT((A.v[1])==(-28),"Entry _a21 failed!");
TASSERT((A.v[3])==(288),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyElementwiseLocal(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = -11;
X.v[1] = 10;
X.v[2] = 12;
X.v[3] = -3;
Y.v[0] = -19;
Y.v[1] = 2;
Y.v[2] = 7;
Y.v[3] = -4;
/*
[[-11 12]
[ 10 -3]]
[[-19 7]
[ 2 -4]]
[[209 84]
[ 20 12]]
*/
SST_Math_Mat22iMultiplyElementwiseLocal(&X,&Y);
TASSERT((X.v[0])==(209),"Entry _a11 failed!");
TASSERT((X.v[2])==(84),"Entry _a12 failed!");
TASSERT((X.v[1])==(20),"Entry _a21 failed!");
TASSERT((X.v[3])==(12),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyScalar(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i A; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = -1;
X.v[1] = -17;
X.v[2] = -14;
X.v[3] = -8;
/*
[[ -1 -14]
[-17 -8]]
[[ -2 -28]
[-34 -16]]
*/
SST_Math_Mat22iMultiplyScalar(&X,2,&A);
TASSERT((A.v[0])==(-2),"Entry _a11 failed!");
TASSERT((A.v[2])==(-28),"Entry _a12 failed!");
TASSERT((A.v[1])==(-34),"Entry _a21 failed!");
TASSERT((A.v[3])==(-16),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyScalarLocal(){
SST_Mat22i X; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 9;
X.v[1] = -1;
X.v[2] = -9;
X.v[3] = 4;
/*
[[ 9 -9]
[-1 4]]
[[ 18 -18]
[ -2 8]]
*/
SST_Math_Mat22iMultiplyScalarLocal(&X,2);
TASSERT((X.v[0])==(18),"Entry _a11 failed!");
TASSERT((X.v[2])==(-18),"Entry _a12 failed!");
TASSERT((X.v[1])==(-2),"Entry _a21 failed!");
TASSERT((X.v[3])==(8),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyMatrix(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
SST_Mat22i A; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = -20;
X.v[1] = 0;
X.v[2] = -1;
X.v[3] = -1;
Y.v[0] = -9;
Y.v[1] = -10;
Y.v[2] = 18;
Y.v[3] = -1;
/*
X
[[-20 -1]
[ 0 -1]]
Y
[[ -9 18]
[-10 -1]]
[[ 190 -359]
[ 10 1]]
*/
SST_Math_Mat22iMultiplyMatrix(&X,&Y,&A);
TASSERT((A.v[0])==(190),"Entry _a11 failed!");
TASSERT((A.v[2])==(-359),"Entry _a12 failed!");
TASSERT((A.v[1])==(10),"Entry _a21 failed!");
TASSERT((A.v[3])==(1),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyMatrixLocal(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 19;
X.v[1] = 18;
X.v[2] = 5;
X.v[3] = -14;
Y.v[0] = -18;
Y.v[1] = 19;
Y.v[2] = -14;
Y.v[3] = 4;
/*
X
[[ 19 5]
[ 18 -14]]
Y
[[-18 -14]
[ 19 4]]
X
[[-247 -246]
[-590 -308]]
*/
SST_Math_Mat22iMultiplyMatrixLocal(&X,&Y);
TASSERT((X.v[0])==(-247),"Entry _a11 failed!");
TASSERT((X.v[2])==(-246),"Entry _a12 failed!");
TASSERT((X.v[1])==(-590),"Entry _a21 failed!");
TASSERT((X.v[3])==(-308),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyVector(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Vec2i v; /* 2 vector */
SST_Vec2i w; /* 2 vector */
/* Resetting test vectors / mats */
v.v[0] = -9;
v.v[1] = 16;
X.v[0] = -2;
X.v[1] = -3;
X.v[2] = -17;
X.v[3] = 5;
/*
X
[[ -2 -17]
[ -3 5]]
v
[-9 16]
w
[-254 107]
*/
SST_Math_Mat22iMultiplyVector(&X,&v,&w);
TASSERT((w.v[0])==(-254),"Entry .v[0] failed!");
TASSERT((w.v[1])==(107),"Entry .v[1] failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iMultiplyVectorLocal(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Vec2i v; /* 2 vector */
/* Resetting test vectors / mats */
v.v[0] = -2;
v.v[1] = -4;
X.v[0] = 10;
X.v[1] = 5;
X.v[2] = 13;
X.v[3] = 8;
/*
X
[[10 13]
[ 5 8]]
v
[-2 -4]
v
[-72 -42]
*/
SST_Math_Mat22iMultiplyVectorLocal(&X,&v);
TASSERT((v.v[0])==(-72),"Entry .v[0] failed!");
TASSERT((v.v[1])==(-42),"Entry .v[1] failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iTranspose(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i A; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 5;
X.v[1] = -17;
X.v[2] = 3;
X.v[3] = 1;
SST_Math_Mat22iTranspose(&X,&A);
TASSERT((A.v[0])==(5),"Entry _a11 failed!");
TASSERT((A.v[2])==(-17),"Entry _a12 failed!");
TASSERT((A.v[1])==(3),"Entry _a21 failed!");
TASSERT((A.v[3])==(1),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iTransposeLocal(){
SST_Mat22i X; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = -11;
X.v[1] = -17;
X.v[2] = -11;
X.v[3] = 17;
SST_Math_Mat22iTransposeLocal(&X);
TASSERT((X.v[0])==(-11),"Entry _a11 failed!");
TASSERT((X.v[2])==(-17),"Entry _a12 failed!");
TASSERT((X.v[1])==(-11),"Entry _a21 failed!");
TASSERT((X.v[3])==(17),"Entry _a22 failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iCheckOrthonormal(){
SST_Mat22i X; /* 2 x 2 matrix */
SST_Mat22i Y; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 6;
X.v[1] = -11;
X.v[2] = 15;
X.v[3] = 2;
Y.v[0] = 15;
Y.v[1] = -3;
Y.v[2] = 18;
Y.v[3] = 0;
X.v[0] = (int)1;
X.v[1] = (int)0;
X.v[2] = (int)0;
X.v[3] = (int)1;
Y.v[0] = (int)1;
Y.v[1] = (int)0;
Y.v[2] = (int)0;
Y.v[3] = (int)1;
Y.v[1] = (int)1; /* Will cause Y to be fail */
/* Check Positive Test */
TASSERT(SST_Math_Mat22iCheckOrthonormal(&X),"CheckOrthonormal failed when it should have passed");
/* Check Negative Test */
TASSERT(!SST_Math_Mat22iCheckOrthonormal(&Y),"CheckOrthonormal succeeded when it should have failed");
return ZTEST_SUCCESS;
}
/******************************************************************************/
static const char* testSST_Math_Mat22iDeterminant(){
SST_Mat22i X; /* 2 x 2 matrix */
/* Resetting test vectors / mats */
X.v[0] = 10;
X.v[1] = -7;
X.v[2] = -6;
X.v[3] = 3;
/* det(X) =
-12.0
*/
int result = SST_Math_Mat22iDeterminant(&X);
TASSERT(abs( (result)/(-12) - 1 ) <= 100*0,"Determinant failed!");
return ZTEST_SUCCESS;
}
/******************************************************************************/