comparison test/StaticDicts/StaticDicts_test.jl @ 746:ddb52db10f37 feature/static_dict

Merge in default
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 19 Mar 2021 13:41:25 +0100
parents test/testStaticDicts.jl@6377a5fba0a1
children ffb71bdb4486
comparison
equal deleted inserted replaced
742:6377a5fba0a1 746:ddb52db10f37
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=>2, 3=>4)) == d
16
17 @test StaticDict() isa StaticDict
18 @test StaticDict{Int,String}() isa StaticDict{Int,String,0}
19
20 @test StaticDict(1=>3, 2=>4.) isa StaticDict{Int,Real}
21 @test StaticDict(1. =>3, 2=>4) isa StaticDict{Real,Int}
22 @test StaticDict(1. =>3, 2=>4.) isa StaticDict{Real,Real}
23
24 @test_throws DomainError StaticDict(1=>3, 1=>3)
25 end
26
27 @testset "length" begin
28 @test length(StaticDict()) == 0
29 @test length(StaticDict(1=>1)) == 1
30 @test length(StaticDict(1=>1, 2=>2)) == 2
31 end
32
33 @testset "equality" begin
34 @test StaticDict(1=>1) == StaticDict(1=>1)
35 @test StaticDict(2=>1) != StaticDict(1=>1)
36 @test StaticDict(1=>2) != StaticDict(1=>1)
37
38 # The following is not true for the regular Dict
39 @test StaticDict(1=>1) === StaticDict(1=>1)
40 @test StaticDict(2=>1) !== StaticDict(1=>1)
41 @test StaticDict(1=>2) !== StaticDict(1=>1)
42 end
43
44 @testset "get" begin
45 d = StaticDict(1=>2, 3=>4)
46
47 @test get(d,1,6) == 2
48 @test get(d,3,6) == 4
49 @test get(d,5,6) == 6
50 end
51
52 @testset "iterate" begin
53 pairs = [1=>2, 3=>4, 5=>6]
54
55 d = StaticDict(pairs...)
56 @test collect(d) == pairs
57 end
58
59 @testset "merge" begin
60 @test merge(
61 StaticDict(1=>3, 2=> 4),
62 StaticDict(3=>5,4=>6)) == StaticDict(
63 1=>3, 2=>4, 3=>5, 4=>6
64 )
65 @test_throws DomainError merge(StaticDict(1=>3),StaticDict(1=>3))
66 end
67 end
68
69 end