diff --git a/tests/generator_scripts/source/ComposerHeaderOnly.harness.cpp b/tests/generator_scripts/source/ComposerHeaderOnly.harness.cpp index f6c549a3a33d434fd0bb8865140f1edf29ed9983..76f2de4c99da5bb7bb968a404f4c43b4dcfb7482 100644 --- a/tests/generator_scripts/source/ComposerHeaderOnly.harness.cpp +++ b/tests/generator_scripts/source/ComposerHeaderOnly.harness.cpp @@ -8,11 +8,23 @@ int main(void) { assert( twice(13) == 26 ); - std::vector< int64_t > arr { 1, 2, 3, 4, 5, 6 }; - twiceKernel(arr); + { + std::vector< int64_t > arr { 1, 2, 3, 4, 5, 6 }; + twiceKernel(arr); - std::vector< int64_t > expected { 2, 4, 6, 8, 10, 12 }; - assert ( arr == expected ); + std::vector< int64_t > expected { 2, 4, 6, 8, 10, 12 }; + assert ( arr == expected ); + } + + { + std::vector< int64_t > arr { 1, 2, 3, 4, 5, 6 }; + ScaleKernel ker { 3 }; + + ker( arr ); + + std::vector< int64_t > expected { 3, 6, 9, 12, 15, 18 }; + assert ( arr == expected ); + } return 0; } diff --git a/tests/generator_scripts/source/ComposerHeaderOnly.py b/tests/generator_scripts/source/ComposerHeaderOnly.py index 0bd1a07879855b9a2af75e493fa84e92632a70ff..3881457634e8e5182ce0922700e7ad1541199cca 100644 --- a/tests/generator_scripts/source/ComposerHeaderOnly.py +++ b/tests/generator_scripts/source/ComposerHeaderOnly.py @@ -17,10 +17,29 @@ with SourceFileGenerator(cfg) as sfg: arr = ps.fields("arr: int64[1D]") vec = std.vector.from_field(arr) - asm = ps.Assignment(arr(0), 2 * arr(0)) + c = ps.TypedSymbol("c", "int64") + + asm = ps.Assignment(arr(0), c * arr(0)) khandle = sfg.kernels.create(asm) sfg.function("twiceKernel")( sfg.map_field(arr, vec), + sfg.set_param(c, "2"), sfg.call(khandle) ) + + # Inline class members + + sfg.klass("ScaleKernel")( + sfg.private( + c + ), + sfg.public( + sfg.constructor(c).init(c)(c), + sfg.method("operator()")( + sfg.map_field(arr, vec), + sfg.set_param(c, "this->c"), + sfg.call(khandle) + ) + ) + )