comparison test/testStaticDicts.jl @ 719:2f8c67c5979e feature/static_dict

Start adding a StaticDict type
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 16 Mar 2021 17:28:40 +0100
parents
children 172c55c4cf2e
comparison
equal deleted inserted replaced
718:05d8ea88c690 719:2f8c67c5979e
1 using Test
2 using Sbplib.StaticDicts
3
4 @testset "StaticDicts" begin
5
6 @testset "StaticDict" begin
7 @testset "constructor" begin
8 @test (StaticDict{Int,Int,N} where N) <: AbstractDict
9
10 d = StaticDict(1=>2, 3=>4)
11 @test d isa StaticDict{Int,Int}
12 @test d[1] == 2
13 @test d[3] == 4
14
15 @test StaticDict(1=>3, 2=>4.) isa StaticDict{Int,Real}
16 @test StaticDict(1. =>3, 2=>4) isa StaticDict{Real,Int}
17 @test StaticDict(1. =>3, 2=>4.) isa StaticDict{Real,Real}
18 end
19
20 @testset "equality" begin
21 @test StaticDict(1=>1) == StaticDict(1=>1) # This is not true for the regular Dict
22 end
23
24 @testset "get" begin
25 d = StaticDict(1=>2, 3=>4)
26
27 @test get(d,1,6) == 2
28 @test get(d,3,6) == 4
29 @test get(d,5,6) == 6
30 end
31
32 @testset "merge" begin
33 @test merge(
34 StaticDict(1=>3, 2=> 4),
35 StaticDict(3=>5,4=>6)) == StaticDict(
36 1=>3, 2=>4, 3=>5, 4=>6
37 )
38 @test_broken merge(d,d) == d # Should this be valid?
39 end
40 end
41
42 end