// Copyright (c) ONNX Project Contributors
//
// SPDX-License-Identifier: Apache-2.0

#include "onnx_extensions/backend_test/cases/tensor/include_tensor_cases.h"

namespace ONNX_LIGHT_NAMESPACE::onnx_backend_test {

void CollectTensorTestCases(std::vector<TestCase> &registry, const std::string &op_type,
                            TestMode mode) {
  static const OpRegisterModeMap kEntries = {
      {"Concat", &RegisterConcatCases},
      {"Cast", &RegisterCastCases},
      {"CastLike", &RegisterCastLikeCases},
      {"BitCast", &RegisterBitCastCases},
      {"AffineGrid", &RegisterAffineGridCases},
      {"GridSample", &RegisterGridSampleCases},
      {"Expand", &RegisterExpandCases},
      {"Reshape", &RegisterReshapeCases},
      {"Slice", &RegisterSliceCases},
      {"Transpose", &RegisterTransposeCases},
      {"Trilu", &RegisterTriluCases},
      {"CenterCropPad", &RegisterCenterCropPadCases},
      {"ReverseSequence", &RegisterReverseSequenceCases},
      {"DepthToSpace", &RegisterDepthToSpaceCases},
      {"SpaceToDepth", &RegisterSpaceToDepthCases},
      {"Tile", &RegisterTileCases},
      {"Pad", &RegisterPadCases},
      {"Upsample", &RegisterUpsampleCases},
      {"Resize", &RegisterResizeCases},
      {"Squeeze", &RegisterSqueezeCases},
      {"Unsqueeze", &RegisterUnsqueezeCases},
      {"NonZero", &RegisterNonZeroCases},
      {"OneHot", &RegisterOneHotCases},
      {"Unique", &RegisterUniqueCases},
      {"Shape", &RegisterShapeCases},
      {"Size", &RegisterSizeCases},
      {"Identity", &RegisterIdentityCases},
      {"Gather", &RegisterGatherCases},
      {"GatherElements", &RegisterGatherElementsCases},
      {"GatherND", &RegisterGatherNDCases},
      {"Compress", &RegisterCompressCases},
      {"Split", &RegisterSplitCases},
      {"TensorScatter", &RegisterTensorScatterCases},
      {"ScatterElements", &RegisterScatterElementsCases},
      {"ScatterND", &RegisterScatterNDCases},
      {"Scatter", &RegisterScatterCases},
  };
  DispatchRegisterByOpType(registry, op_type, kEntries, mode);
}

} // namespace ONNX_LIGHT_NAMESPACE::onnx_backend_test
