/core/externals/update-engine/externals/google-toolbox-for-mac/Foundation/GTMNSScanner+UnsignedTest.m
Objective C | 116 lines | 91 code | 8 blank | 17 comment | 9 complexity | ca12d2d46ffba049d71f1625d247c810 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, GPL-2.0
- //
- // GTMNSScanner+UnsignedTest.m
- //
- // Copyright 2010 Google Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License"); you may not
- // use this file except in compliance with the License. You may obtain a copy
- // of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- // License for the specific language governing permissions and limitations under
- // the License.
- //
- #import "GTMSenTestCase.h"
- #import "GTMNSScanner+Unsigned.h"
- @interface GTMNSScanner_UnsignedTest : GTMTestCase
- @end
- @implementation GTMNSScanner_UnsignedTest
- #define TEST_BLOCK(A_MAX_VALUE) \
- { @"-1", 0, NO, 0 }, \
- { @"- 1", 0, NO, 0 }, \
- { @" - 1", 0, NO, 0 }, \
- { @"+ 1", 1, NO, 0 }, \
- { @" + 1", 1, NO, 0 }, \
- { @"0", 0, YES, 1 }, \
- { @"a", 0, NO, 0 }, \
- { @" ", 0, NO, 0 }, \
- { @"-1a", 0, NO, 0 }, \
- { @"a1", 0, NO, 0 }, \
- { @"1 ", 1, YES, 1 }, \
- { @"2 1 ", 2, YES, 1 }, \
- { @" 2 1 ", 2, YES, 2 }, \
- { @"99999999999999999999999999999999999", A_MAX_VALUE, YES, 35 }
- - (void)testScanUnsignedInt {
- struct {
- NSString *string;
- unsigned int val;
- BOOL goodScan;
- NSUInteger location;
- } testStruct[] = {
- TEST_BLOCK(UINT_MAX),
- };
- for (size_t i = 0; i < sizeof(testStruct) / sizeof(testStruct[0]); ++i) {
- NSScanner *scanner = [NSScanner scannerWithString:testStruct[i].string];
- STAssertNotNil(scanner, nil);
- unsigned int value;
- BOOL isGood = [scanner gtm_scanUnsignedInt:&value];
- STAssertEquals((int)isGood, (int)testStruct[i].goodScan,
- @"%@", testStruct[i].string);
- if (isGood && testStruct[i].goodScan) {
- STAssertEquals(value, testStruct[i].val, @"%@", testStruct[i].string);
- }
- STAssertEquals(testStruct[i].location, [scanner scanLocation],
- @"%@", testStruct[i].string);
- }
- }
- - (void)testScanUInteger {
- struct {
- NSString *string;
- NSUInteger val;
- BOOL goodScan;
- NSUInteger location;
- } testStruct[] = {
- TEST_BLOCK(NSUIntegerMax),
- };
- for (size_t i = 0; i < sizeof(testStruct) / sizeof(testStruct[0]); ++i) {
- NSScanner *scanner = [NSScanner scannerWithString:testStruct[i].string];
- STAssertNotNil(scanner, nil);
- NSUInteger value;
- BOOL isGood = [scanner gtm_scanUInteger:&value];
- STAssertEquals((int)isGood, (int)testStruct[i].goodScan,
- @"%@", testStruct[i].string);
- if (isGood && testStruct[i].goodScan) {
- STAssertEquals(value, testStruct[i].val, @"%@", testStruct[i].string);
- }
- STAssertEquals(testStruct[i].location, [scanner scanLocation],
- @"%@", testStruct[i].string);
- }
- }
- - (void)testScanUnsignedLongLong {
- struct {
- NSString *string;
- unsigned long long val;
- BOOL goodScan;
- NSUInteger location;
- } testStruct[] = {
- TEST_BLOCK(ULLONG_MAX),
- { @"4294967296", ((unsigned long long)UINT_MAX) + 1, YES, 10 }
- };
- for (size_t i = 0; i < sizeof(testStruct) / sizeof(testStruct[0]); ++i) {
- NSScanner *scanner = [NSScanner scannerWithString:testStruct[i].string];
- STAssertNotNil(scanner, nil);
- unsigned long long value;
- BOOL isGood = [scanner gtm_scanUnsignedLongLong:&value];
- STAssertEquals((int)isGood, (int)testStruct[i].goodScan,
- @"%@", testStruct[i].string);
- if (isGood && testStruct[i].goodScan) {
- STAssertEquals(value, testStruct[i].val, @"%@", testStruct[i].string);
- }
- STAssertEquals(testStruct[i].location, [scanner scanLocation],
- @"%@", testStruct[i].string);
- }
- }
- @end