From 2d7a2b06d176a883f3bd9fcc873937f5d872823a Mon Sep 17 00:00:00 2001 From: Marcel Wack <63490664+Sequenzer@users.noreply.github.com> Date: Tue, 12 Nov 2024 13:03:15 +0100 Subject: [PATCH] fixed the leading zero bug in matroid_hex (#4299) --- src/Combinatorics/Matroids/properties.jl | 6 ++---- test/Combinatorics/Matroids/Matroids.jl | 7 +++++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Combinatorics/Matroids/properties.jl b/src/Combinatorics/Matroids/properties.jl index 56bf952a350f..addae6cad2e0 100644 --- a/src/Combinatorics/Matroids/properties.jl +++ b/src/Combinatorics/Matroids/properties.jl @@ -1059,11 +1059,9 @@ julia> matroid_hex(fano_matroid()) function matroid_hex(M::Matroid) rvlx = min_revlex_basis_encoding(M) r,n = rank(M), length(M) + v = zeros(Int, 4*ceil(Int, length(rvlx)/4)) + v[length(v)-length(rvlx)+1:end] = _revlex_basis_to_vector(rvlx) - v = _revlex_basis_to_vector(rvlx) - for _ in 1:(4-length(v)%4) - pushfirst!(v,0) - end v = reshape(v,4,:) v = [string(parse(Int, join(v[:, j]), base=2), base=16) for j in 1:size(v)[2]] diff --git a/test/Combinatorics/Matroids/Matroids.jl b/test/Combinatorics/Matroids/Matroids.jl index 94474e845106..5cd0f76521dc 100644 --- a/test/Combinatorics/Matroids/Matroids.jl +++ b/test/Combinatorics/Matroids/Matroids.jl @@ -422,10 +422,17 @@ @testset "matroid_hex" begin M = fano_matroid() N = uniform_matroid(2, 4) + NN = uniform_matroid(1, 4) M1 = matroid_from_matroid_hex(matroid_hex(M)) N1 = matroid_from_matroid_hex(matroid_hex(N)) + NN1 = matroid_from_matroid_hex(matroid_hex(NN)) + @test is_isomorphic(M, M1) @test is_isomorphic(N, N1) + + @test matroid_hex(NN) == "r1n4_f" + @test is_isomorphic(NN, NN1) + end end