diff --git a/Project.toml b/Project.toml index ee332a93..f197bbb5 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "NamedGraphs" uuid = "678767b0-92e7-4007-89e4-4527a8725b19" -version = "0.11.0" +version = "0.11.1" authors = ["Matthew Fishman , Joseph Tindall and contributors"] [workspace] @@ -23,12 +23,14 @@ Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb" [weakdeps] GraphsFlows = "06909019-6f44-4949-96fc-b9d9aaa02889" +ITensorVisualizationBase = "cd2553d2-8bef-4d93-8a38-c62f17d5ad23" KaHyPar = "2a6221f6-aa48-11e9-3542-2d9e0ef01880" Metis = "2679e427-3c69-5b7f-982b-ece356f1e94b" SymRCM = "286e6d88-80af-4590-acc9-0001b223b9bd" [extensions] NamedGraphsGraphsFlowsExt = "GraphsFlows" +NamedGraphsITensorVisualizationBaseExt = "ITensorVisualizationBase" NamedGraphsKaHyParExt = "KaHyPar" NamedGraphsMetisExt = "Metis" NamedGraphsSimpleGraphAlgorithmsExt = "SimpleGraphAlgorithms" @@ -40,6 +42,7 @@ Combinatorics = "1.0.2" Dictionaries = "0.4" Graphs = "1.8" GraphsFlows = "0.1.1" +ITensorVisualizationBase = "0.1" KaHyPar = "0.3.1" LinearAlgebra = "1.7" Metis = "1.4" diff --git a/ext/NamedGraphsITensorVisualizationBaseExt/NamedGraphsITensorVisualizationBaseExt.jl b/ext/NamedGraphsITensorVisualizationBaseExt/NamedGraphsITensorVisualizationBaseExt.jl new file mode 100644 index 00000000..3695bb59 --- /dev/null +++ b/ext/NamedGraphsITensorVisualizationBaseExt/NamedGraphsITensorVisualizationBaseExt.jl @@ -0,0 +1,22 @@ +module NamedGraphsITensorVisualizationBaseExt + +using Graphs: vertices +using ITensorVisualizationBase: ITensorVisualizationBase +using NamedGraphs: AbstractNamedGraph, position_graph + +function ITensorVisualizationBase.visualize( + graph::AbstractNamedGraph, + args...; + vertex_labels_prefix = nothing, + vertex_labels = nothing, + kwargs... + ) + if !isnothing(vertex_labels_prefix) + vertex_labels = [vertex_labels_prefix * string(v) for v in vertices(graph)] + end + return ITensorVisualizationBase.visualize( + position_graph(graph), args...; vertex_labels, kwargs... + ) +end + +end diff --git a/test/Project.toml b/test/Project.toml index 2d3480db..6728576f 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -5,6 +5,7 @@ Dictionaries = "85a47980-9c8c-11e8-2b9f-f7ca1fa99fb4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" GraphsFlows = "06909019-6f44-4949-96fc-b9d9aaa02889" ITensorPkgSkeleton = "3d388ab1-018a-49f4-ae50-18094d5f71ea" +ITensorVisualizationBase = "cd2553d2-8bef-4d93-8a38-c62f17d5ad23" KaHyPar = "2a6221f6-aa48-11e9-3542-2d9e0ef01880" Metis = "2679e427-3c69-5b7f-982b-ece356f1e94b" NamedGraphs = "678767b0-92e7-4007-89e4-4527a8725b19" diff --git a/test/test_itensorvisualizationbase_ext.jl b/test/test_itensorvisualizationbase_ext.jl new file mode 100644 index 00000000..72e99da1 --- /dev/null +++ b/test/test_itensorvisualizationbase_ext.jl @@ -0,0 +1,13 @@ +@eval module $(gensym()) +using ITensorVisualizationBase: ITensorVisualizationBase +using NamedGraphs.NamedGraphGenerators: named_grid +using NamedGraphs: AbstractNamedGraph +using Test: @test, @testset + +@testset "NamedGraphsITensorVisualizationBaseExt" begin + g = named_grid((2, 2)) + @test hasmethod(ITensorVisualizationBase.visualize, Tuple{AbstractNamedGraph}) + @test isnothing(ITensorVisualizationBase.visualize(g)) + @test isnothing(ITensorVisualizationBase.visualize(g; vertex_labels_prefix = "v")) +end +end