summaryrefslogtreecommitdiff
path: root/src/Bitmap_cubical_complex
diff options
context:
space:
mode:
authorpdlotko <pdlotko@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-01-13 08:41:26 +0000
committerpdlotko <pdlotko@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-01-13 08:41:26 +0000
commit12226486b5bf3f1d867f46aed5dc6d2c9727a03c (patch)
treebaec06935711663be834d0a1260b710c518d55da /src/Bitmap_cubical_complex
parent0181c1f8c6122c50f991abea1ec8c4ec6bf392b4 (diff)
Added tests for periodic boubnadry oconditions bitmap.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/bitmap@962 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 49f059cdf9e0c8e20ff727564da13be14ebc2c04
Diffstat (limited to 'src/Bitmap_cubical_complex')
-rw-r--r--src/Bitmap_cubical_complex/test/Bitmap_test.cpp270
1 files changed, 259 insertions, 11 deletions
diff --git a/src/Bitmap_cubical_complex/test/Bitmap_test.cpp b/src/Bitmap_cubical_complex/test/Bitmap_test.cpp
index 183b856a..4235761f 100644
--- a/src/Bitmap_cubical_complex/test/Bitmap_test.cpp
+++ b/src/Bitmap_cubical_complex/test/Bitmap_test.cpp
@@ -35,7 +35,7 @@ BOOST_AUTO_TEST_CASE(check_dimension) {
dimensions.push_back(3);
dimensions.push_back(3);
- Bitmap_cubical_complex<double> increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> > increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
BOOST_CHECK(increasing.dimension() == 2);
}
@@ -88,18 +88,18 @@ BOOST_AUTO_TEST_CASE(topDimensionalCellsIterator_test) {
dimensions.push_back(3);
dimensions.push_back(3);
- Bitmap_cubical_complex<double> increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
- Bitmap_cubical_complex<double> hole(dimensions, oneDimensionalCycle);
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> > increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> > hole(dimensions, oneDimensionalCycle);
int i = 0;
- for (Bitmap_cubical_complex<double>::Top_dimensional_cells_iterator
+ for (Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> >::Top_dimensional_cells_iterator
it = increasing.top_dimensional_cells_begin(); it != increasing.top_dimensional_cells_end(); ++it) {
BOOST_CHECK(*it == expectedFiltrationValues2[i]);
++i;
}
i = 0;
- for (Bitmap_cubical_complex<double>::Top_dimensional_cells_iterator
+ for (Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> >::Top_dimensional_cells_iterator
it = hole.top_dimensional_cells_begin(); it != hole.top_dimensional_cells_end(); ++it) {
BOOST_CHECK(*it == expectedFiltrationValues1[i]);
++i;
@@ -309,7 +309,7 @@ BOOST_AUTO_TEST_CASE(compute_boundary_test_1) {
dimensions.push_back(3);
dimensions.push_back(3);
- Bitmap_cubical_complex<double> increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> > increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
for (size_t i = 0; i != increasing.size_of_bitmap(); ++i) {
std::vector< size_t > bd = increasing.get_boundary_of_a_cell(i);
for (size_t j = 0; j != bd.size(); ++j) {
@@ -334,7 +334,7 @@ BOOST_AUTO_TEST_CASE(compute_boundary_test_2) {
dimensions.push_back(3);
dimensions.push_back(3);
- Bitmap_cubical_complex<double> increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> > increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
std::vector<double> coboundaryElements;
@@ -449,7 +449,7 @@ BOOST_AUTO_TEST_CASE(compute_boundary_test_3) {
dimensions.push_back(3);
dimensions.push_back(3);
- Bitmap_cubical_complex<double> increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> > increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
std::vector<unsigned> dim;
dim.push_back(0);
@@ -523,7 +523,7 @@ BOOST_AUTO_TEST_CASE(Filtration_simplex_iterator_test) {
dimensions.push_back(3);
dimensions.push_back(3);
- Bitmap_cubical_complex<double> increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> > increasing(dimensions, increasingFiltrationOfTopDimensionalCells);
std::vector< unsigned > dim;
dim.push_back(0);
@@ -628,11 +628,259 @@ BOOST_AUTO_TEST_CASE(Filtration_simplex_iterator_test) {
fil.push_back(9);
- Bitmap_cubical_complex<double>::Filtration_simplex_range range = increasing.filtration_simplex_range();
+ Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> >::Filtration_simplex_range range = increasing.filtration_simplex_range();
size_t position = 0;
- for (Bitmap_cubical_complex<double>::Filtration_simplex_iterator it = range.begin(); it != range.end(); ++it) {
+ for (Bitmap_cubical_complex< Bitmap_cubical_complex_base<double> >::Filtration_simplex_iterator it = range.begin(); it != range.end(); ++it) {
BOOST_CHECK(increasing.dimension(*it) == dim[position]);
BOOST_CHECK(increasing.filtration(*it) == fil[position]);
++position;
}
}
+
+
+
+BOOST_AUTO_TEST_CASE(boudary_operator_2d_bitmap_with_periodic_bcond) {
+ std::vector< double > filtration;
+ filtration.push_back(0);
+ filtration.push_back(0);
+ filtration.push_back(0);
+ filtration.push_back(0);
+
+
+ std::vector<unsigned> dimensions;
+ dimensions.push_back(2);
+ dimensions.push_back(2);
+
+ std::vector<bool> periodic_directions;
+ periodic_directions.push_back(true);
+ periodic_directions.push_back(true);
+
+ Bitmap_cubical_complex< Bitmap_cubical_complex_periodic_boundary_conditions_base<double> > cmplx(dimensions, filtration,periodic_directions);
+ BOOST_CHECK(cmplx.dimension() == 2);
+
+
+ std::vector<double> boundary0;
+ std::vector<double> boundary1;
+ boundary1.push_back(0);
+ boundary1.push_back(2);
+ std::vector<double> boundary2;
+ std::vector<double> boundary3;
+ boundary3.push_back(2);
+ boundary3.push_back(0);
+ std::vector<double> boundary4;
+ boundary4.push_back(0);
+ boundary4.push_back(8);
+ std::vector<double> boundary5;
+ boundary5.push_back(1);
+ boundary5.push_back(9);
+ boundary5.push_back(4);
+ boundary5.push_back(6);
+ std::vector<double> boundary6;
+ boundary6.push_back(2);
+ boundary6.push_back(10);
+ std::vector<double> boundary7;
+ boundary7.push_back(3);
+ boundary7.push_back(11);
+ boundary7.push_back(6);
+ boundary7.push_back(4);
+ std::vector<double> boundary8;
+ std::vector<double> boundary9;
+ boundary9.push_back(8);
+ boundary9.push_back(10);
+ std::vector<double> boundary10;
+ std::vector<double> boundary11;
+ boundary11.push_back(10);
+ boundary11.push_back(8);
+ std::vector<double> boundary12;
+ boundary12.push_back(8);
+ boundary12.push_back(0);
+ std::vector<double> boundary13;
+ boundary13.push_back(9);
+ boundary13.push_back(1);
+ boundary13.push_back(12);
+ boundary13.push_back(14);
+ std::vector<double> boundary14;
+ boundary14.push_back(10);
+ boundary14.push_back(2);
+ std::vector<double> boundary15;
+ boundary15.push_back(11);
+ boundary15.push_back(3);
+ boundary15.push_back(14);
+ boundary15.push_back(12);
+
+ std::vector< std::vector<double> > boundaries;
+ boundaries.push_back( boundary0 );
+ boundaries.push_back( boundary1 );
+ boundaries.push_back( boundary2 );
+ boundaries.push_back( boundary3 );
+ boundaries.push_back( boundary4 );
+ boundaries.push_back( boundary5 );
+ boundaries.push_back( boundary6 );
+ boundaries.push_back( boundary7 );
+ boundaries.push_back( boundary8 );
+ boundaries.push_back( boundary9 );
+ boundaries.push_back( boundary10 );
+ boundaries.push_back( boundary11 );
+ boundaries.push_back( boundary12 );
+ boundaries.push_back( boundary13 );
+ boundaries.push_back( boundary14 );
+ boundaries.push_back( boundary15 );
+
+ for (size_t i = 0; i != cmplx.size_of_bitmap(); ++i) {
+ std::vector< size_t > bd = cmplx.get_boundary_of_a_cell(i);
+ for (size_t j = 0; j != bd.size(); ++j) {
+ BOOST_CHECK(boundaries[i][j] == bd[j]);
+ }
+ }
+}
+
+
+
+
+
+
+BOOST_AUTO_TEST_CASE(coboudary_operator_2d_bitmap_with_periodic_bcond) {
+ std::vector< double > filtration;
+ filtration.push_back(0);
+ filtration.push_back(0);
+ filtration.push_back(0);
+ filtration.push_back(0);
+
+
+ std::vector<unsigned> dimensions;
+ dimensions.push_back(2);
+ dimensions.push_back(2);
+
+ std::vector<bool> periodic_directions;
+ periodic_directions.push_back(true);
+ periodic_directions.push_back(true);
+
+ Bitmap_cubical_complex< Bitmap_cubical_complex_periodic_boundary_conditions_base<double> > cmplx(dimensions, filtration,periodic_directions);
+ BOOST_CHECK(cmplx.dimension() == 2);
+
+
+ std::vector<double> coboundary0;
+ coboundary0.push_back(4);
+ coboundary0.push_back(12);
+ coboundary0.push_back(1);
+ coboundary0.push_back(3);
+ std::vector<double> coboundary1;
+ coboundary1.push_back(5);
+ coboundary1.push_back(13);
+ std::vector<double> coboundary2;
+ coboundary2.push_back(6);
+ coboundary2.push_back(14);
+ coboundary2.push_back(1);
+ coboundary2.push_back(3);
+ std::vector<double> coboundary3;
+ coboundary3.push_back(7);
+ coboundary3.push_back(15);
+ std::vector<double> coboundary4;
+ coboundary4.push_back(5);
+ coboundary4.push_back(7);
+ std::vector<double> coboundary5;
+ std::vector<double> coboundary6;
+ coboundary6.push_back(5);
+ coboundary6.push_back(7);
+ std::vector<double> coboundary7;
+ std::vector<double> coboundary8;
+ coboundary8.push_back(4);
+ coboundary8.push_back(12);
+ coboundary8.push_back(9);
+ coboundary8.push_back(11);
+ std::vector<double> coboundary9;
+ coboundary9.push_back(5);
+ coboundary9.push_back(13);
+ std::vector<double> coboundary10;
+ coboundary10.push_back(6);
+ coboundary10.push_back(14);
+ coboundary10.push_back(9);
+ coboundary10.push_back(11);
+ std::vector<double> coboundary11;
+ coboundary11.push_back(7);
+ coboundary11.push_back(15);
+ std::vector<double> coboundary12;
+ coboundary12.push_back(13);
+ coboundary12.push_back(15);
+ std::vector<double> coboundary13;
+ std::vector<double> coboundary14;
+ coboundary14.push_back(13);
+ coboundary14.push_back(15);
+ std::vector<double> coboundary15;
+
+ std::vector< std::vector<double> > coboundaries;
+ coboundaries.push_back( coboundary0 );
+ coboundaries.push_back( coboundary1 );
+ coboundaries.push_back( coboundary2 );
+ coboundaries.push_back( coboundary3 );
+ coboundaries.push_back( coboundary4 );
+ coboundaries.push_back( coboundary5 );
+ coboundaries.push_back( coboundary6 );
+ coboundaries.push_back( coboundary7 );
+ coboundaries.push_back( coboundary8 );
+ coboundaries.push_back( coboundary9 );
+ coboundaries.push_back( coboundary10 );
+ coboundaries.push_back( coboundary11 );
+ coboundaries.push_back( coboundary12 );
+ coboundaries.push_back( coboundary13 );
+ coboundaries.push_back( coboundary14 );
+ coboundaries.push_back( coboundary15 );
+
+ for (size_t i = 0; i != cmplx.size_of_bitmap(); ++i) {
+ std::vector< size_t > cbd = cmplx.get_coboundary_of_a_cell(i);
+ for (size_t j = 0; j != cbd.size(); ++j) {
+ BOOST_CHECK(coboundaries[i][j] == cbd[j]);
+ }
+ }
+}
+
+
+
+
+
+
+
+BOOST_AUTO_TEST_CASE(bitmap_2d_with_periodic_bcond_filtration) {
+ std::vector< double > filtrationOrg;
+ filtrationOrg.push_back(0);
+ filtrationOrg.push_back(1);
+ filtrationOrg.push_back(2);
+ filtrationOrg.push_back(3);
+
+
+ std::vector<unsigned> dimensions;
+ dimensions.push_back(2);
+ dimensions.push_back(2);
+
+ std::vector<bool> periodic_directions;
+ periodic_directions.push_back(true);
+ periodic_directions.push_back(true);
+
+ Bitmap_cubical_complex< Bitmap_cubical_complex_periodic_boundary_conditions_base<double> > cmplx(dimensions, filtrationOrg,periodic_directions);
+ BOOST_CHECK(cmplx.dimension() == 2);
+
+
+ std::vector<double> filtration;
+ filtration.push_back(0);//0
+ filtration.push_back(0);//1
+ filtration.push_back(0);//2
+ filtration.push_back(1);//3
+ filtration.push_back(0);//4
+ filtration.push_back(0);//5
+ filtration.push_back(0);//6
+ filtration.push_back(1);//7
+ filtration.push_back(0);//8
+ filtration.push_back(0);//9
+ filtration.push_back(0);//10
+ filtration.push_back(1);//11
+ filtration.push_back(2);//12
+ filtration.push_back(2);//13
+ filtration.push_back(2);//14
+ filtration.push_back(3);//15
+
+
+ for (size_t i = 0; i != cmplx.size_of_bitmap(); ++i)
+ {
+ BOOST_CHECK( filtration[i] == cmplx.get_cell_data(i) );
+ }
+}