Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/draco/dracoenc/src/draco/compression/attributes/point_d_vector_test.cc')
-rw-r--r--extern/draco/dracoenc/src/draco/compression/attributes/point_d_vector_test.cc359
1 files changed, 0 insertions, 359 deletions
diff --git a/extern/draco/dracoenc/src/draco/compression/attributes/point_d_vector_test.cc b/extern/draco/dracoenc/src/draco/compression/attributes/point_d_vector_test.cc
deleted file mode 100644
index bff10392c3d..00000000000
--- a/extern/draco/dracoenc/src/draco/compression/attributes/point_d_vector_test.cc
+++ /dev/null
@@ -1,359 +0,0 @@
-// Copyright 2018 The Draco Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-#include "draco/compression/attributes/point_d_vector.h"
-#include "draco/compression/point_cloud/algorithms/point_cloud_types.h"
-#include "draco/core/draco_test_base.h"
-
-namespace draco {
-
-class PointDVectorTest : public ::testing::Test {
- protected:
- template <typename PT>
- void TestIntegrity() {}
- template <typename PT>
- void TestSize() {
- for (uint32_t n_items = 0; n_items <= 10; ++n_items) {
- for (uint32_t dimensionality = 1; dimensionality <= 10;
- ++dimensionality) {
- draco::PointDVector<PT> var(n_items, dimensionality);
- ASSERT_EQ(n_items, var.size());
- ASSERT_EQ(n_items * dimensionality, var.GetBufferSize());
- }
- }
- }
- template <typename PT>
- void TestContentsContiguous() {
- for (uint32_t n_items = 1; n_items <= 1000; n_items *= 10) {
- for (uint32_t dimensionality = 1; dimensionality < 10;
- dimensionality += 2) {
- for (uint32_t att_dimensionality = 1;
- att_dimensionality <= dimensionality; att_dimensionality += 2) {
- for (uint32_t offset_dimensionality = 0;
- offset_dimensionality < dimensionality - att_dimensionality;
- ++offset_dimensionality) {
- PointDVector<PT> var(n_items, dimensionality);
-
- std::vector<PT> att(n_items * att_dimensionality);
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- att[val * att_dimensionality + att_dim] = val;
- }
- }
- const PT *const attribute_data = att.data();
-
- var.CopyAttribute(att_dimensionality, offset_dimensionality,
- attribute_data);
-
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- ASSERT_EQ(var[val][offset_dimensionality + att_dim], val);
- }
- }
- }
- }
- }
- }
- }
- template <typename PT>
- void TestContentsDiscrete() {
- for (uint32_t n_items = 1; n_items <= 1000; n_items *= 10) {
- for (uint32_t dimensionality = 1; dimensionality < 10;
- dimensionality += 2) {
- for (uint32_t att_dimensionality = 1;
- att_dimensionality <= dimensionality; att_dimensionality += 2) {
- for (uint32_t offset_dimensionality = 0;
- offset_dimensionality < dimensionality - att_dimensionality;
- ++offset_dimensionality) {
- PointDVector<PT> var(n_items, dimensionality);
-
- std::vector<PT> att(n_items * att_dimensionality);
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- att[val * att_dimensionality + att_dim] = val;
- }
- }
- const PT *const attribute_data = att.data();
-
- for (PT item = 0; item < n_items; item += 1) {
- var.CopyAttribute(att_dimensionality, offset_dimensionality, item,
- attribute_data + item * att_dimensionality);
- }
-
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- ASSERT_EQ(var[val][offset_dimensionality + att_dim], val);
- }
- }
- }
- }
- }
- }
- }
-
- template <typename PT>
- void TestContentsCopy() {
- for (uint32_t n_items = 1; n_items <= 1000; n_items *= 10) {
- for (uint32_t dimensionality = 1; dimensionality < 10;
- dimensionality += 2) {
- for (uint32_t att_dimensionality = 1;
- att_dimensionality <= dimensionality; att_dimensionality += 2) {
- for (uint32_t offset_dimensionality = 0;
- offset_dimensionality < dimensionality - att_dimensionality;
- ++offset_dimensionality) {
- PointDVector<PT> var(n_items, dimensionality);
- PointDVector<PT> dest(n_items, dimensionality);
-
- std::vector<PT> att(n_items * att_dimensionality);
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- att[val * att_dimensionality + att_dim] = val;
- }
- }
- const PT *const attribute_data = att.data();
-
- var.CopyAttribute(att_dimensionality, offset_dimensionality,
- attribute_data);
-
- for (PT item = 0; item < n_items; item += 1) {
- dest.CopyItem(var, item, item);
- }
-
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- ASSERT_EQ(var[val][offset_dimensionality + att_dim], val);
- ASSERT_EQ(dest[val][offset_dimensionality + att_dim], val);
- }
- }
- }
- }
- }
- }
- }
- template <typename PT>
- void TestIterator() {
- for (uint32_t n_items = 1; n_items <= 1000; n_items *= 10) {
- for (uint32_t dimensionality = 1; dimensionality < 10;
- dimensionality += 2) {
- for (uint32_t att_dimensionality = 1;
- att_dimensionality <= dimensionality; att_dimensionality += 2) {
- for (uint32_t offset_dimensionality = 0;
- offset_dimensionality < dimensionality - att_dimensionality;
- ++offset_dimensionality) {
- PointDVector<PT> var(n_items, dimensionality);
- PointDVector<PT> dest(n_items, dimensionality);
-
- std::vector<PT> att(n_items * att_dimensionality);
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- att[val * att_dimensionality + att_dim] = val;
- }
- }
- const PT *const attribute_data = att.data();
-
- var.CopyAttribute(att_dimensionality, offset_dimensionality,
- attribute_data);
-
- for (PT item = 0; item < n_items; item += 1) {
- dest.CopyItem(var, item, item);
- }
-
- auto V0 = var.begin();
- auto VE = var.end();
- auto D0 = dest.begin();
- auto DE = dest.end();
-
- while (V0 != VE && D0 != DE) {
- ASSERT_EQ(*D0, *V0); // compare PseudoPointD
- // verify elemental values
- for (auto index = 0; index < dimensionality; index += 1) {
- ASSERT_EQ((*D0)[index], (*V0)[index]);
- }
- ++V0;
- ++D0;
- }
-
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- ASSERT_EQ(var[val][offset_dimensionality + att_dim], val);
- ASSERT_EQ(dest[val][offset_dimensionality + att_dim], val);
- }
- }
- }
- }
- }
- }
- }
- template <typename PT>
- void TestPoint3Iterator() {
- for (uint32_t n_items = 1; n_items <= 1000; n_items *= 10) {
- const uint32_t dimensionality = 3;
- // for (uint32_t dimensionality = 1; dimensionality < 10;
- // dimensionality += 2) {
- const uint32_t att_dimensionality = 3;
- // for (uint32_t att_dimensionality = 1;
- // att_dimensionality <= dimensionality; att_dimensionality += 2) {
- for (uint32_t offset_dimensionality = 0;
- offset_dimensionality < dimensionality - att_dimensionality;
- ++offset_dimensionality) {
- PointDVector<PT> var(n_items, dimensionality);
- PointDVector<PT> dest(n_items, dimensionality);
-
- std::vector<PT> att(n_items * att_dimensionality);
- std::vector<draco::Point3ui> att3(n_items);
- for (PT val = 0; val < n_items; val += 1) {
- att3[val][0] = val;
- att3[val][1] = val;
- att3[val][2] = val;
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- att[val * att_dimensionality + att_dim] = val;
- }
- }
- const PT *const attribute_data = att.data();
-
- var.CopyAttribute(att_dimensionality, offset_dimensionality,
- attribute_data);
-
- for (PT item = 0; item < n_items; item += 1) {
- dest.CopyItem(var, item, item);
- }
-
- auto aV0 = att3.begin();
- auto aVE = att3.end();
- auto V0 = var.begin();
- auto VE = var.end();
- auto D0 = dest.begin();
- auto DE = dest.end();
-
- while (aV0 != aVE && V0 != VE && D0 != DE) {
- ASSERT_EQ(*D0, *V0); // compare PseudoPointD
- // verify elemental values
- for (auto index = 0; index < dimensionality; index += 1) {
- ASSERT_EQ((*D0)[index], (*V0)[index]);
- ASSERT_EQ((*D0)[index], (*aV0)[index]);
- ASSERT_EQ((*aV0)[index], (*V0)[index]);
- }
- ++aV0;
- ++V0;
- ++D0;
- }
-
- for (PT val = 0; val < n_items; val += 1) {
- for (PT att_dim = 0; att_dim < att_dimensionality; att_dim += 1) {
- ASSERT_EQ(var[val][offset_dimensionality + att_dim], val);
- ASSERT_EQ(dest[val][offset_dimensionality + att_dim], val);
- }
- }
- }
- }
- }
-
- void TestPseudoPointDSwap() {
- draco::Point3ui val = {0, 1, 2};
- draco::Point3ui dest = {10, 11, 12};
- draco::PseudoPointD<uint32_t> val_src1(&val[0], 3);
- draco::PseudoPointD<uint32_t> dest_src1(&dest[0], 3);
-
- ASSERT_EQ(val_src1[0], 0);
- ASSERT_EQ(val_src1[1], 1);
- ASSERT_EQ(val_src1[2], 2);
- ASSERT_EQ(dest_src1[0], 10);
- ASSERT_EQ(dest_src1[1], 11);
- ASSERT_EQ(dest_src1[2], 12);
-
- ASSERT_NE(val_src1, dest_src1);
-
- swap(val_src1, dest_src1);
-
- ASSERT_EQ(dest_src1[0], 0);
- ASSERT_EQ(dest_src1[1], 1);
- ASSERT_EQ(dest_src1[2], 2);
- ASSERT_EQ(val_src1[0], 10);
- ASSERT_EQ(val_src1[1], 11);
- ASSERT_EQ(val_src1[2], 12);
-
- ASSERT_NE(val_src1, dest_src1);
- }
- void TestPseudoPointDEquality() {
- draco::Point3ui val = {0, 1, 2};
- draco::Point3ui dest = {0, 1, 2};
- draco::PseudoPointD<uint32_t> val_src1(&val[0], 3);
- draco::PseudoPointD<uint32_t> val_src2(&val[0], 3);
- draco::PseudoPointD<uint32_t> dest_src1(&dest[0], 3);
- draco::PseudoPointD<uint32_t> dest_src2(&dest[0], 3);
-
- ASSERT_EQ(val_src1, val_src1);
- ASSERT_EQ(val_src1, val_src2);
- ASSERT_EQ(dest_src1, val_src1);
- ASSERT_EQ(dest_src1, val_src2);
- ASSERT_EQ(val_src2, val_src1);
- ASSERT_EQ(val_src2, val_src2);
- ASSERT_EQ(dest_src2, val_src1);
- ASSERT_EQ(dest_src2, val_src2);
-
- for (auto i = 0; i < 3; i++) {
- ASSERT_EQ(val_src1[i], val_src1[i]);
- ASSERT_EQ(val_src1[i], val_src2[i]);
- ASSERT_EQ(dest_src1[i], val_src1[i]);
- ASSERT_EQ(dest_src1[i], val_src2[i]);
- ASSERT_EQ(val_src2[i], val_src1[i]);
- ASSERT_EQ(val_src2[i], val_src2[i]);
- ASSERT_EQ(dest_src2[i], val_src1[i]);
- ASSERT_EQ(dest_src2[i], val_src2[i]);
- }
- }
- void TestPseudoPointDInequality() {
- draco::Point3ui val = {0, 1, 2};
- draco::Point3ui dest = {1, 2, 3};
- draco::PseudoPointD<uint32_t> val_src1(&val[0], 3);
- draco::PseudoPointD<uint32_t> val_src2(&val[0], 3);
- draco::PseudoPointD<uint32_t> dest_src1(&dest[0], 3);
- draco::PseudoPointD<uint32_t> dest_src2(&dest[0], 3);
-
- ASSERT_EQ(val_src1, val_src1);
- ASSERT_EQ(val_src1, val_src2);
- ASSERT_NE(dest_src1, val_src1);
- ASSERT_NE(dest_src1, val_src2);
- ASSERT_EQ(val_src2, val_src1);
- ASSERT_EQ(val_src2, val_src2);
- ASSERT_NE(dest_src2, val_src1);
- ASSERT_NE(dest_src2, val_src2);
-
- for (auto i = 0; i < 3; i++) {
- ASSERT_EQ(val_src1[i], val_src1[i]);
- ASSERT_EQ(val_src1[i], val_src2[i]);
- ASSERT_NE(dest_src1[i], val_src1[i]);
- ASSERT_NE(dest_src1[i], val_src2[i]);
- ASSERT_EQ(val_src2[i], val_src1[i]);
- ASSERT_EQ(val_src2[i], val_src2[i]);
- ASSERT_NE(dest_src2[i], val_src1[i]);
- ASSERT_NE(dest_src2[i], val_src2[i]);
- }
- }
-};
-
-TEST_F(PointDVectorTest, VectorTest) {
- TestSize<uint32_t>();
- TestContentsDiscrete<uint32_t>();
- TestContentsContiguous<uint32_t>();
- TestContentsCopy<uint32_t>();
- TestIterator<uint32_t>();
- TestPoint3Iterator<uint32_t>();
-}
-TEST_F(PointDVectorTest, PseudoPointDTest) {
- TestPseudoPointDSwap();
- TestPseudoPointDEquality();
- TestPseudoPointDInequality();
-}
-} // namespace draco