From 2eca79f76d82a1be2adaa0b9893fc9e70b127e0c Mon Sep 17 00:00:00 2001 From: Leo Stenzel Date: Fri, 4 Jul 2025 15:12:32 +0200 Subject: [PATCH] Fix append!(l1, l2) for empty MutableLinkedList l2 And add tests for appending to and from an empty list. --- src/mutable_list.jl | 1 + test/test_mutable_list.jl | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/mutable_list.jl b/src/mutable_list.jl index cf085d59..bc91bb7c 100644 --- a/src/mutable_list.jl +++ b/src/mutable_list.jl @@ -151,6 +151,7 @@ function Base.setindex!(l::MutableLinkedList{T}, data, idx::Int) where T end function Base.append!(l1::MutableLinkedList{T}, l2::MutableLinkedList{T}) where T + isempty(l2) && return l1 l1.node.prev.next = l2.node.next # l1's last's next is now l2's first l2.node.prev.next = l1.node # l2's last's next is now l1.node l2.node.next.prev = l1.node.prev # l2's first's prev is now l1's last diff --git a/test/test_mutable_list.jl b/test/test_mutable_list.jl index d3bf7491..f265dc9c 100644 --- a/test/test_mutable_list.jl +++ b/test/test_mutable_list.jl @@ -108,6 +108,14 @@ push!(l4, n+1:2n...) @test l4 == MutableLinkedList{Int}(1:2n...) @test collect(l4) == collect(MutableLinkedList{Int}(1:2n...)) + l5 = copy(l) + l6 = MutableLinkedList{Int}() + append!(l5, l6) + @test collect(l5) == 1:2n + @test l6 == MutableLinkedList{Int}() + append!(l6, l5) + @test collect(l6) == 1:2n + @test l5 == MutableLinkedList{Int}() end @testset "delete" begin