@@ -136,7 +136,7 @@ defmodule RecordTest do
136136 binary: << 1 , 2 , 3 >> ,
137137 charlist: 'abc'
138138
139- test "records with literal defaults" do
139+ test "records with literal defaults and on-the-fly record " do
140140 assert defaults ( defaults ( ) ) == [
141141 struct: ~D[ 2016-01-01] ,
142142 map: % { } ,
@@ -163,6 +163,35 @@ defmodule RecordTest do
163163 assert defaults ( defaults ( ) , :charlist ) == 'abc'
164164 end
165165
166+ test "records with literal defaults and record in a variable" do
167+ defaults = defaults ( )
168+
169+ assert defaults ( defaults ) == [
170+ struct: ~D[ 2016-01-01] ,
171+ map: % { } ,
172+ tuple_zero: { } ,
173+ tuple_one: { 1 } ,
174+ tuple_two: { 1 , 2 } ,
175+ tuple_three: { 1 , 2 , 3 } ,
176+ list: [ 1 , 2 , 3 ] ,
177+ call: MapSet . new ,
178+ string: "abc" ,
179+ binary: << 1 , 2 , 3 >> ,
180+ charlist: 'abc'
181+ ]
182+ assert defaults ( defaults , :struct ) == ~D[ 2016-01-01]
183+ assert defaults ( defaults , :map ) == % { }
184+ assert defaults ( defaults , :tuple_zero ) == { }
185+ assert defaults ( defaults , :tuple_one ) == { 1 }
186+ assert defaults ( defaults , :tuple_two ) == { 1 , 2 }
187+ assert defaults ( defaults , :tuple_three ) == { 1 , 2 , 3 }
188+ assert defaults ( defaults , :list ) == [ 1 , 2 , 3 ]
189+ assert defaults ( defaults , :call ) == MapSet . new
190+ assert defaults ( defaults , :string ) == "abc"
191+ assert defaults ( defaults , :binary ) == << 1 , 2 , 3 >>
192+ assert defaults ( defaults , :charlist ) == 'abc'
193+ end
194+
166195 test "records with dynamic arguments" do
167196 record = file_info ( )
168197 assert file_info ( record , :size ) == :undefined
0 commit comments