nareshmlx/opencv-pr huggingface dataset:
**File:** modules/dnn/src/layers/nonzero_layer.cpp
**Change Type:** added
**Context:** PR #27701: Added nonzero layer to new DNN engine
**Review Line:** 197

**Code Changes:**
```diff
+        MatShape outShape = shape(rank, (int)nnz);
+        auto kind = out_arr.kind();
+        std::vector<Mat>* out_mats = nullptr;
+        std::vector<UMat>* out_umats = nullptr;
+        Mat Y;
+        if (kind == _InputArray::STD_VECTOR_MAT) {
+            out_mats = &out_arr.getMatVecRef();
+            out_mats->resize(1);
+            out_mats->at(0).fit(outShape, CV_64S);
+            Y = out_mats->at(0);
+        } else {
```

Review comment:
``` std::vector<Mat>* out_mats = nullptr; std::vector<UMat>* out_umats = nullptr; Mat Y; if (kind == _InputArray::STD_VECTOR_MAT) { out_mats = &out_arr.getMatVecRef(); out_mats->resize(1); out_mats->at(0).fit(outShape, CV_64S); Y = out_mats->at(0); } else { CV_Assert(kind == _InputArray::STD_VECTOR_UMAT); out_umats = &out_arr.getUMatVecRef(); out_umats->resize(1); out_umats->at(0).fit(outShape, CV_64S); Y = Mat(outShape, CV_64S); } int64* y = Y.ptr<int64>(); switch (depth) { .... } if (kind == _InputArray::STD_VECTOR_UMAT) { Y.copyTo(out_umats->at(0)); } ```
**File:** modules/dnn/src/layers/nonzero_layer.cpp
**Change Type:** added
**Context:** PR #27701: Added nonzero layer to new DNN engine

**Code Changes:**
```diff
@@ -0,0 +1,243 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the
+// top-level directory of this distribution and at http://opencv.org/license.html.
+
+#include "../precomp.hpp"
+#include "layers_common.hpp"
+#include <opencv2/dnn/shape_utils.hpp>
+#include <cstdint>
+#include <array>
```

Review comment:
`std::fill`?
**File:** modules/dnn/src/layers/nonzero_layer.cpp
**Change Type:** added
**Context:** PR #27701: Added nonzero layer to new DNN engine

**Code Changes:**
```diff
@@ -0,0 +1,243 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the
+// top-level directory of this distribution and at http://opencv.org/license.html.
+
+#include "../precomp.hpp"
+#include "layers_common.hpp"
+#include <opencv2/dnn/shape_utils.hpp>
+#include <cstdint>
+#include <array>
```

Review comment:
same thing, reduce the number of branches
**File:** modules/dnn/src/layers/is_nan_layer.cpp
**Change Type:** added
**Context:** PR #27661: Added IsNan layer to new DNN engine

**Code Changes:**
```diff
@@ -0,0 +1,91 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+// Copyright (C) 2025, BigVision LLC, all rights reserved.
+// Third party copyrights are property of their respective owners.
+
+#include "../precomp.hpp"
+#include "layers_common.hpp"
+#include "opencv2/core/fast_math.hpp"  // for cvIsNaN
```

Review comment:
please, make this loop parallel
**File:** modules/dnn/src/layers/is_nan_layer.cpp
**Change Type:** added
**Context:** PR #27661: Added IsNan layer to new DNN engine
**Review Line:** 80

**Code Changes:**
```diff
+        const int depth = CV_MAT_DEPTH(X.type());
+        const size_t total = X.total();
+        uchar* dst = Y.ptr<uchar>();
+
+        switch (depth) {
+            case CV_32F: computeIsNaNMask<float>(X.ptr<float>(), dst, total);    break;
+            case CV_64F: computeIsNaNMask<double>(X.ptr<double>(), dst, total);   break;
+            case CV_16F: computeIsNaNMask<hfloat, float>(X.ptr<hfloat>(), dst, total); break;
+            case CV_16BF: computeIsNaNMask<bfloat, float>(X.ptr<bfloat>(), dst, total); break;
+            default: CV_Error_(Error::StsError, ("IsNaN: Unsupported type depth=%d", depth));
+        }
```

Review comment:
hfloat and bfloat should be supported as well
**File:** modules/imgcodecs/perf/perf_decode_encode.cpp
**Change Type:** modified
**Context:** PR #27605: Performance tests for writing and reading animations

**Code Changes:**
```diff
@@ -7,10 +7,82 @@
 namespace opencv_test
 {
 
-#ifdef HAVE_PNG
-
 using namespace perf;
 
+static Animation makeCirclesAnimation(Size size = Size(320, 240), int type = CV_8UC4, int nbits = 8, int frameCount = 40)
+{
```

Review comment:
Img is local variable inside for loop body and re-created on each loop iteration. No need to call clone for it.
**File:** modules/imgcodecs/perf/perf_decode_encode.cpp
**Change Type:** modified
**Context:** PR #27605: Performance tests for writing and reading animations

**Code Changes:**
```diff
@@ -7,10 +7,82 @@
 namespace opencv_test
 {
 
-#ifdef HAVE_PNG
-
 using namespace perf;
 
+static Animation makeCirclesAnimation(Size size = Size(320, 240), int type = CV_8UC4, int nbits = 8, int frameCount = 40)
+{
```

Review comment:
As soon as it's perf test, I propose to exclude file i/o from scope and use in-memory encoding with imencodeanimation
**File:** modules/3d/include/opencv2/3d/mst.hpp
**Change Type:** added
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -0,0 +1,65 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#ifndef OPENCV_3D_MST_HPP
+#define OPENCV_3D_MST_HPP
+
+#include <vector>
+
```

Review comment:
remove _DETAIL
**File:** modules/3d/include/opencv2/3d/mst.hpp
**Change Type:** added
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -0,0 +1,65 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#ifndef OPENCV_3D_MST_HPP
+#define OPENCV_3D_MST_HPP
+
+#include <vector>
+
```

Review comment:
Please use doxygen notation for the documentation.
**File:** modules/3d/include/opencv2/3d/mst.hpp
**Change Type:** added
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -0,0 +1,65 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#ifndef OPENCV_3D_MST_HPP
+#define OPENCV_3D_MST_HPP
+
+#include <vector>
+
```

Review comment:
The graph may have 2 or more isolated pieces. I propose the following: 1. return status, e.g. bool 2. add `CV_OUT std::vector<MSTEdge>&` parameter for result. Also the solution will be more friendly solution for Python and Java bindings.
**File:** modules/3d/src/mst.cpp
**Change Type:** added
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization
**Review Line:** 148

**Code Changes:**
```diff
+    resultingEdges.clear();
+    if (numNodes <= 0 || inputEdges.empty() || root < 0 || root >= numNodes)
+        return false;
+
+    bool result = false;
+    switch (algorithm)
+    {
+        case MST_PRIM:
+            result = buildMSTPrim(numNodes, inputEdges, resultingEdges, root);
+            break;
+        case MST_KRUSKAL:
```

Review comment:
Please use `CV_TRACE_FUNCTION();` as the first statement of exported function.
**File:** modules/3d/src/mst.cpp
**Change Type:** added
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -0,0 +1,163 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#include "precomp.hpp"
+#include <opencv2/3d/mst.hpp>
+#include <queue>
+#include <tuple>
+
```

Review comment:
It's definitely invalid user input. It should not be just ignored. We use CV_Assert / CV_Error and throw exception with it.
**File:** modules/3d/src/mst.cpp
**Change Type:** added
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -0,0 +1,163 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#include "precomp.hpp"
+#include <opencv2/3d/mst.hpp>
+#include <queue>
+#include <tuple>
+
```

Review comment:
It's the only place where false is returned, besides the obvious one. What happens if the MST cannot be built, e.g. the graph consists of 2 split sub-graphs? I would say, it should return false too.
**File:** modules/3d/src/rgbd/pose_graph.cpp
**Change Type:** modified
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -3,8 +3,9 @@
 // of this distribution and at http://opencv.org/license.html
 
 #include "../precomp.hpp"
-#include "sparse_block_matrix.hpp"
 #include "opencv2/3d/detail/optimizer.hpp"
+#include <opencv2/3d/mst.hpp>
+#include "sparse_block_matrix.hpp"
 
 namespace cv
```

Review comment:
Looks like some data specific parameter. I propose to add lambda parameter with default value 0.485 to `initializePosesWithMST` to have opportunity to change it without OpenCV modification and rebuild. The value may be promoted to the weight calculator as parameter too.
**File:** modules/3d/test/test_mst.cpp
**Change Type:** added
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization
**Review Line:** 271

**Code Changes:**
```diff
+        << "Prim's MST size incorrect for large graph: expected "
+        << (numNodes - 1) << " edges, got " << primMST.size() << ".";
+    EXPECT_EQ(kruskalMST.size(), static_cast<size_t>(numNodes - 1))
+        << "Kruskal's MST size incorrect for large graph: expected "
+        << (numNodes - 1) << " edges, got " << kruskalMST.size() << ".";
+}
+
+typedef tuple<int /*numNodes*/,
+              std::vector<MSTEdge>/*edges*/
+             > MSTNegativeParamType;
+typedef testing::TestWithParam<MSTNegativeParamType> MSTNegative;
```

Review comment:
Please add a couple of tests with negative scenarios: - split graph of 2-3 sub-graphs - one isolated node in the graph
**File:** modules/3d/test/test_pose_graph.cpp
**Change Type:** modified
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -155,6 +155,119 @@ TEST(PoseGraph, sphereG2O)
     }
 }
 
+TEST(PoseGraphMST, optimization)
+{
+    applyTestTag(CV_TEST_TAG_LONG, CV_TEST_TAG_DEBUG_VERYLONG);
+
+    // The dataset was taken from here: https://lucacarlone.mit.edu/datasets/
+    // Connected paper:
```

Review comment:
We have saveMesh / savePointCloud for obj and ply i/o. Please use it: https://docs.opencv.org/5.x/da/d35/group____3d.html#gad565f2878b3d8c3f959ae7967a520bb2
**File:** modules/3d/test/test_pose_graph.cpp
**Change Type:** modified
**Context:** PR #27423: Feat #25150: Pose Graph MST initialization

**Code Changes:**
```diff
@@ -155,6 +155,119 @@ TEST(PoseGraph, sphereG2O)
     }
 }
 
+TEST(PoseGraphMST, optimization)
+{
+    applyTestTag(CV_TEST_TAG_LONG, CV_TEST_TAG_DEBUG_VERYLONG);
+
+    // The dataset was taken from here: https://lucacarlone.mit.edu/datasets/
+    // Connected paper:
```

Review comment:
Looks like this code is not needed any more, as you added implementation with `saveMesh` below.
**File:** modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support
**Review Line:** 146

**Code Changes:**
```diff
@@ -146,6 +146,18 @@ class CV_EXPORTS_W_SIMPLE CharucoBoard : public Board {
     CV_WRAP CharucoBoard(const Size& size, float squareLength, float markerLength,
                          const Dictionary &dictionary, InputArray ids = noArray());
 
+    /** @brief set legacy chessboard pattern.
+     *
+     * Legacy setting creates chessboard patterns starting with a white box in the upper left corner
```

Review comment:
I propose to not touch the constructor, but add `setLegacyFlag()` method. It's easier to remove legacy method in future than break compatibility for all code that uses Charuco.
**File:** modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support
**Review Line:** 146

**Code Changes:**
```diff
@@ -146,6 +146,18 @@ class CV_EXPORTS_W_SIMPLE CharucoBoard : public Board {
     CV_WRAP CharucoBoard(const Size& size, float squareLength, float markerLength,
                          const Dictionary &dictionary, InputArray ids = noArray());
 
+    /** @brief set legacy chessboard pattern.
+     *
+     * Legacy setting creates chessboard patterns starting with a white box in the upper left corner
```

Review comment:
I believe we should minimize or do not bring code with legacy/buggy behavior from `opencv_contrib` into the main repository (as we don't really want to support/maintain that). If `setLegacyFlag()` doesn't work, then I propose to create `CharucoBoardLegacy` or `cv::aruco::legacy::CharucoBoard` in `opencv_contrib/modules/aruco` for this purpose. There is inheritance with `Board` base class and Pimpl design, but some trick is required to expose `Board::Impl` to `opencv_contrib` (we don't need that in public OpenCV headers).
**File:** modules/objdetect/src/aruco/aruco_board.cpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support

**Code Changes:**
```diff
@@ -229,7 +229,8 @@ struct GridBoardImpl : public Board::Impl {
         Board::Impl(_dictionary),
         size(_size),
         markerLength(_markerLength),
-        markerSeparation(_markerSeparation)
+        markerSeparation(_markerSeparation),
+        legacyPattern(false)
     {
         CV_Assert(size.width*size.height > 0 && markerLength > 0 && markerSeparation > 0);
     }
```

Review comment:
actually, this is the only important bit. Generating board images in the legacy format is nice for consistency with the flag, but not really desirable. Could we introduce a function that shuffles `impl->objPoints` from new to old layout? This would fix detection of existing boards which is the main issue here.
**File:** modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support
**Review Line:** 146

**Code Changes:**
```diff
@@ -146,6 +146,18 @@ class CV_EXPORTS_W_SIMPLE CharucoBoard : public Board {
     CV_WRAP CharucoBoard(const Size& size, float squareLength, float markerLength,
                          const Dictionary &dictionary, InputArray ids = noArray());
 
+    /** @brief set legacy chessboard pattern.
+     *
+     * Legacy setting creates chessboard patterns starting with a white box in the upper left corner
```

Review comment:
> Deciding otherwise will inevitably lead to systems version upgrades silently failing without an evident explanation. one way or another, mentioning this change in the release notes would have been nice..
**File:** modules/objdetect/src/aruco/aruco_board.cpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support

**Code Changes:**
```diff
@@ -229,7 +229,8 @@ struct GridBoardImpl : public Board::Impl {
         Board::Impl(_dictionary),
         size(_size),
         markerLength(_markerLength),
-        markerSeparation(_markerSeparation)
+        markerSeparation(_markerSeparation),
+        legacyPattern(false)
     {
         CV_Assert(size.width*size.height > 0 && markerLength > 0 && markerSeparation > 0);
     }
```

Review comment:
```impl->objPoints``` is also used further down in the constructor in ```calcNearestMarkerCorners()```. So reshuffling also needs to include to clear whatever is going on there and execute it again. This is what I meant before with clearing and recreating the board again. Sure it's possible to do, but not really elegant imho. But I will check and make a proposal.
**File:** modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support
**Review Line:** 146

**Code Changes:**
```diff
@@ -146,6 +146,18 @@ class CV_EXPORTS_W_SIMPLE CharucoBoard : public Board {
     CV_WRAP CharucoBoard(const Size& size, float squareLength, float markerLength,
                          const Dictionary &dictionary, InputArray ids = noArray());
 
+    /** @brief set legacy chessboard pattern.
+     *
+     * Legacy setting creates chessboard patterns starting with a white box in the upper left corner
```

Review comment:
> I believe we should minimize or do not bring code with legacy/buggy behavior from `opencv_contrib` into the main repository (as we don't really want to support/maintain that). > > If `setLegacyFlag()` doesn't work, then I propose to create `CharucoBoardLegacy` or `cv::aruco::legacy::CharucoBoard` in `opencv_contrib/modules/aruco` for this purpose. There is inheritance with `Board` base class and Pimpl design, but some trick is required to expose `Board::Impl` to `opencv_contrib` (we don't need that in public OpenCV headers). I don't mean that `setLegacyFlag()` does not work - just that it involves a bit more code changes and is not as elegant imho. But if this is the preferred option over adding a flag to the constructor, then I'll try to make a proposal. I'd like to avoid maintaining something in opencv_contrib in parallel. The old behavior is not "buggy", it's just a slightly different board design, a variant. I still don't get why the board design had to change in the first place. There is no advantage, no reuse of existing code or something like that, but that's a different discussion. Now there are two versions out in the world. Maybe "legacy" is the wrong word for it. Maybe calling it "even"/"odd", or "A"/"B" order. Or "WBF" (white-box-first). Does not matter much as long as it works. I'll make a proposal for a setLegacyFlag() implementation.
**File:** modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support
**Review Line:** 146

**Code Changes:**
```diff
@@ -146,6 +146,18 @@ class CV_EXPORTS_W_SIMPLE CharucoBoard : public Board {
     CV_WRAP CharucoBoard(const Size& size, float squareLength, float markerLength,
                          const Dictionary &dictionary, InputArray ids = noArray());
 
+    /** @brief set legacy chessboard pattern.
+     *
+     * Legacy setting creates chessboard patterns starting with a white box in the upper left corner
```

Review comment:
The insistence on the black-box-first design is admittedly baffling. I've had a custom WBF aruco slide made for microscopy calibration with chrome deposition on glass that cost hundreds of dollars, and now I can't upgrade opencv beyond 4.5.5 without my calibration code breaking completely.
**File:** modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support
**Review Line:** 146

**Code Changes:**
```diff
@@ -146,6 +146,18 @@ class CV_EXPORTS_W_SIMPLE CharucoBoard : public Board {
     CV_WRAP CharucoBoard(const Size& size, float squareLength, float markerLength,
                          const Dictionary &dictionary, InputArray ids = noArray());
 
+    /** @brief set legacy chessboard pattern.
+     *
+     * Legacy setting creates chessboard patterns starting with a white box in the upper left corner
```

Review comment:
probably it makes sense to dub the BBF order (i.e. 4.6, 4.7 behavior) "legacy" and hence set the flag to false by default. I doubt that with that many WBF patterns in the wild and WBF effectively being the default from 4.8 on BBF will be anything but legacy.
**File:** modules/objdetect/include/opencv2/objdetect/aruco_board.hpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support
**Review Line:** 146

**Code Changes:**
```diff
@@ -146,6 +146,18 @@ class CV_EXPORTS_W_SIMPLE CharucoBoard : public Board {
     CV_WRAP CharucoBoard(const Size& size, float squareLength, float markerLength,
                          const Dictionary &dictionary, InputArray ids = noArray());
 
+    /** @brief set legacy chessboard pattern.
+     *
+     * Legacy setting creates chessboard patterns starting with a white box in the upper left corner
```

Review comment:
Resolved: constructor is not being touched. Different board layouts are supported by `setBBF(bool)` method.
**File:** modules/objdetect/src/aruco/aruco_board.cpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support

**Code Changes:**
```diff
@@ -229,7 +229,8 @@ struct GridBoardImpl : public Board::Impl {
         Board::Impl(_dictionary),
         size(_size),
         markerLength(_markerLength),
-        markerSeparation(_markerSeparation)
+        markerSeparation(_markerSeparation),
+        legacyPattern(false)
     {
         CV_Assert(size.width*size.height > 0 && markerLength > 0 && markerSeparation > 0);
     }
```

Review comment:
Added `setBBF()` method to switch between layouts without modifying the constructor.
**File:** modules/objdetect/src/aruco/aruco_board.cpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support

**Code Changes:**
```diff
@@ -229,7 +229,8 @@ struct GridBoardImpl : public Board::Impl {
         Board::Impl(_dictionary),
         size(_size),
         markerLength(_markerLength),
-        markerSeparation(_markerSeparation)
+        markerSeparation(_markerSeparation),
+        legacyPattern(false)
     {
         CV_Assert(size.width*size.height > 0 && markerLength > 0 && markerSeparation > 0);
     }
```

Review comment:
Default value is not initialized in constructor (must be set to `false`).
**File:** modules/objdetect/test/test_charucodetection.cpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support

**Code Changes:**
```diff
@@ -12,15 +12,19 @@ namespace opencv_test { namespace {
  * @brief Get a synthetic image of Chessboard in perspective
  */
 static Mat projectChessboard(int squaresX, int squaresY, float squareSize, Size imageSize,
-                             Mat cameraMatrix, Mat rvec, Mat tvec) {
+                             Mat cameraMatrix, Mat rvec, Mat tvec, bool legacyPattern) {
 
     Mat img(imageSize, CV_8UC1, Scalar::all(255));
     Mat distCoeffs(5, 1, CV_64FC1, Scalar::all(0));
 
```

Review comment:
Avoid `for loops` over parameters in test bodies. In case of failure there would be unclear message without information about used parameters. Also due to `for loops` it is hard to debug/reproduce the problem. It is better to add parameter and/or separate test case.
**File:** modules/objdetect/test/test_charucodetection.cpp
**Change Type:** modified
**Context:** PR #23153: ChArUco pre460 pattern support

**Code Changes:**
```diff
@@ -12,15 +12,19 @@ namespace opencv_test { namespace {
  * @brief Get a synthetic image of Chessboard in perspective
  */
 static Mat projectChessboard(int squaresX, int squaresY, float squareSize, Size imageSize,
-                             Mat cameraMatrix, Mat rvec, Mat tvec) {
+                             Mat cameraMatrix, Mat rvec, Mat tvec, bool legacyPattern) {
 
     Mat img(imageSize, CV_8UC1, Scalar::all(255));
     Mat distCoeffs(5, 1, CV_64FC1, Scalar::all(0));
 
```

Review comment:
I see the point, and I suppose the point is equaly valid for the already existing `for loops` over `distance`/`yaw`/`pitch` to which I only extended a `BFF` loop. To get a real improvement here, all the `for loops` should be unraveled. I can try to make a proposal. But I must say the intention of the pull request is to add compatibility, fix a specific issue. It is not to re-work all of the Aruco/Charuco test cases. `For loops` are all over the place in the aruco module to cover different poses and parameters. For the sake of making progress efficiently: Wouldn't it make more sense to create another PR with the goal of test cases clean-up?