changeset 741:94941a062124 feature/static_dict

Add tests for constructing empty dicts. Change constructors accordingly
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 17 Mar 2021 22:08:59 +0100
parents e7e06bf394fb
children 6377a5fba0a1
files src/StaticDicts/StaticDicts.jl test/testStaticDicts.jl
diffstat 2 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/StaticDicts/StaticDicts.jl	Wed Mar 17 21:57:55 2021 +0100
+++ b/src/StaticDicts/StaticDicts.jl	Wed Mar 17 22:08:59 2021 +0100
@@ -23,7 +23,7 @@
 struct StaticDict{K,V,N} <: AbstractDict{K,V}
     pairs::NTuple{N,Pair{K,V}}
 
-    function StaticDict{K,V,N}(pairs::Tuple) where {K,V,N}
+    function StaticDict{K,V}(pairs::Vararg{Pair,N}) where {K,V,N}
         if !allunique(first.(pairs))
             throw(DomainError(pairs, "keys must be unique"))
         end
@@ -34,8 +34,7 @@
 function StaticDict(pairs::Vararg{Pair})
     K = typejoin(firsttype.(pairs)...)
     V = typejoin(secondtype.(pairs)...)
-    N = length(pairs)
-    return StaticDict{K,V,N}(pairs)
+    return StaticDict{K,V}(pairs...)
 end
 
 StaticDict(pairs::NTuple{N,Pair} where N) = StaticDict(pairs...)
--- a/test/testStaticDicts.jl	Wed Mar 17 21:57:55 2021 +0100
+++ b/test/testStaticDicts.jl	Wed Mar 17 22:08:59 2021 +0100
@@ -14,6 +14,9 @@
 
         @test StaticDict((1=>2, 3=>4)) == d
 
+        @test StaticDict() isa StaticDict
+        @test StaticDict{Int,String}() isa StaticDict{Int,String,0}
+
         @test StaticDict(1=>3, 2=>4.) isa StaticDict{Int,Real}
         @test StaticDict(1. =>3, 2=>4) isa StaticDict{Real,Int}
         @test StaticDict(1. =>3, 2=>4.) isa StaticDict{Real,Real}