@@ -160,6 +160,7 @@ public static void TestRangeEquality()
160160 {
161161 int ? value1 = 1 ;
162162 int ? value2 = 2 ;
163+ int ? value3 = 3 ;
163164 int ? empty = null ;
164165 var key = "Hello!" ;
165166 var key2 = "Hello2!" ;
@@ -188,6 +189,24 @@ public static void TestRangeEquality()
188189 IsTrue ( Range . Create ( value1 , value2 , key ) == Range . Create < int ? , string > ( 1 , 2 , key ) ) ;
189190 IsTrue ( Range . Create ( value1 , value2 , key ) != Range . Create < int ? , string > ( 1 , 2 , key2 ) ) ;
190191 IsTrue ( Range . Create ( value1 , value2 , key ) != Range . Create < int ? , string > ( 1 , 1 , key ) ) ;
192+
193+ IsTrue ( Range . TryCreate ( value1 , value2 ) == Range . Create < int ? > ( 1 , 2 ) ) ;
194+ IsTrue ( Range . TryCreate ( value1 , value2 ) != Range . Create ( value1 , 1 ) ) ;
195+ IsTrue ( Range . TryCreate ( value1 , value2 , key ) == Range . Create < int ? , string > ( 1 , 2 , key ) ) ;
196+ IsTrue ( Range . TryCreate ( value1 , value2 , key ) != Range . Create < int ? , string > ( 1 , 2 , key2 ) ) ;
197+ IsTrue ( Range . TryCreate ( value1 , value2 , key ) != Range . Create < int ? , string > ( 1 , 1 , key ) ) ;
198+
199+ IsTrue ( Range . TryCreateExclusiveFrom ( value1 , value2 ) == Range . CreateExclusiveFrom < int ? > ( 1 , 2 ) ) ;
200+ IsTrue ( Range . TryCreateExclusiveFrom ( value1 , value3 ) == Range . CreateExclusiveFrom ( value1 , 3 ) ) ;
201+ IsTrue ( Range . TryCreateExclusiveFrom ( value1 , value3 ) != Range . CreateExclusiveFrom ( value1 , 4 ) ) ;
202+ IsTrue ( Range . TryCreateExclusiveFrom ( value1 , value2 , key ) == Range . CreateExclusiveFrom < int ? , string > ( 1 , 2 , key ) ) ;
203+ IsTrue ( Range . TryCreateExclusiveFrom ( value1 , value2 , key ) != Range . CreateExclusiveFrom < int ? , string > ( 1 , 2 , key2 ) ) ;
204+
205+ IsTrue ( Range . TryCreateExclusiveTo ( value1 , value2 ) == Range . CreateExclusiveTo < int ? > ( 1 , 2 ) ) ;
206+ IsTrue ( Range . TryCreateExclusiveTo ( value1 , value3 ) == Range . CreateExclusiveTo ( value1 , 3 ) ) ;
207+ IsTrue ( Range . TryCreateExclusiveTo ( value1 , value3 ) != Range . CreateExclusiveTo ( value1 , 4 ) ) ;
208+ IsTrue ( Range . TryCreateExclusiveTo ( value1 , value2 , key ) == Range . CreateExclusiveTo < int ? , string > ( 1 , 2 , key ) ) ;
209+ IsTrue ( Range . TryCreateExclusiveTo ( value1 , value2 , key ) != Range . CreateExclusiveTo < int ? , string > ( 1 , 2 , key2 ) ) ;
191210 }
192211
193212 /// <summary>Tests the range to string.</summary>
@@ -201,28 +220,48 @@ public static void TestRangeToString()
201220 AreEqual ( Range < int > . Empty . ToString ( ) , "∅" ) ;
202221 AreEqual ( Range < int > . Infinite . ToString ( ) , "(-∞..+∞)" ) ;
203222 AreEqual ( Range . Create ( 1 , 1 ) . ToString ( ) , "[1..1]" ) ;
223+ AreEqual ( Range . TryCreate ( 1 , 1 ) . ToString ( ) , "[1..1]" ) ;
204224 AreEqual ( Range . Create ( 1 , 2 ) . ToString ( ) , "[1..2]" ) ;
225+ AreEqual ( Range . TryCreate ( 1 , 2 ) . ToString ( ) , "[1..2]" ) ;
205226 AreEqual ( Range . CreateExclusive ( 1 , 2 ) . ToString ( ) , "(1..2)" ) ;
227+ AreEqual ( Range . TryCreateExclusive ( 1 , 2 ) . ToString ( ) , "(1..2)" ) ;
206228 AreEqual ( Range . CreateExclusiveFrom ( 1 , 2 ) . ToString ( ) , "(1..2]" ) ;
229+ AreEqual ( Range . TryCreateExclusiveFrom ( 1 , 2 ) . ToString ( ) , "(1..2]" ) ;
207230 AreEqual ( Range . CreateExclusiveTo ( 1 , 2 ) . ToString ( ) , "[1..2)" ) ;
231+ AreEqual ( Range . TryCreateExclusiveTo ( 1 , 2 ) . ToString ( ) , "[1..2)" ) ;
208232 AreEqual ( Range . CreateExclusive ( value1 , empty ) . ToString ( "000" ) , "(001..+∞)" ) ;
233+ AreEqual ( Range . TryCreateExclusive ( value1 , empty ) . ToString ( "000" ) , "(001..+∞)" ) ;
209234
210235 AreEqual ( Range . Create ( RangeBoundaryFrom < int ? > . Empty , RangeBoundaryTo < int ? > . Empty , key ) . ToString ( ) , "'Hello!':∅" ) ;
236+ AreEqual ( Range . TryCreate ( RangeBoundaryFrom < int ? > . Empty , RangeBoundaryTo < int ? > . Empty , key ) . ToString ( ) , "'Hello!':∅" ) ;
211237 AreEqual ( Range . Create ( empty , empty , key ) . ToString ( ) , "'Hello!':(-∞..+∞)" ) ;
238+ AreEqual ( Range . TryCreate ( empty , empty , key ) . ToString ( ) , "'Hello!':(-∞..+∞)" ) ;
212239 AreEqual ( Range . Create ( empty , empty , ( string ) null ) . ToString ( ) , "'':(-∞..+∞)" ) ;
240+ AreEqual ( Range . TryCreate ( empty , empty , ( string ) null ) . ToString ( ) , "'':(-∞..+∞)" ) ;
213241 AreEqual ( Range . Create ( 1 , 1 , key ) . ToString ( ) , "'Hello!':[1..1]" ) ;
242+ AreEqual ( Range . TryCreate ( 1 , 1 , key ) . ToString ( ) , "'Hello!':[1..1]" ) ;
214243 AreEqual ( Range . Create ( 1 , 2 , key ) . ToString ( ) , "'Hello!':[1..2]" ) ;
244+ AreEqual ( Range . TryCreate ( 1 , 2 , key ) . ToString ( ) , "'Hello!':[1..2]" ) ;
215245 AreEqual ( Range . CreateExclusive ( 1 , 2 , key ) . ToString ( ) , "'Hello!':(1..2)" ) ;
246+ AreEqual ( Range . TryCreateExclusive ( 1 , 2 , key ) . ToString ( ) , "'Hello!':(1..2)" ) ;
216247 AreEqual ( Range . CreateExclusiveFrom ( 1 , 2 , key ) . ToString ( ) , "'Hello!':(1..2]" ) ;
248+ AreEqual ( Range . TryCreateExclusiveFrom ( 1 , 2 , key ) . ToString ( ) , "'Hello!':(1..2]" ) ;
217249 AreEqual ( Range . CreateExclusiveTo ( 1 , 2 , key ) . ToString ( ) , "'Hello!':[1..2)" ) ;
250+ AreEqual ( Range . TryCreateExclusiveTo ( 1 , 2 , key ) . ToString ( ) , "'Hello!':[1..2)" ) ;
218251 AreEqual ( Range . CreateExclusive ( value1 , empty , 3 ) . ToString ( "000" ) , "'3':(001..+∞)" ) ;
252+ AreEqual ( Range . TryCreateExclusive ( value1 , empty , 3 ) . ToString ( "000" ) , "'3':(001..+∞)" ) ;
219253 AreEqual ( Range . Create ( ( int ? ) 1 , null , key ) . ToString ( ) , "'Hello!':[1..+∞)" ) ;
254+ AreEqual ( Range . TryCreate ( ( int ? ) 1 , null , key ) . ToString ( ) , "'Hello!':[1..+∞)" ) ;
220255 var cultureRu = new CultureInfo ( "ru-RU" ) ;
221256 var cultureEn = new CultureInfo ( "en-US" ) ;
222257 AreEqual ( Range . Create ( 1.5 , 2.5 , 1.1 ) . ToString ( "000.000" , cultureRu ) , "'1,1':[001,500..002,500]" ) ;
258+ AreEqual ( Range . TryCreate ( 1.5 , 2.5 , 1.1 ) . ToString ( "000.000" , cultureRu ) , "'1,1':[001,500..002,500]" ) ;
223259 AreEqual ( Range . Create ( 1.5 , 2.5 , 1.1 ) . ToString ( "000.000" , cultureEn ) , "'1.1':[001.500..002.500]" ) ;
260+ AreEqual ( Range . TryCreate ( 1.5 , 2.5 , 1.1 ) . ToString ( "000.000" , cultureEn ) , "'1.1':[001.500..002.500]" ) ;
224261 AreEqual ( Range . Create ( 1.5 , 2.5 , ( string ) null ) . ToString ( null , cultureRu ) , "'':[1,5..2,5]" ) ;
262+ AreEqual ( Range . TryCreate ( 1.5 , 2.5 , ( string ) null ) . ToString ( null , cultureRu ) , "'':[1,5..2,5]" ) ;
225263 AreEqual ( Range . Create ( 1.5 , 2.5 , ( string ) null ) . ToString ( null , cultureEn ) , "'':[1.5..2.5]" ) ;
264+ AreEqual ( Range . TryCreate ( 1.5 , 2.5 , ( string ) null ) . ToString ( null , cultureEn ) , "'':[1.5..2.5]" ) ;
226265 }
227266
228267 [ Test ]
0 commit comments