nareshmlx/opencv-pr huggingface dataset:
**File:** cmake/OpenCVFindLAPACK.cmake
**Change Type:** modified
**Context:** PR #24804: core: try to solve warnings caused by Apple's new LAPACK interface

**Code Changes:**
```diff
@@ -106,11 +106,26 @@ macro(ocv_lapack_check)
       list(APPEND __link_directories ${LAPACK_LINK_LIBRARIES})
     endif()
 
+    set(LAPACK_TRY_COMPILE_DEF "")
+    if(LAPACK_IMPL STREQUAL "LAPACK/Apple" AND NOT IOS) # https://github.com/opencv/opencv/issues/24660
+      # Get macOS version
+      execute_process(COMMAND sw_vers -productVersion
+                      OUTPUT_VARIABLE MACOS_VERSION
+                      OUTPUT_STRIP_TRAILING_WHITESPACE)
```

Review comment:
to-do is not relevant any more.
**File:** cmake/OpenCVFindLAPACK.cmake
**Change Type:** modified
**Context:** PR #24804: core: try to solve warnings caused by Apple's new LAPACK interface

**Code Changes:**
```diff
@@ -106,11 +106,26 @@ macro(ocv_lapack_check)
       list(APPEND __link_directories ${LAPACK_LINK_LIBRARIES})
     endif()
 
+    set(LAPACK_TRY_COMPILE_DEF "")
+    if(LAPACK_IMPL STREQUAL "LAPACK/Apple" AND NOT IOS) # https://github.com/opencv/opencv/issues/24660
+      # Get macOS version
+      execute_process(COMMAND sw_vers -productVersion
+                      OUTPUT_VARIABLE MACOS_VERSION
+                      OUTPUT_STRIP_TRAILING_WHITESPACE)
```

Review comment:
It does not work for 14.2, for example. Please use special version comparison: https://cmake.org/cmake/help/latest/command/if.html#version-comparisons. Example: https://github.com/opencv/opencv/blob/f9dd20eb07210f4759889f667fc8fc1ad90f55da/CMakeLists.txt#L865
**File:** cmake/OpenCVFindLAPACK.cmake
**Change Type:** modified
**Context:** PR #24804: core: try to solve warnings caused by Apple's new LAPACK interface

**Code Changes:**
```diff
@@ -106,11 +106,26 @@ macro(ocv_lapack_check)
       list(APPEND __link_directories ${LAPACK_LINK_LIBRARIES})
     endif()
 
+    set(LAPACK_TRY_COMPILE_DEF "")
+    if(LAPACK_IMPL STREQUAL "LAPACK/Apple" AND NOT IOS) # https://github.com/opencv/opencv/issues/24660
+      # Get macOS version
+      execute_process(COMMAND sw_vers -productVersion
+                      OUTPUT_VARIABLE MACOS_VERSION
+                      OUTPUT_STRIP_TRAILING_WHITESPACE)
```

Review comment:
Done. I do not want to mess around with ios build script, so skipping this for ios.
**File:** modules/core/src/hal_internal.cpp
**Change Type:** modified
**Context:** PR #24804: core: try to solve warnings caused by Apple's new LAPACK interface

**Code Changes:**
```diff
@@ -111,8 +111,18 @@ set_value(fptype *dst, size_t dst_ld, fptype value, size_t m, size_t n)
 template <typename fptype> static inline int
 lapack_LU(fptype* a, size_t a_step, int m, fptype* b, size_t b_step, int n, int* info)
 {
-    int lda = (int)(a_step / sizeof(fptype)), sign = 0;
-    int* piv = new int[m];
+#if defined (ACCELERATE_NEW_LAPACK) && defined (ACCELERATE_LAPACK_ILP64)
+    cv::AutoBuffer<long> piv_buff(m);
+    long lda = (long)(a_step / sizeof(fptype));
+    long _m = static_cast<long>(m), _n = static_cast<long>(n);
```

Review comment:
I propose to us AutoBuffer instead of new/delete. It's leak safe and allows to allocate small buffers on stack.
**File:** modules/core/src/hal_internal.cpp
**Change Type:** modified
**Context:** PR #24804: core: try to solve warnings caused by Apple's new LAPACK interface

**Code Changes:**
```diff
@@ -111,8 +111,18 @@ set_value(fptype *dst, size_t dst_ld, fptype value, size_t m, size_t n)
 template <typename fptype> static inline int
 lapack_LU(fptype* a, size_t a_step, int m, fptype* b, size_t b_step, int n, int* info)
 {
-    int lda = (int)(a_step / sizeof(fptype)), sign = 0;
-    int* piv = new int[m];
+#if defined (ACCELERATE_NEW_LAPACK) && defined (ACCELERATE_LAPACK_ILP64)
+    cv::AutoBuffer<long> piv_buff(m);
+    long lda = (long)(a_step / sizeof(fptype));
+    long _m = static_cast<long>(m), _n = static_cast<long>(n);
```

Review comment:
The same for new/delete here.
**File:** cmake/OpenCVFindLAPACK.cmake
**Change Type:** modified
**Context:** PR #24804: core: try to solve warnings caused by Apple's new LAPACK interface
**Review Line:** 114

**Code Changes:**
```diff
+    set(LAPACK_TRY_COMPILE_DEF "")
+    if(LAPACK_IMPL STREQUAL "LAPACK/Apple" AND NOT IOS) # https://github.com/opencv/opencv/issues/24660
+      # Get macOS version
+      execute_process(COMMAND sw_vers -productVersion
+                      OUTPUT_VARIABLE MACOS_VERSION
+                      OUTPUT_STRIP_TRAILING_WHITESPACE)
+      # Enable Accelerate New LAPACK if macOS >= 13.3
+      if (MACOS_VERSION VERSION_GREATER "13.3" OR MACOS_VERSION VERSION_EQUAL "13.3")
+        set(LAPACK_TRY_COMPILE_DEF "-DACCELERATE_NEW_LAPACK")
+        add_compile_definitions(ACCELERATE_NEW_LAPACK)
+        add_compile_definitions(ACCELERATE_LAPACK_ILP64)
```

Review comment:
This is a problem... it checks the version of macOS on the machine doing the compiling, it does not check the version of macOS that's actually running the code (at runtime). It's common for a developer to be using a new macOS but wanting his code to still run on an old macOS, and that's why these kinds of checks are inappropriate. Instead, we must check against the '[deployment target](https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html)' chosen by the developer, set in `CMAKE_OSX_DEPLOYMENT_TARGET`. Could we revert this merge, or correct this quickly?
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
I propose to wrap the commented code to version check to not touch it after merge to 5.x, e.g. `#if (OPENCV_VERSION_MAJOR > 4)... #endif` Also please add `default` branch with assert to highlight errors.
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron
**Review Line:** 1974

**Code Changes:**
```diff
+    auto GetBackendName = [] (int backendId) {
+        std::string backend = "Unknown";
+        switch (backendId) {
+            case DNN_BACKEND_DEFAULT:   backend = "DEFAULT"; break;
+            #if CV_VERSION_MAJOR <= 4
+            case DNN_BACKEND_HALIDE:    backend = "HALIDE"; break;
+            #endif
+            case DNN_BACKEND_INFERENCE_ENGINE:  // fallthru
+            case DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019:  // fallthru
+            case DNN_BACKEND_INFERENCE_ENGINE_NGRAPH: backend = "OpenVINO"; break;
+            case DNN_BACKEND_OPENCV:    backend = "OCV"; break;
```

Review comment:
The same version check.
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
Found a typo here. Will fix it tomorrow.
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
Not only shape. Maybe `dumpTensorToString`?
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
Macro `OPENCV_VERSION_MAJOR` is not available in `net_impl.cpp`.
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
You are right. Renamed to `dumpTensorToString`.
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
Please uncomment it.
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
`OPENCV_VERSION_MAJOR` is undefined in `net_impl.cpp`. It is not going to work unless it is defined in 5.x.
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
you just need to include "opencv2/core/version.hpp"
**File:** modules/dnn/src/net_impl.cpp
**Change Type:** modified
**Context:** PR #25582: dnn: better net exporter that works with netron

**Code Changes:**
```diff
@@ -1830,15 +1830,278 @@ string Net::Impl::dump(bool forceAllocation) const
     return out.str();
 }
 
+static void dumpTensorToString(std::ostringstream &out, const Mat &m, const int num_indent_spaces = 4) {
+    string indent_spaces(num_indent_spaces, ' ');
+
+    int type = 1;
+    /* Check TensorProto::DataType from https://github.com/onnx/onnx/blob/main/onnx/onnx.proto */
+    switch (m.type()) {
```

Review comment:
The macro name is actually `CV_VERSION_MAJOR`, it is available already.
**File:** modules/calib3d/src/hal_replacement.hpp
**Change Type:** added
**Context:** PR #25511: HAL for projectPoints() added

**Code Changes:**
```diff
@@ -0,0 +1,188 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
what's the common naming convention for HAL functions? 1) projectPoints 2) project_points projectpoints is the worst one, we need to choose 1) or 2), I believe.
**File:** modules/calib3d/src/hal_replacement.hpp
**Change Type:** added
**Context:** PR #25511: HAL for projectPoints() added

**Code Changes:**
```diff
@@ -0,0 +1,188 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
sometimes it's convenient to store input and/or output points as structure of arrays, not array of structures. I think, HAL function should support both. Can we have: ``` inline int hal_ni_projectpoints32f(const float* X_data, const float* Y_data, const float* Z_data, size_t XYZ_step, size_t src_size, float* x_data, float* y_data, size_t xy_step, const float* rt_data, const float* intrinsics_data, int flags) { return CV_HAL_ERROR_NOT_IMPLEMENTED; } ``` to let user pass separate pointers? Interleaved data is also supported. Also, it's critical to add something like 'flags' (**or maybe think of a structure describing camera model**), because intrinsics_data is too generic. How many and which distortion coefficients are included into `intrinsics_data`. How to make this function more or less future-proof and backward-compatible?
**File:** modules/calib3d/src/hal_replacement.hpp
**Change Type:** added
**Context:** PR #25511: HAL for projectPoints() added

**Code Changes:**
```diff
@@ -0,0 +1,188 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
same comments as above. We need camera model. Also, do we really need 64f flavor? Especially given that `rt_data` and `intrinsics_data` are single-precision.
**File:** modules/calib3d/src/hal_replacement.hpp
**Change Type:** added
**Context:** PR #25511: HAL for projectPoints() added

**Code Changes:**
```diff
@@ -0,0 +1,188 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
1. About separate pointers for separate coordinates: this is a topic for discussion since this is not even supported in OpenCV. * To my mind, we need to support two most popular layouts: `xyzxyzxyz...` and `xxx...yyy...zzz...`, other ones seem too exotic to me * We can do this by providing two strides: step1 between X, Y and Z coordinates of the same point and step2 between consecutive points, I'm implementing this 3. I think we need to pass all the distortion coefficients from OpenCV to HAL in the same order, I'm fixing this. We don't even have to provide the number of actual coefficients passed because the coefficients have no effect if they are zero. 4. If we stick to pinhole camera model (which is what everybody expects from `projectPoints`) I think we may consider it future-proof-enough since the camera model itself does not change. Other camera models (e.g. fisheye) should have different HAL calls, there's no sense to join every `projectPoints` function under the only HAL call.
**File:** modules/calib3d/src/hal_replacement.hpp
**Change Type:** added
**Context:** PR #25511: HAL for projectPoints() added

**Code Changes:**
```diff
@@ -0,0 +1,188 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
OpenCV performs calculations in 64F, probably to have a HAL interface which is fully compatible to our code is a good idea. And yes, it should take all the parameters as 64F, I'm fixing this.
**File:** modules/calib3d/src/hal_replacement.hpp
**Change Type:** added
**Context:** PR #25511: HAL for projectPoints() added

**Code Changes:**
```diff
@@ -0,0 +1,188 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
steps usually have `size_t` type.
**File:** modules/calib3d/src/hal_replacement.hpp
**Change Type:** added
**Context:** PR #25511: HAL for projectPoints() added

**Code Changes:**
```diff
@@ -0,0 +1,188 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+//  By downloading, copying, installing or using the software you agree to this license.
+//  If you do not agree to this license, do not download, install,
+//  copy or use the software.
+//
+//
```

Review comment:
I propose to name it with "Pinhole" word. Fisheye projectPoints uses different formulas.
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D
**Review Line:** 122

**Code Changes:**
```diff
+}
+
+TEST_P(Layer_Test_01D, GeluApprox)
+{
+
+    lp.type = "GeluApprox";
+    lp.name = "GeluApproxLayer";
+    Ptr<GeluApproximationLayer> layer = GeluApproximationLayer::create(lp);
+
+    float value = inp_value * 0.5 * (1.0 + std::tanh(std::sqrt(2.0 / M_PI) * (inp_value + 0.044715 * std::pow(inp_value, 3))));
+    Mat output_ref(output_shape.size(), output_shape.data(), CV_32F, value);
```

Review comment:
Please be accurate following layer factory https://github.com/opencv/opencv/blob/4.x/modules/dnn/src/init.cpp. If we use `LayerParams` with `Net` to create a net with single layer, `lp.type` needs to match one of the keys in the layer factory.
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D

**Code Changes:**
```diff
@@ -12,43 +12,660 @@
 
 namespace opencv_test { namespace {
 
-typedef testing::TestWithParam<tuple<int>> Layer_1d_Test;
-TEST_P(Layer_1d_Test, Scale)
+class Layer_Test_01D: public testing::TestWithParam<tuple<std::vector<int>>>
 {
-    int batch_size = get<0>(GetParam());
-
```

Review comment:
Value is out of float precision
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D
**Review Line:** 475

**Code Changes:**
```diff
+    float out_value = 1/inp_value;
+    Mat output_ref(output_shape.size(), output_shape.data(), CV_32F, out_value);
+    std::vector<Mat> inputs{input};
+
+    TestLayer(layer, inputs, output_ref);
+}
+
+TEST_P(Layer_Test_01D, HardSwish)
+{
+
+    lp.type = "HardSwish";
```

Review comment:
Too much code duplication. Please create a test class with common parts.
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D

**Code Changes:**
```diff
@@ -12,43 +12,660 @@
 
 namespace opencv_test { namespace {
 
-typedef testing::TestWithParam<tuple<int>> Layer_1d_Test;
-TEST_P(Layer_1d_Test, Scale)
+class Layer_Test_01D: public testing::TestWithParam<tuple<std::vector<int>>>
 {
-    int batch_size = get<0>(GetParam());
-
```

Review comment:
what to do with is?
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D

**Code Changes:**
```diff
@@ -12,43 +12,660 @@
 
 namespace opencv_test { namespace {
 
-typedef testing::TestWithParam<tuple<int>> Layer_1d_Test;
-TEST_P(Layer_1d_Test, Scale)
+class Layer_Test_01D: public testing::TestWithParam<tuple<std::vector<int>>>
 {
-    int batch_size = get<0>(GetParam());
-
```

Review comment:
Performing operation on double and cast to float before compare.
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D
**Review Line:** 83

**Code Changes:**
```diff
+
+    lp.type = "Clip";
+    lp.name = "ClipLayer";
+    lp.set("min_value", 0.0);
+    lp.set("max_value", 1.0);
+    Ptr<ReLU6Layer> layer = ReLU6Layer::create(lp);
+
+    Mat output_ref(output_shape.size(), output_shape.data(), CV_32F, 1.0);
+    std::vector<Mat> inputs{input};
+
+    TestLayer(layer, inputs, output_ref);
```

Review comment:
There is no difference between `Layer_Test.ReLU6` and `Layer_Test.Clip`
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D

**Code Changes:**
```diff
@@ -12,43 +12,660 @@
 
 namespace opencv_test { namespace {
 
-typedef testing::TestWithParam<tuple<int>> Layer_1d_Test;
-TEST_P(Layer_1d_Test, Scale)
+class Layer_Test_01D: public testing::TestWithParam<tuple<std::vector<int>>>
 {
-    int batch_size = get<0>(GetParam());
-
```

Review comment:
`LayerParams lp;` can be moved to class fields.
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D

**Code Changes:**
```diff
@@ -12,43 +12,660 @@
 
 namespace opencv_test { namespace {
 
-typedef testing::TestWithParam<tuple<int>> Layer_1d_Test;
-TEST_P(Layer_1d_Test, Scale)
+class Layer_Test_01D: public testing::TestWithParam<tuple<std::vector<int>>>
 {
-    int batch_size = get<0>(GetParam());
-
```

Review comment:
`Layer_Test_1D`
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D

**Code Changes:**
```diff
@@ -12,43 +12,660 @@
 
 namespace opencv_test { namespace {
 
-typedef testing::TestWithParam<tuple<int>> Layer_1d_Test;
-TEST_P(Layer_1d_Test, Scale)
+class Layer_Test_01D: public testing::TestWithParam<tuple<std::vector<int>>>
 {
-    int batch_size = get<0>(GetParam());
-
```

Review comment:
Please keep `1d` in test scope
**File:** modules/dnn/test/test_layers_1d.cpp
**Change Type:** modified
**Context:** PR #25116: Element-wise test for 1D
**Review Line:** 83

**Code Changes:**
```diff
+
+    lp.type = "Clip";
+    lp.name = "ClipLayer";
+    lp.set("min_value", 0.0);
+    lp.set("max_value", 1.0);
+    Ptr<ReLU6Layer> layer = ReLU6Layer::create(lp);
+
+    Mat output_ref(output_shape.size(), output_shape.data(), CV_32F, 1.0);
+    std::vector<Mat> inputs{input};
+
+    TestLayer(layer, inputs, output_ref);
```

Review comment:
I left it explicitly, since it is not obvious that ReLU6 function as clips our frame work. lets leave it