--- a +++ b/Tests/test_helper_templates.any @@ -0,0 +1,126 @@ +#include "libdef.any" + +Main = +{ + + + AnyFolder Test_MESHGRID = { + AnyVector x_ = {0.0,1,2,3}; + AnyVector y_ = {10.0, 20.0, 30.0}; + AnyVector z_ = {100.0, 200.0}; + + AnyFloat meshgrid = MESHGRID(x_,y_,z_); + // Note the dimension is supposed to flip x and y in dimensions. See indexing option for meshgrid in the + // numpy documentation. + AnyInt test_meshgrid_dim = expect(eqfun(SizesOf(meshgrid), {3,3,4,2})); + + AnyInt test_xx = expect(eqfun(flatten(meshgrid[0]), {0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3} )); + AnyInt test_yy = expect(eqfun(flatten(meshgrid[1]), {10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 30, 30, 30, 30, 30, 30, 30, 30} )); + AnyInt test_zz = expect(eqfun(flatten(meshgrid[2]), {100, 200, 100, 200, 100, 200, 100, 200, 100, 200, 100, 200, 100, 200, 100, 200, 100, 200, 100, 200, 100, 200, 100, 200} )); + + AnyMatrix meshtripels = MESHTRIPLES(x_,y_,z_); + AnyInt test_meshtriples_dim = expect(eqfun(SizesOf(meshtripels), {24,3})); + + + }; + + AnyFolder Test_NON_UNIQUE = { + AnyIntArray A = {1,1,3,3,5}; + AnyIntArray B = {1,2,3,3,4}; + AnyIntArray C = {0,1,1}; + + AnyObjectPtrArray P1 = {&A, &A, &B, &B}; + AnyObjectPtrArray P2 = {&A, &B, &B, &A}; + AnyObjectPtrArray P3 = {&A, &B, &B}; + AnyObjectPtrArray P4 = {&A, &B, &C, &C}; + + // Tests + AnyIntArray test_01 = assert(eqfun(NON_UNIQUE_VALUES(A), {1, 3})); + AnyInt test_02 = assert(eqfun(NON_UNIQUE_VALUES(B)[0], 3)); + AnyInt test_03 = assert(eqfun(NON_UNIQUE_VALUES(C), {1})); + + AnyIntArray test_04 = assert(eqfun(NON_UNIQUE_POINTERS(P1), {&A, &B})); + AnyIntArray test_05 = assert(eqfun(NON_UNIQUE_POINTERS(P2), {&A, &B})); + AnyIntArray test_06 = assert(eqfun(NON_UNIQUE_POINTERS(P3), {&B})); + AnyIntArray test_07 = assert(eqfun(NON_UNIQUE_POINTERS(P4), {&C})); + }; + + + AnyFolder Test_DIFFMAT = { + AnyFloat diffmat = DIFFMAT(5); + AnyInt test_01 = assert(eqfun(diffmat[1], {0,-1,1,0,0})); + AnyInt test_02 = assert(eqfun(diffmat[2], {0,0,-1,1,0})); + AnyInt test_03 = assert(eqfun(SizesOf(diffmat),{4,5})); + }; + + AnyFolder Test_PDIST = { + AnyFloat Mat = { + {0,0,0}, + {1,1,1}, + {2,2,2}, + }; + AnyFloat length = PDIST(Mat); + AnyInt test = assert(eqfun(PDIST(Mat), 2*sqrt(3))); + }; + + AnyFolder Test_TOTAL_POLYLINE_LENGTH ={ + AnyFloat P = { + {0,0,0}, + {1,0,0}, + {1,1,0}, + {1,1,1} + }; + AnyFloat length = TOTAL_POLYLINE_LENGTH(P); + AnyInt test = assert(eqfun(length, 3)); + }; + + AnyFolder Test_TRIU_TRIL_TRI = { + + AnyFloat test_TRI = assert( + eqfun(TRI(4), + {{1.0, 0.0, 0.0, 0.0}, + {1.0, 1.0, 0.0, 0.0}, + {1.0, 1.0, 1.0, 0.0}, + {1.0, 1.0, 1.0, 1.0}} + ) + ); + + AnyFloat M_wide = ones(3,5); + AnyFloat M_tall = ones(6,3); + AnyInt test_TRIU_wide = assert( + eqfun(TRIU(M_wide), + {{1.0, 1.0, 1.0, 1.0, 1.0}, + {0.0, 1.0, 1.0, 1.0, 1.0}, + {0.0, 0.0, 1.0, 1.0, 1.0}} + ) + ); + AnyInt test_TRIU_tall = assert( + eqfun(TRIU(M_tall), + {{1.0, 1.0, 1.0}, + {0.0, 1.0, 1.0}, + {0.0, 0.0, 1.0}, + {0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0}} + ) + ); + AnyInt test_TRIL_wide = assert( + eqfun(TRIL(M_wide), + {{1.0, 0.0, 0.0, 0.0, 0.0}, + {1.0, 1.0, 0.0, 0.0, 0.0}, + {1.0, 1.0, 1.0, 0.0, 0.0}} + ) + ); + AnyInt test_TRIL_tall = assert( + eqfun(TRIL(M_tall), + {{1.0, 0.0, 0.0}, + {1.0, 1.0, 0.0}, + {1.0, 1.0, 1.0}, + {1.0, 1.0, 1.0}, + {1.0, 1.0, 1.0}} + ) + ); + }; + + +}; +