diff --git a/src/Modules/ModulesGraded.jl b/src/Modules/ModulesGraded.jl index ebc7edb4e102..4da1130caf30 100644 --- a/src/Modules/ModulesGraded.jl +++ b/src/Modules/ModulesGraded.jl @@ -2042,10 +2042,12 @@ function minimal_betti_table(res::FreeResolution{T}) where {T<:ModuleFP} if d in dom_degs _, _, sub_mat = _constant_sub_matrix(phi, d) r = rank(sub_mat) - betti_hash_table[(i-1, d)] = ncols(sub_mat) - r - get(offsets, d, 0) + c = ncols(sub_mat) - r - get(offsets, d, 0) + !iszero(c) && (betti_hash_table[(i-1, d)] = c) offsets[d] = r else - betti_hash_table[(i-1, d)] = length(_indices_of_generators_of_degree(G, d)) - get(offsets, d, 0) + c = length(_indices_of_generators_of_degree(G, d)) - get(offsets, d, 0) + !iszero(c) && (betti_hash_table[(i-1, d)] = c) end end end diff --git a/test/Modules/ModulesGraded.jl b/test/Modules/ModulesGraded.jl index 52a84e204989..60a20e2c163e 100644 --- a/test/Modules/ModulesGraded.jl +++ b/test/Modules/ModulesGraded.jl @@ -1118,9 +1118,9 @@ end # To reproduce the string on the right hand side, evaluate # `"$(oscar.minimal_betti_table(M))"` # and insert the result here; after verification of the result! - @test "$(oscar.minimal_betti_table(A))" == " 0 1 2 3 4 \n---------------------\n0 : 1 - - - - \n1 : - - - - - \n2 : - 7 10 5 1 \n3 : - - - - - \n4 : - - - - - \n---------------------\ntotal: 1 7 10 5 1 \n" + @test "$(oscar.minimal_betti_table(A))" == " 0 1 2 3 4 \n---------------------\n0 : 1 - - - - \n1 : - - - - - \n2 : - 7 10 5 1 \n---------------------\ntotal: 1 7 10 5 1 \n" - @test "$(oscar.minimal_betti_table(M))" == " 0 1 2 3 4 \n---------------------\n0 : 1 - - - - \n1 : - - - - - \n2 : - 7 10 5 1 \n3 : - - - - - \n4 : - - - - - \n---------------------\ntotal: 1 7 10 5 1 \n" + @test "$(oscar.minimal_betti_table(M))" == " 0 1 2 3 4 \n---------------------\n0 : 1 - - - - \n1 : - - - - - \n2 : - 7 10 5 1 \n---------------------\ntotal: 1 7 10 5 1 \n" @test "$(oscar.minimal_betti_table(I))" == "$(oscar.minimal_betti_table(sub_F))"