12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include "ceres/parallel_utils.h"
- #include "ceres/internal/config.h"
- #include "glog/logging.h"
- #include "gtest/gtest.h"
- namespace ceres::internal {
- TEST(LinearIndexToUpperTriangularIndexTest, UniqueAndValid) {
- for (int n = 0; n < 100; n++) {
- std::set<std::pair<int, int>> seen_pairs;
- int actual_work_items = (n * (n + 1)) / 2;
- for (int k = 0; k < actual_work_items; k++) {
- int i, j;
- LinearIndexToUpperTriangularIndex(k, n, &i, &j);
- EXPECT_GE(i, 0);
- EXPECT_LT(i, n);
- EXPECT_GE(j, i);
- EXPECT_LT(j, n);
- seen_pairs.insert(std::make_pair(i, j));
- }
- EXPECT_EQ(actual_work_items, seen_pairs.size());
- }
- }
- }
|