X-Git-Url: https://git.sthu.org/?p=libstick.git;a=blobdiff_plain;f=tests%2Fpersistence.h;h=b7678bfd76993fb3ed03bb45046f3bbcc3b2eb5e;hp=186039c53e2aef8e0ee21c087837bc959175dbf3;hb=7857e2e4890104e2f7e5a91f1ace889a3f072f08;hpb=dc2f0350ffdb47296a5094caa6184b1541e384ab diff --git a/tests/persistence.h b/tests/persistence.h index 186039c..b7678bf 100644 --- a/tests/persistence.h +++ b/tests/persistence.h @@ -34,6 +34,7 @@ class persistence_TestSuite: public Test::Suite { TEST_ADD(persistence_TestSuite::test_betti_numbers); TEST_ADD(persistence_TestSuite::test_lowestones); TEST_ADD(persistence_TestSuite::test_diagram); + TEST_ADD(persistence_TestSuite::test_diagrampoint_value); } protected: @@ -221,6 +222,28 @@ class persistence_TestSuite: public Test::Suite { #endif } + void test_diagrampoint_value() { + pers torusp(otorus); + torusp.compute_diagrams(); + + // We make a simplicial function that assigns to each simplex twice + // the index as value. + sfunction ftorus(torus); + ftorus.make_complete(); + for (unsigned i=1; i < torus.size(); ++i) + ftorus.set_value(i, 2*i); + + for (unsigned d=0; d <= 3; ++d) { + const pers::diagram &dia = torusp.get_persistence_diagram(d); + for (unsigned i=0; i < dia.births.size(); ++i) { + TEST_ASSERT(2 * dia.births[i].birth == dia.births[i].get_birth_value(otorus, ftorus)); + TEST_ASSERT(2 * dia.births[i].death == dia.births[i].get_death_value(otorus, ftorus)); + TEST_ASSERT(2 * (dia.births[i].death - dia.births[i].birth) == + dia.births[i].get_persistence(otorus, ftorus)); + } + } + } + void test_betti_numbers() { pers ringp(oring); ringp.compute_diagrams();