annotate test/testStaticDicts.jl @ 738:0ed147a4068a feature/static_dict

Add some more equality tests
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 17 Mar 2021 21:48:48 +0100
parents ca4f17efb279
children e7e06bf394fb
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
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 @test StaticDict(1=>3, 2=>4.) isa StaticDict{Int,Real}
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 @test StaticDict(1. =>3, 2=>4) isa StaticDict{Real,Int}
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 @test StaticDict(1. =>3, 2=>4.) isa StaticDict{Real,Real}
720
172c55c4cf2e Dissalow duplicate keys
Jonatan Werpers <jonatan@werpers.com>
parents: 719
diff changeset
20
737
ca4f17efb279 Change to using DomainError
Jonatan Werpers <jonatan@werpers.com>
parents: 736
diff changeset
21 @test_throws DomainError StaticDict(1=>3, 1=>3)
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 @testset "equality" begin
734
1a8ef927e732 Add test for equality using ===
Jonatan Werpers <jonatan@werpers.com>
parents: 721
diff changeset
25 @test StaticDict(1=>1) == StaticDict(1=>1)
738
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
26 @test StaticDict(2=>1) != StaticDict(1=>1)
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
27 @test StaticDict(1=>2) != StaticDict(1=>1)
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
28
734
1a8ef927e732 Add test for equality using ===
Jonatan Werpers <jonatan@werpers.com>
parents: 721
diff changeset
29
1a8ef927e732 Add test for equality using ===
Jonatan Werpers <jonatan@werpers.com>
parents: 721
diff changeset
30 # The following is not true for the regular Dict
1a8ef927e732 Add test for equality using ===
Jonatan Werpers <jonatan@werpers.com>
parents: 721
diff changeset
31 @test StaticDict(1=>1) === StaticDict(1=>1)
738
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
32 @test StaticDict(2=>1) !== StaticDict(1=>1)
0ed147a4068a Add some more equality tests
Jonatan Werpers <jonatan@werpers.com>
parents: 737
diff changeset
33 @test StaticDict(1=>2) !== StaticDict(1=>1)
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 @testset "get" begin
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 d = StaticDict(1=>2, 3=>4)
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 @test get(d,1,6) == 2
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 @test get(d,3,6) == 4
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 @test get(d,5,6) == 6
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43
721
b2af21a4b376 Add todo note
Jonatan Werpers <jonatan@werpers.com>
parents: 720
diff changeset
44 @testset "iterate" begin
b2af21a4b376 Add todo note
Jonatan Werpers <jonatan@werpers.com>
parents: 720
diff changeset
45 # TODO
b2af21a4b376 Add todo note
Jonatan Werpers <jonatan@werpers.com>
parents: 720
diff changeset
46 end
b2af21a4b376 Add todo note
Jonatan Werpers <jonatan@werpers.com>
parents: 720
diff changeset
47
719
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 @testset "merge" begin
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 @test merge(
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 StaticDict(1=>3, 2=> 4),
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 StaticDict(3=>5,4=>6)) == StaticDict(
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 1=>3, 2=>4, 3=>5, 4=>6
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 )
737
ca4f17efb279 Change to using DomainError
Jonatan Werpers <jonatan@werpers.com>
parents: 736
diff changeset
54 @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
55 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 end
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
2f8c67c5979e Start adding a StaticDict type
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 end