From 3d917920c6dce7d75f286a2c965f9a9082235dac Mon Sep 17 00:00:00 2001 From: Benjamin Desef Date: Fri, 15 Dec 2023 16:49:13 +0100 Subject: [PATCH 1/2] Fix showing conjugate variables --- src/show.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/show.jl b/src/show.jl index 74b5901a..bae999ca 100644 --- a/src/show.jl +++ b/src/show.jl @@ -28,7 +28,7 @@ Base.show(io::IO, p::TypesWithShow) = show(io, MIME"text/plain"(), p) function _show(io::IO, mime::MIME, var::AbstractVariable) base, indices = name_base_indices(var) if isconj(var) - for c in base + for c in String(base) print(io, c, '\u0305') # displays as overbar (̄z) end else From 10df61e44a2072112bb83e3630c0a194e37a742c Mon Sep 17 00:00:00 2001 From: Benjamin Desef Date: Sat, 16 Dec 2023 19:52:47 +0100 Subject: [PATCH 2/2] Add test --- test/complex.jl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/complex.jl b/test/complex.jl index 709362e7..cfad5448 100644 --- a/test/complex.jl +++ b/test/complex.jl @@ -25,6 +25,15 @@ ordinary_variable(real(x)) == ordinary_variable(imag(x)) == ordinary_variable(x) + @testset "show" begin + struct SymbolVar <: MP.AbstractVariable end + struct SymbolConjVar <: MP.AbstractVariable end + Base.isreal(::Union{SymbolVar,SymbolConjVar}) = false + MP.name_base_indices(::Union{SymbolVar,SymbolConjVar}) = (:xy, (1, 2)) + MP.isconj(::SymbolConjVar) = true + @test sprint(show, SymbolVar()) == "xy₁₋₂" + @test sprint(show, SymbolConjVar()) == "x̅y̅₁₋₂" + end @test conj(x) != x && conj(conj(x)) == x @test real(x) == real(conj(x)) @test imag(conj(x)) == -imag(x)