annotate test/StaticDicts/StaticDicts_test.jl @ 1894:7a79e7f36ad4 laplace_benchmarks

Close branch
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 31 Jan 2025 10:56:57 +0100
parents ffb71bdb4486
children 471a948cd2b2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using Test
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 using Sbplib.StaticDicts
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 @testset "StaticDicts" begin
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 @testset "StaticDict" begin
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 @testset "constructor" begin
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 @test (StaticDict{Int,Int,N} where N) <: AbstractDict
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 d = StaticDict(1=>2, 3=>4)
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 @test d isa StaticDict{Int,Int}
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 @test d[1] == 2
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 @test d[3] == 4
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14
736
b5d9fbcdcef1 Add a constuctor taking a tuple
Jonatan Werpers <jonatan@werpers.com>
parents: 734
diff changeset
15 @test StaticDict((1=>2, 3=>4)) == d
b5d9fbcdcef1 Add a constuctor taking a tuple
Jonatan Werpers <jonatan@werpers.com>
parents: 734
diff changeset
16
741
94941a062124 Add tests for constructing empty dicts. Change constructors accordingly
Jonatan Werpers <jonatan@werpers.com>
parents: 740
diff changeset
17 @test StaticDict() isa StaticDict
94941a062124 Add tests for constructing empty dicts. Change constructors accordingly
Jonatan Werpers <jonatan@werpers.com>
parents: 740
diff changeset
18 @test StaticDict{Int,String}() isa StaticDict{Int,String,0}
94941a062124 Add tests for constructing empty dicts. Change constructors accordingly
Jonatan Werpers <jonatan@werpers.com>
parents: 740
diff changeset
19
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 @test StaticDict(1=>3, 2=>4.) isa StaticDict{Int,Real}
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 @test StaticDict(1. =>3, 2=>4) isa StaticDict{Real,Int}
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 @test StaticDict(1. =>3, 2=>4.) isa StaticDict{Real,Real}
720
172c55c4cf2e Dissalow duplicate keys
Jonatan Werpers <jonatan@werpers.com>
parents: 719
diff changeset
23
737
ca4f17efb279 Change to using DomainError
Jonatan Werpers <jonatan@werpers.com>
parents: 736
diff changeset
24 @test_throws DomainError StaticDict(1=>3, 1=>3)
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26
740
e7e06bf394fb Add tests for length
Jonatan Werpers <jonatan@werpers.com>
parents: 738
diff changeset
27 @testset "length" begin
e7e06bf394fb Add tests for length
Jonatan Werpers <jonatan@werpers.com>
parents: 738
diff changeset
28 @test length(StaticDict()) == 0
e7e06bf394fb Add tests for length
Jonatan Werpers <jonatan@werpers.com>
parents: 738
diff changeset
29 @test length(StaticDict(1=>1)) == 1
e7e06bf394fb Add tests for length
Jonatan Werpers <jonatan@werpers.com>
parents: 738
diff changeset
30 @test length(StaticDict(1=>1, 2=>2)) == 2
e7e06bf394fb Add tests for length
Jonatan Werpers <jonatan@werpers.com>
parents: 738
diff changeset
31 end
e7e06bf394fb Add tests for length
Jonatan Werpers <jonatan@werpers.com>
parents: 738
diff changeset
32
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 @testset "equality" begin
734
1a8ef927e732 Add test for equality using ===
Jonatan Werpers <jonatan@werpers.com>
parents: 721
diff changeset
34 @test StaticDict(1=>1) == StaticDict(1=>1)
738
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
35 @test StaticDict(2=>1) != StaticDict(1=>1)
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
36 @test StaticDict(1=>2) != StaticDict(1=>1)
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
37
747
ffb71bdb4486 Minor edits
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 746
diff changeset
38 @test StaticDict(1=>1) === StaticDict(1=>1) #not true for a regular Dict
738
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
39 @test StaticDict(2=>1) !== StaticDict(1=>1)
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
40 @test StaticDict(1=>2) !== StaticDict(1=>1)
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 @testset "get" begin
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 d = StaticDict(1=>2, 3=>4)
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 @test get(d,1,6) == 2
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 @test get(d,3,6) == 4
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 @test get(d,5,6) == 6
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50
721
b2af21a4b376 Add todo note
Jonatan Werpers <jonatan@werpers.com>
parents: 720
diff changeset
51 @testset "iterate" begin
742
6377a5fba0a1 Add a simple test for iteration
Jonatan Werpers <jonatan@werpers.com>
parents: 741
diff changeset
52 pairs = [1=>2, 3=>4, 5=>6]
6377a5fba0a1 Add a simple test for iteration
Jonatan Werpers <jonatan@werpers.com>
parents: 741
diff changeset
53
6377a5fba0a1 Add a simple test for iteration
Jonatan Werpers <jonatan@werpers.com>
parents: 741
diff changeset
54 d = StaticDict(pairs...)
6377a5fba0a1 Add a simple test for iteration
Jonatan Werpers <jonatan@werpers.com>
parents: 741
diff changeset
55 @test collect(d) == pairs
721
b2af21a4b376 Add todo note
Jonatan Werpers <jonatan@werpers.com>
parents: 720
diff changeset
56 end
b2af21a4b376 Add todo note
Jonatan Werpers <jonatan@werpers.com>
parents: 720
diff changeset
57
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 @testset "merge" begin
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 @test merge(
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 StaticDict(1=>3, 2=> 4),
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 StaticDict(3=>5,4=>6)) == StaticDict(
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 1=>3, 2=>4, 3=>5, 4=>6
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 )
737
ca4f17efb279 Change to using DomainError
Jonatan Werpers <jonatan@werpers.com>
parents: 736
diff changeset
64 @test_throws DomainError merge(StaticDict(1=>3),StaticDict(1=>3))
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 end