@@ -9,13 +9,15 @@ class NumValidatorTest < Net::IMAP::TestCase
99 TEST_VALUES = {
1010 -1 => %i[ invalid ] ,
1111
12- 0 => %i[ number mod-sequence-valzer ] ,
13- 1 => %i[ number nz-number mod-sequence-value mod-sequence-valzer ] ,
14- 0x0000_ffff => %i[ number nz-number mod-sequence-value mod-sequence-valzer ] ,
15- 0xffff_ffff => %i[ number nz-number mod-sequence-value mod-sequence-valzer ] ,
16- 0x0000_0001_0000_0000 => %i[ mod-sequence-value mod-sequence-valzer ] ,
17- 0x0000_ffff_ffff_ffff => %i[ mod-sequence-value mod-sequence-valzer ] ,
18- 0xffff_ffff_ffff_fffe => %i[ mod-sequence-value mod-sequence-valzer ] ,
12+ 0 => %i[ number number64 mod-sequence-valzer ] ,
13+ 1 => %i[ number nz-number number64 nz-number64 mod-sequence-value mod-sequence-valzer ] ,
14+ 0x0000_ffff => %i[ number nz-number number64 nz-number64 mod-sequence-value mod-sequence-valzer ] ,
15+ 0xffff_ffff => %i[ number nz-number number64 nz-number64 mod-sequence-value mod-sequence-valzer ] ,
16+ 0x0000_0001_0000_0000 => %i[ number64 nz-number64 mod-sequence-value mod-sequence-valzer ] ,
17+ 0x0000_ffff_ffff_ffff => %i[ number64 nz-number64 mod-sequence-value mod-sequence-valzer ] ,
18+ 0x7fff_ffff_ffff_ffff => %i[ number64 nz-number64 mod-sequence-value mod-sequence-valzer ] ,
19+ 0x8000_0000_0000_0000 => %i[ mod-sequence-value mod-sequence-valzer ] ,
20+ 0xffff_ffff_ffff_fffe => %i[ mod-sequence-value mod-sequence-valzer ] ,
1921
2022 0xffff_ffff_ffff_ffff => %i[ invalid ] ,
2123 }
@@ -40,6 +42,18 @@ def self.using_test_values_for(type)
4042 end
4143 end
4244
45+ using_test_values_for :number64 do |label , value , valid |
46+ test "#valid_number64?(%s) => %p" % [ label , valid ] do
47+ assert_equal valid , NumValidator . valid_number64? ( value )
48+ end
49+ end
50+
51+ using_test_values_for :"nz-number64" do |label , value , valid |
52+ test "#valid_nz_number64?(%s) => %p" % [ label , valid ] do
53+ assert_equal valid , NumValidator . valid_nz_number64? ( value )
54+ end
55+ end
56+
4357 using_test_values_for :"mod-sequence-value" do |label , value , valid |
4458 test "#valid_mod_sequence_value?(%s) => %p" % [ label , valid ] do
4559 assert_equal valid , NumValidator . valid_mod_sequence_value? ( value )
@@ -80,6 +94,28 @@ def assert_format_error
8094 end
8195 end
8296
97+ using_test_values_for :number64 do |label , value , valid |
98+ result = valid ? "=> #{ label } " : "raises DataFormatError"
99+ test "#ensure_number64(%s) %s" % [ label , result ] do
100+ if valid
101+ assert_equal value , NumValidator . ensure_number64 ( value )
102+ else
103+ assert_format_error do NumValidator . ensure_number64 ( value ) end
104+ end
105+ end
106+ end
107+
108+ using_test_values_for :"nz-number64" do |label , value , valid |
109+ result = valid ? "=> #{ label } " : "raises DataFormatError"
110+ test "#ensure_nz_number64(%s) %s" % [ label , result ] do
111+ if valid
112+ assert_equal value , NumValidator . ensure_nz_number64 ( value )
113+ else
114+ assert_format_error do NumValidator . ensure_nz_number64 ( value ) end
115+ end
116+ end
117+ end
118+
83119 using_test_values_for :"mod-sequence-value" do |label , value , valid |
84120 result = valid ? "=> #{ label } " : "raises DataFormatError"
85121 test "#ensure_mod_sequence_value(%s) %s" % [ label , result ] do
@@ -128,6 +164,32 @@ def assert_format_error
128164 end
129165 end
130166
167+ using_test_values_for :number64 do |label , value , valid |
168+ result = valid ? "=> #{ value } " : "raises DataFormatError"
169+ [ value , value . to_s ] . each do |input |
170+ test "#coerce_number64(%p) %s" % [ input , result ] do
171+ if valid
172+ assert_equal value , NumValidator . coerce_number64 ( input )
173+ else
174+ assert_format_error do NumValidator . coerce_number64 ( input ) end
175+ end
176+ end
177+ end
178+ end
179+
180+ using_test_values_for :"nz-number64" do |label , value , valid |
181+ result = valid ? "=> #{ value } " : "raises DataFormatError"
182+ [ value , value . to_s ] . each do |input |
183+ test "#coerce_nz_number64(%p) %s" % [ input , result ] do
184+ if valid
185+ assert_equal value , NumValidator . coerce_nz_number64 ( input )
186+ else
187+ assert_format_error do NumValidator . coerce_nz_number64 ( input ) end
188+ end
189+ end
190+ end
191+ end
192+
131193 using_test_values_for :"mod-sequence-value" do |label , value , valid |
132194 result = valid ? "=> #{ value } " : "raises DataFormatError"
133195 [ value , value . to_s ] . each do |input |
0 commit comments