# loki.transformations.single_column.tests.test_scc

Functions

`fixture_blocking`() |
`fixture_horizontal`() |
`fixture_horizontal_bounds_aliases`() |
`test_scc_annotate_directive`(frontend, ...) | Test the correct addition of OpenACC pragmas to SCC format code (no hoisting).
`test_scc_annotate_driver_loop`(frontend, ...) | Test for issue #246 to ensure the correct loop in the loop nest is identified and annotated as driver loop
`test_scc_annotate_empty_data_clause`(...) | Test that we do not generate empty !$acc data clauses.
`test_scc_annotate_openacc`(frontend, ...) | Test the correct addition of OpenACC pragmas to SCC format code (no hoisting).
`test_scc_annotate_routine_seq_pragma`(...) | Test that !$loki routine seq pragmas are replaced correctly by !$acc routine seq pragmas.
`test_scc_base_horizontal_bounds_checks`(...) | Test the SCCBaseTransformation checks for horizontal loop bounds.
`test_scc_base_rename_index_aliases`(frontend, ...) | Test rename index aliases in kernel.
`test_scc_base_resolve_vector_notation`(...) | Test resolving of vector notation in kernel.
`test_scc_demote_transformation`(frontend, ...) | Test that local array variables that do not buffer values between vector sections and whose size is known at compile-time are demoted.
`test_scc_demotion_parameter`(frontend, ...) | Test that temporary arrays with compile-time constants are marked for demotion.
`test_scc_driver_loop_async`(frontend, ...) | Test that an annotated async driver loop will be mapped to an async acc pragma
`test_scc_inline_and_sequence_association`(...) | Test the combinations of routine inlining and sequence association
`test_scc_multicond`(frontend, horizontal, ...) | Test if horizontal loops in multiconditionals with CallStatements are correctly transformed.
`test_scc_multiple_acc_pragmas`(frontend, ...) | Test that both '!$acc data' and '!$acc parallel loop gang' pragmas are created at the driver layer.
`test_scc_nested`(frontend, horizontal, blocking) | Test the correct handling of nested vector-level routines in SCC.
`test_scc_outer_loop`(frontend, horizontal, ...) | Test the correct handling of an outer loop that breaks scoping.
`test_scc_variable_demotion`(frontend, horizontal) | Test the correct demotion of an outer loop that breaks scoping.
`test_scc_vector_reduction`(frontend, ...) | Test for the insertion of OpenACC vector reduction directives.

fixture_horizontal()

fixture_horizontal_bounds_aliases()

fixture_blocking()

test_scc_base_resolve_vector_notation(frontend, horizontal)

  Test resolving of vector notation in kernel.

test_scc_base_rename_index_aliases(frontend, rel_index, indices)

  Test rename index aliases in kernel.

test_scc_demote_transformation(frontend, horizontal)

  Test that local array variables that do not buffer values between vector sections and whose size is known at compile-time are demoted.

test_scc_annotate_openacc(frontend, horizontal, blocking, acc_data)

  Test the correct addition of OpenACC pragmas to SCC format code (no hoisting).

test_scc_annotate_directive(frontend, horizontal, blocking, directive)

  Test the correct addition of OpenACC pragmas to SCC format code (no hoisting).

test_scc_nested(frontend, horizontal, blocking)

  Test the correct handling of nested vector-level routines in SCC.

test_scc_outer_loop(frontend, horizontal, blocking)

  Test the correct handling of an outer loop that breaks scoping.

test_scc_variable_demotion(frontend, horizontal)

  Test the correct demotion of an outer loop that breaks scoping.

test_scc_multicond(frontend, horizontal, blocking)

  Test if horizontal loops in multiconditionals with CallStatements are correctly transformed.

test_scc_multiple_acc_pragmas(frontend, horizontal, blocking, dims_type, tmp_path, caplog, data_offload)

  Test that both ‘!$acc data’ and ‘!$acc parallel loop gang’ pragmas are created at the driver layer.

test_scc_driver_loop_async(frontend, horizontal, blocking)

  Test that an annotated async driver loop will be mapped to an async acc pragma

test_scc_annotate_routine_seq_pragma(frontend, blocking)

  Test that !$loki routine seq pragmas are replaced correctly by !$acc routine seq pragmas.

test_scc_annotate_empty_data_clause(frontend, blocking)

  Test that we do not generate empty !$acc data clauses.

test_scc_vector_reduction(frontend, pipeline, horizontal, blocking)

  Test for the insertion of OpenACC vector reduction directives.

test_scc_demotion_parameter(frontend, horizontal, tmp_path)

  Test that temporary arrays with compile-time constants are marked for demotion.

test_scc_base_horizontal_bounds_checks(frontend, horizontal, horizontal_bounds_aliases, tmp_path)

  Test the SCCBaseTransformation checks for horizontal loop bounds.

test_scc_inline_and_sequence_association(frontend, horizontal, inline_internals, resolve_sequence_association)

  Test the combinations of routine inlining and sequence association

test_scc_annotate_driver_loop(frontend, tmp_path, pipeline, mode)

  Test for issue #246 to ensure the correct loop in the loop nest is identified and annotated as driver loop