def test_mvwp_project(): def pr(src, dest): return 2 * src + dest mv1 = MultiVectorWithProjection(project=pr) mi1 = Multiindex([1, 2, 1]) mi2 = Multiindex([3, 2, 1, 7]) v1 = FlatVector([7, 10, 6]) v2 = FlatVector([2, 6, 13]) mv1[mi1] = v1 mv1[mi2] = v2 assert_equal(mv1.get_projection(mi1, mi2), pr(v1, v2)) assert_equal(mv1.get_back_projection(mi1, mi2), pr(pr(v1, v2), v1))