load("@rules_cc//cc:cc_test.bzl", "cc_test")

# keep-sorted start block=yes prefix_order=cc_test newline_separated=yes
cc_test(
    name = "arbitrary_obu_generator_test",
    srcs = ["arbitrary_obu_generator_test.cc"],
    deps = [
        "//iamf/cli/proto:arbitrary_obu_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:arbitrary_obu_generator",
        "//iamf/obu:arbitrary_obu",
        "//iamf/obu:obu_header",
        "@abseil-cpp//absl/status",
        "@abseil-cpp//absl/status:status_matchers",
        "@googletest//:gtest_main",
        "@protobuf",
    ],
)

cc_test(
    name = "audio_element_generator_test",
    srcs = ["audio_element_generator_test.cc"],
    deps = [
        "//iamf/cli:audio_element_with_data",
        "//iamf/cli:channel_label",
        "//iamf/cli/proto:audio_element_cc_proto",
        "//iamf/cli/proto:param_definitions_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:audio_element_generator",
        "//iamf/cli/tests:cli_test_utils",
        "//iamf/obu:audio_element",
        "//iamf/obu:codec_config",
        "//iamf/obu:parameter_data",
        "//iamf/obu:types",
        "//iamf/obu/param_definitions:demixing_param_definition",
        "//iamf/obu/param_definitions:extended_param_definition",
        "//iamf/obu/param_definitions:param_definition_base",
        "//iamf/obu/param_definitions:recon_gain_param_definition",
        "@abseil-cpp//absl/container:flat_hash_map",
        "@abseil-cpp//absl/status",
        "@abseil-cpp//absl/status:status_matchers",
        "@abseil-cpp//absl/strings:string_view",
        "@googletest//:gtest_main",
        "@protobuf",
    ],
)

cc_test(
    name = "audio_frame_generator_benchmark",
    srcs = ["audio_frame_generator_benchmark.cc"],
    deps = [
        "//iamf/cli:audio_element_with_data",
        "//iamf/cli:channel_label",
        "//iamf/cli:demixing_module",
        "//iamf/cli:global_timing_module",
        "//iamf/cli:parameters_manager",
        "//iamf/cli/proto:audio_element_cc_proto",
        "//iamf/cli/proto:audio_frame_cc_proto",
        "//iamf/cli/proto:codec_config_cc_proto",
        "//iamf/cli/proto:test_vector_metadata_cc_proto",
        "//iamf/cli/proto:user_metadata_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:audio_element_generator",
        "//iamf/cli/proto_conversion/proto_to_obu:audio_frame_generator",
        "//iamf/cli/proto_conversion/proto_to_obu:codec_config_generator",
        "//iamf/cli/user_metadata_builder:audio_element_metadata_builder",
        "//iamf/cli/user_metadata_builder:audio_frame_metadata_builder",
        "//iamf/cli/user_metadata_builder:codec_config_obu_metadata_builder",
        "//iamf/cli/user_metadata_builder:iamf_input_layout",
        "//iamf/obu:codec_config",
        "//iamf/obu:types",
        "//iamf/obu/param_definitions:param_definition_variant",
        "@abseil-cpp//absl/container:flat_hash_map",
        "@abseil-cpp//absl/log:absl_check",
        "@abseil-cpp//absl/types:span",
        "@google_benchmark//:benchmark_main",
    ],
)

cc_test(
    name = "audio_frame_generator_test",
    srcs = ["audio_frame_generator_test.cc"],
    deps = [
        "//iamf/cli:audio_element_with_data",
        "//iamf/cli:audio_frame_with_data",
        "//iamf/cli:channel_label",
        "//iamf/cli:demixing_module",
        "//iamf/cli:global_timing_module",
        "//iamf/cli:parameters_manager",
        "//iamf/cli/proto:audio_element_cc_proto",
        "//iamf/cli/proto:codec_config_cc_proto",
        "//iamf/cli/proto:test_vector_metadata_cc_proto",
        "//iamf/cli/proto:user_metadata_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:audio_element_generator",
        "//iamf/cli/proto_conversion/proto_to_obu:audio_frame_generator",
        "//iamf/cli/proto_conversion/proto_to_obu:codec_config_generator",
        "//iamf/cli/tests:cli_test_utils",
        "//iamf/cli/user_metadata_builder:audio_element_metadata_builder",
        "//iamf/cli/user_metadata_builder:iamf_input_layout",
        "//iamf/common/utils:numeric_utils",
        "//iamf/obu:audio_frame",
        "//iamf/obu:codec_config",
        "//iamf/obu:obu_header",
        "//iamf/obu:types",
        "//iamf/obu/decoder_config:aac_decoder_config",
        "//iamf/obu/decoder_config:opus_decoder_config",
        "//iamf/obu/param_definitions:param_definition_variant",
        "@abseil-cpp//absl/container:flat_hash_map",
        "@abseil-cpp//absl/status",
        "@abseil-cpp//absl/status:status_matchers",
        "@abseil-cpp//absl/types:span",
        "@googletest//:gtest_main",
        "@protobuf",
    ],
)

cc_test(
    name = "codec_config_generator_test",
    srcs = ["codec_config_generator_test.cc"],
    deps = [
        "//iamf/cli/proto:codec_config_cc_proto",
        "//iamf/cli/proto:obu_header_cc_proto",
        "//iamf/cli/proto:test_vector_metadata_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:codec_config_generator",
        "//iamf/cli/tests:cli_test_utils",
        "//iamf/obu:codec_config",
        "//iamf/obu:obu_header",
        "//iamf/obu:types",
        "//iamf/obu/decoder_config:aac_decoder_config",
        "//iamf/obu/decoder_config:flac_decoder_config",
        "//iamf/obu/decoder_config:lpcm_decoder_config",
        "//iamf/obu/decoder_config:opus_decoder_config",
        "@abseil-cpp//absl/container:flat_hash_map",
        "@abseil-cpp//absl/status",
        "@abseil-cpp//absl/status:status_matchers",
        "@abseil-cpp//absl/status:statusor",
        "@googletest//:gtest_main",
        "@protobuf",
    ],
)

cc_test(
    name = "ia_sequence_header_generator_test",
    srcs = ["ia_sequence_header_generator_test.cc"],
    deps = [
        "//iamf/cli/proto:ia_sequence_header_cc_proto",
        "//iamf/cli/proto:obu_header_cc_proto",
        "//iamf/cli/proto:user_metadata_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:ia_sequence_header_generator",
        "//iamf/obu:ia_sequence_header",
        "//iamf/obu:obu_header",
        "@abseil-cpp//absl/status",
        "@abseil-cpp//absl/status:status_matchers",
        "@googletest//:gtest_main",
    ],
)

cc_test(
    name = "metadata_obu_generator_test",
    srcs = ["metadata_obu_generator_test.cc"],
    deps = [
        "//iamf/cli/proto:metadata_obu_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:metadata_obu_generator",
        "//iamf/obu:metadata_obu",
        "@abseil-cpp//absl/status:status_matchers",
        "@googletest//:gtest_main",
        "@protobuf",
    ],
)

cc_test(
    name = "mix_presentation_generator_test",
    srcs = ["mix_presentation_generator_test.cc"],
    deps = [
        "//iamf/cli/proto:element_gain_offset_config_cc_proto",
        "//iamf/cli/proto:mix_presentation_cc_proto",
        "//iamf/cli/proto:obu_header_cc_proto",
        "//iamf/cli/proto:param_definitions_cc_proto",
        "//iamf/cli/proto:types_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:mix_presentation_generator",
        "//iamf/cli/tests:cli_test_utils",
        "//iamf/common:q_format_or_floating_point",
        "//iamf/obu:element_gain_offset_config",
        "//iamf/obu:mix_presentation",
        "//iamf/obu:rendering_config",
        "//iamf/obu:types",
        "//iamf/obu/param_definitions:cart16_param_definition",
        "//iamf/obu/param_definitions:cart8_param_definition",
        "//iamf/obu/param_definitions:dual_cart16_param_definition",
        "//iamf/obu/param_definitions:dual_cart8_param_definition",
        "//iamf/obu/param_definitions:dual_polar_param_definition",
        "//iamf/obu/param_definitions:polar_param_definition",
        "@abseil-cpp//absl/status:status_matchers",
        "@abseil-cpp//absl/strings:string_view",
        "@googletest//:gtest_main",
        "@protobuf",
    ],
)

cc_test(
    name = "parameter_block_generator_test",
    size = "small",
    srcs = ["parameter_block_generator_test.cc"],
    deps = [
        "//iamf/cli:audio_element_with_data",
        "//iamf/cli:channel_label",
        "//iamf/cli:cli_util",
        "//iamf/cli:demixing_module",
        "//iamf/cli:global_timing_module",
        "//iamf/cli:obu_with_data_generator",
        "//iamf/cli:parameter_block_with_data",
        "//iamf/cli/proto:parameter_block_cc_proto",
        "//iamf/cli/proto:user_metadata_cc_proto",
        "//iamf/cli/proto_conversion/proto_to_obu:parameter_block_generator",
        "//iamf/cli/tests:cli_test_utils",
        "//iamf/cli/user_metadata_builder:iamf_input_layout",
        "//iamf/common:q_format_or_floating_point",
        "//iamf/obu:audio_element",
        "//iamf/obu:codec_config",
        "//iamf/obu:obu_header",
        "//iamf/obu:parameter_block",
        "//iamf/obu:parameter_data",
        "//iamf/obu:types",
        "//iamf/obu/param_definitions:mix_gain_param_definition",
        "//iamf/obu/param_definitions:param_definition_variant",
        "@abseil-cpp//absl/container:flat_hash_map",
        "@abseil-cpp//absl/status:status_matchers",
        "@abseil-cpp//absl/types:span",
        "@googletest//:gtest_main",
        "@protobuf",
    ],
)

# keep-sorted end
