From 80721f2f7b1e681af3b0e4249de496d36896a402 Mon Sep 17 00:00:00 2001 From: Benjamin Lorenz Date: Fri, 12 Apr 2024 10:37:46 +0200 Subject: [PATCH 1/4] allow type parameter for bigobject graphs --- src/meta.jl | 1 + test/graphs.jl | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/meta.jl b/src/meta.jl index ec391fae..cee365b2 100644 --- a/src/meta.jl +++ b/src/meta.jl @@ -34,6 +34,7 @@ translate_type_to_pm_string(::Type{<:Base.Integer}) = "Integer" translate_type_to_pm_string(::Type{<:OscarNumber}) = "OscarNumber" translate_type_to_pm_string(::typeof(min)) = "Min" translate_type_to_pm_string(::typeof(max)) = "Max" +translate_type_to_pm_string(::Type{T}) where T <: DirType = string(T) translate_type_to_pm_string(::Type{<:QuadraticExtension{T}}) where T = string("QuadraticExtension<", translate_type_to_pm_string(T), ">") translate_type_to_pm_string(T) = throw(DomainError(T, "$T has been passed as a type parameter but no translation to a C++ template was defined. You may define such translation by appropriately extending diff --git a/test/graphs.jl b/test/graphs.jl index 7c180392..fbe423f7 100644 --- a/test/graphs.jl +++ b/test/graphs.jl @@ -11,6 +11,16 @@ @test Polymake.ne(g) == 0 end + @testset verbose=true "bigobjects" begin + c = Polymake.polytope.cube(3) + eg = c.GRAPH.ADJACENCY + g = Polymake.Graph{Polymake.Directed}(5) + bg = Polymake.graph.Graph{Polymake.Directed}(ADJACENCY=g) + @test bg.N_NODES == 5 + bg2 = Polymake.graph.Graph(ADJACENCY=eg) + @test bg2.N_NODES == 8 + end + @testset verbose=true "manipulating edges and vertices" begin g = Polymake.Graph{Polymake.Directed}(5) Polymake._add_edge(g, 0, 1) From f67a9d49b8d366e07fcf79a4787d804e51ee89ab Mon Sep 17 00:00:00 2001 From: Benjamin Lorenz Date: Fri, 12 Apr 2024 10:37:58 +0200 Subject: [PATCH 2/4] bump version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 44a29566..deb9aade 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Polymake" uuid = "d720cf60-89b5-51f5-aff5-213f193123e7" repo = "https://github.com/oscar-system/Polymake.jl.git" -version = "0.11.15" +version = "0.11.16" [deps] AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" From 7feec3dee610d0102e24ff235a8bdd45e6c1bf7a Mon Sep 17 00:00:00 2001 From: Benjamin Lorenz Date: Fri, 12 Apr 2024 10:49:31 +0200 Subject: [PATCH 3/4] fixup: add dirtype for Polymake.Meta --- src/meta.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meta.jl b/src/meta.jl index cee365b2..a702cd2f 100644 --- a/src/meta.jl +++ b/src/meta.jl @@ -1,7 +1,7 @@ module Meta import JSON import Polymake: appname_module_dict, module_appname_dict, shell_context_help -import Polymake: Rational, PolymakeType, PropertyValue, OptionSet, QuadraticExtension, OscarNumber +import Polymake: Rational, PolymakeType, PropertyValue, OptionSet, QuadraticExtension, OscarNumber, DirType struct UnparsablePolymakeFunction <: Exception msg::String From 37ffa60fa1e0a28379544acadb2517295f1930d7 Mon Sep 17 00:00:00 2001 From: Benjamin Lorenz Date: Fri, 12 Apr 2024 12:05:02 +0200 Subject: [PATCH 4/4] avoid modules in typename string --- src/meta.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meta.jl b/src/meta.jl index a702cd2f..c828a7a3 100644 --- a/src/meta.jl +++ b/src/meta.jl @@ -34,7 +34,7 @@ translate_type_to_pm_string(::Type{<:Base.Integer}) = "Integer" translate_type_to_pm_string(::Type{<:OscarNumber}) = "OscarNumber" translate_type_to_pm_string(::typeof(min)) = "Min" translate_type_to_pm_string(::typeof(max)) = "Max" -translate_type_to_pm_string(::Type{T}) where T <: DirType = string(T) +translate_type_to_pm_string(::Type{T}) where T <: DirType = string(nameof(T)) translate_type_to_pm_string(::Type{<:QuadraticExtension{T}}) where T = string("QuadraticExtension<", translate_type_to_pm_string(T), ">") translate_type_to_pm_string(T) = throw(DomainError(T, "$T has been passed as a type parameter but no translation to a C++ template was defined. You may define such translation by appropriately extending