7
7
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
8
8
//
9
9
10
- // Exposing internal ReadingOptions for tests.
11
- extension JSONSerialization . ReadingOptions {
12
- fileprivate static let useReferenceNumericTypes = JSONSerialization . ReadingOptions ( rawValue: 1 << 15 )
13
- }
14
-
15
10
class TestJSONSerialization : XCTestCase {
16
11
17
12
let supportedEncodings : [ String . Encoding ] = [
@@ -477,7 +472,7 @@ extension TestJSONSerialization {
477
472
XCTFail ( " Unable to convert string to data " )
478
473
return
479
474
}
480
- let result = try getjsonObjectResult ( data, objectType, options : [ . useReferenceNumericTypes ] ) as? [ Any ]
475
+ let result = try getjsonObjectResult ( data, objectType) as? [ Any ]
481
476
XCTAssertEqual ( result ? [ 0 ] as? NSNumber , true )
482
477
XCTAssertEqual ( result ? [ 1 ] as? NSNumber , false )
483
478
XCTAssertEqual ( result ? [ 2 ] as? String , " hello " )
@@ -492,7 +487,7 @@ extension TestJSONSerialization {
492
487
493
488
//MARK: - Number parsing
494
489
func deserialize_numbers( objectType: ObjectType ) {
495
- let subject = " [1, -1, 1.3, -1.3, 1e3, 1E-3] "
490
+ let subject = " [1, -1, 1.3, -1.3, 1e3, 1E-3, 10 ] "
496
491
497
492
do {
498
493
for encoding in supportedEncodings {
@@ -501,33 +496,38 @@ extension TestJSONSerialization {
501
496
return
502
497
}
503
498
let result = try getjsonObjectResult ( data, objectType) as? [ Any ]
504
- XCTAssertEqual ( result ? [ 0 ] as? Int , 1 )
505
- XCTAssertEqual ( result ? [ 1 ] as? Int , - 1 )
506
- XCTAssertEqual ( result ? [ 2 ] as? Double , 1.3 )
507
- XCTAssertEqual ( result ? [ 3 ] as? Double , - 1.3 )
508
- XCTAssertEqual ( result ? [ 4 ] as? Int , 1000 )
499
+ XCTAssertEqual ( result ? [ 0 ] as? Int , 1 )
500
+ XCTAssertEqual ( result ? [ 1 ] as? Int , - 1 )
501
+ XCTAssertEqual ( result ? [ 2 ] as? Double , 1.3 )
502
+ XCTAssertEqual ( result ? [ 3 ] as? Double , - 1.3 )
503
+ XCTAssertEqual ( result ? [ 4 ] as? Int , 1000 )
509
504
XCTAssertEqual ( result ? [ 5 ] as? Double , 0.001 )
505
+ XCTAssertEqual ( result ? [ 6 ] as? Int , 10 )
506
+ XCTAssertEqual ( result ? [ 6 ] as? Double , 10.0 )
510
507
}
511
508
} catch {
512
509
XCTFail ( " Unexpected error: \( error) " )
513
510
}
514
511
}
512
+
515
513
func deserialize_numbers_as_reference_types( objectType: ObjectType ) {
516
- let subject = " [1, -1, 1.3, -1.3, 1e3, 1E-3] "
514
+ let subject = " [1, -1, 1.3, -1.3, 1e3, 1E-3, 10 ] "
517
515
518
516
do {
519
517
for encoding in supportedEncodings {
520
518
guard let data = subject. data ( using: encoding) else {
521
519
XCTFail ( " Unable to convert string to data " )
522
520
return
523
521
}
524
- let result = try getjsonObjectResult ( data, objectType, options : [ . useReferenceNumericTypes ] ) as? [ Any ]
522
+ let result = try getjsonObjectResult ( data, objectType) as? [ Any ]
525
523
XCTAssertEqual ( result ? [ 0 ] as? NSNumber , 1 )
526
524
XCTAssertEqual ( result ? [ 1 ] as? NSNumber , - 1 )
527
525
XCTAssertEqual ( result ? [ 2 ] as? NSNumber , 1.3 )
528
526
XCTAssertEqual ( result ? [ 3 ] as? NSNumber , - 1.3 )
529
527
XCTAssertEqual ( result ? [ 4 ] as? NSNumber , 1000 )
530
528
XCTAssertEqual ( result ? [ 5 ] as? NSNumber , 0.001 )
529
+ XCTAssertEqual ( result ? [ 6 ] as? NSNumber , 10 )
530
+ XCTAssertEqual ( result ? [ 6 ] as? NSNumber , 10.0 )
531
531
}
532
532
} catch {
533
533
XCTFail ( " Unexpected error: \( error) " )
@@ -1449,7 +1449,7 @@ extension TestJSONSerialization {
1449
1449
}
1450
1450
do {
1451
1451
let data = decimalArray. data ( using: String . Encoding. utf8)
1452
- let result = try JSONSerialization . jsonObject ( with: data!, options: [ . useReferenceNumericTypes ] ) as? [ Any ]
1452
+ let result = try JSONSerialization . jsonObject ( with: data!, options: [ ] ) as? [ Any ]
1453
1453
XCTAssertEqual ( result ? [ 0 ] as! NSNumber , 12.1 )
1454
1454
XCTAssertEqual ( result ? [ 1 ] as! NSNumber , 10 )
1455
1455
XCTAssertEqual ( result ? [ 2 ] as! NSNumber , 0 )
0 commit comments