def test_d(self): for case in all_cases: sc = simplicial_complex(case) N = sc.complex_dimension() for p in range(sc.complex_dimension()): df = d(sc.get_cochain_basis(p)) assert_equal( (df.v - sc[p].d).nnz, 0) # test exactness assert_equal(d(df).v.nnz,0)
def test_dual_d(self): for case in all_cases: sc = simplicial_complex(case) N = sc.complex_dimension() for p in range(sc.complex_dimension()): df = d(sc.get_cochain_basis(p, is_primal=False)) assert_equal( (df.v - (-1)**p*sc[N-p].boundary).nnz, 0) # test exactness assert_equal(d(df).v.nnz,0)
def test_three_edges(): V = array([[0],[1],[2],[3]]) S = array([[0,1],[1,2],[2,3]]) sc = simplicial_complex((V,S)) f0 = sc.get_cochain(0) assert_equal(f0.complex,sc) assert_equal(f0.k,0) assert_equal(f0.is_primal,True) assert_equal(f0.v,array([0,0,0,0])) f0.v[:] = 10 f1 = d(f0) assert_equal(f1.complex,sc) assert_equal(f1.k,1) assert_equal(f1.is_primal,True) assert_equal(f1.v,array([0,0,0]))