|
|
|
@ -39,6 +39,7 @@ |
|
|
|
|
// To let the testing macros work, add some extra methods to simplify things. |
|
|
|
|
@interface GPBEnumArray (TestingTweak) |
|
|
|
|
+ (instancetype)arrayWithValue:(int32_t)value; |
|
|
|
|
+ (instancetype)arrayWithCapacity:(NSUInteger)count; |
|
|
|
|
- (instancetype)initWithValues:(const int32_t [])values |
|
|
|
|
count:(NSUInteger)count; |
|
|
|
|
@end |
|
|
|
@ -72,6 +73,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
rawValues:&value |
|
|
|
|
count:1] autorelease]; |
|
|
|
|
} |
|
|
|
|
+ (instancetype)arrayWithCapacity:(NSUInteger)count { |
|
|
|
|
return [[[self alloc] initWithValidationFunction:TestingEnum_IsValidValue |
|
|
|
|
capacity:count] autorelease]; |
|
|
|
|
} |
|
|
|
|
- (instancetype)initWithValues:(const int32_t [])values |
|
|
|
|
count:(NSUInteger)count { |
|
|
|
|
return [self initWithValidationFunction:TestingEnum_IsValidValue |
|
|
|
@ -177,6 +182,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
//% XCTAssertNotEqual(idx, 0U); |
|
|
|
|
//% ++idx2; |
|
|
|
|
//% }]; |
|
|
|
|
//% // Ensure description doesn't choke. |
|
|
|
|
//% XCTAssertTrue(array.description.length > 10); |
|
|
|
|
//% [array release]; |
|
|
|
|
//%} |
|
|
|
|
//% |
|
|
|
@ -201,6 +208,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
//% NAME$S count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
//% XCTAssertNotNil(array3); |
|
|
|
|
//% |
|
|
|
|
//% // Identity |
|
|
|
|
//% XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
//% // Wrong type doesn't blow up. |
|
|
|
|
//% XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
//% // 1/1Prime should be different objects, but equal. |
|
|
|
|
//% XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
//% XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -271,6 +282,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
//% [array add##HELPER##ValuesFromArray:array2]; |
|
|
|
|
//% XCTAssertEqual(array.count, 5U); |
|
|
|
|
//% |
|
|
|
|
//% // Zero/nil inputs do nothing. |
|
|
|
|
//% [array addValues:kValues1 count:0]; |
|
|
|
|
//% XCTAssertEqual(array.count, 5U); |
|
|
|
|
//% [array addValues:NULL count:5]; |
|
|
|
|
//% XCTAssertEqual(array.count, 5U); |
|
|
|
|
//% |
|
|
|
|
//% XCTAssertEqual([array valueAtIndex:0], VAL1); |
|
|
|
|
//% XCTAssertEqual([array valueAtIndex:1], VAL2); |
|
|
|
|
//% XCTAssertEqual([array valueAtIndex:2], VAL3); |
|
|
|
@ -391,9 +408,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
//%- (void)testInternalResizing { |
|
|
|
|
//% const TYPE kValues[] = { VAL1, VAL2, VAL3, VAL4 }; |
|
|
|
|
//% GPB##NAME##Array *array = |
|
|
|
|
//% [[GPB##NAME##Array alloc] initWithValues:kValues |
|
|
|
|
//% NAME$S count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
//% [GPB##NAME##Array arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
//% XCTAssertNotNil(array); |
|
|
|
|
//% [array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
//% |
|
|
|
|
//% // Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
//% for (int i = 0; i < 100; ++i) { |
|
|
|
@ -410,7 +427,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
//% XCTAssertEqual(array.count, 404U); |
|
|
|
|
//% [array removeAll]; |
|
|
|
|
//% XCTAssertEqual(array.count, 0U); |
|
|
|
|
//% [array release]; |
|
|
|
|
//%} |
|
|
|
|
//% |
|
|
|
|
//%@end |
|
|
|
@ -510,6 +526,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -534,6 +552,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -604,6 +626,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], 1); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], 2); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], 3); |
|
|
|
@ -724,9 +752,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const int32_t kValues[] = { 1, 2, 3, 4 }; |
|
|
|
|
GPBInt32Array *array = |
|
|
|
|
[[GPBInt32Array alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBInt32Array arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -743,7 +771,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -843,6 +870,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -867,6 +896,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -937,6 +970,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], 11U); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], 12U); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], 13U); |
|
|
|
@ -1057,9 +1096,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const uint32_t kValues[] = { 11U, 12U, 13U, 14U }; |
|
|
|
|
GPBUInt32Array *array = |
|
|
|
|
[[GPBUInt32Array alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBUInt32Array arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -1076,7 +1115,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -1176,6 +1214,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1200,6 +1240,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -1270,6 +1314,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], 31LL); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], 32LL); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], 33LL); |
|
|
|
@ -1390,9 +1440,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const int64_t kValues[] = { 31LL, 32LL, 33LL, 34LL }; |
|
|
|
|
GPBInt64Array *array = |
|
|
|
|
[[GPBInt64Array alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBInt64Array arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -1409,7 +1459,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -1509,6 +1558,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1533,6 +1584,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -1603,6 +1658,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], 41ULL); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], 42ULL); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], 43ULL); |
|
|
|
@ -1723,9 +1784,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const uint64_t kValues[] = { 41ULL, 42ULL, 43ULL, 44ULL }; |
|
|
|
|
GPBUInt64Array *array = |
|
|
|
|
[[GPBUInt64Array alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBUInt64Array arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -1742,7 +1803,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -1842,6 +1902,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1866,6 +1928,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -1936,6 +2002,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], 51.f); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], 52.f); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], 53.f); |
|
|
|
@ -2056,9 +2128,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const float kValues[] = { 51.f, 52.f, 53.f, 54.f }; |
|
|
|
|
GPBFloatArray *array = |
|
|
|
|
[[GPBFloatArray alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBFloatArray arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -2075,7 +2147,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -2175,6 +2246,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -2199,6 +2272,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -2269,6 +2346,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], 61.); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], 62.); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], 63.); |
|
|
|
@ -2389,9 +2472,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const double kValues[] = { 61., 62., 63., 64. }; |
|
|
|
|
GPBDoubleArray *array = |
|
|
|
|
[[GPBDoubleArray alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBDoubleArray arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -2408,7 +2491,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -2508,6 +2590,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -2532,6 +2616,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -2602,6 +2690,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], TRUE); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], TRUE); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], FALSE); |
|
|
|
@ -2722,9 +2816,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const BOOL kValues[] = { TRUE, TRUE, FALSE, FALSE }; |
|
|
|
|
GPBBoolArray *array = |
|
|
|
|
[[GPBBoolArray alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBBoolArray arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -2741,7 +2835,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -2841,6 +2934,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertNotEqual(idx, 0U); |
|
|
|
|
++idx2; |
|
|
|
|
}]; |
|
|
|
|
// Ensure description doesn't choke. |
|
|
|
|
XCTAssertTrue(array.description.length > 10); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -2865,6 +2960,10 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
count:GPBARRAYSIZE(kValues3)]; |
|
|
|
|
XCTAssertNotNil(array3); |
|
|
|
|
|
|
|
|
|
// Identity |
|
|
|
|
XCTAssertTrue([array1 isEqual:array1]); |
|
|
|
|
// Wrong type doesn't blow up. |
|
|
|
|
XCTAssertFalse([array1 isEqual:@"bogus"]); |
|
|
|
|
// 1/1Prime should be different objects, but equal. |
|
|
|
|
XCTAssertNotEqual(array1, array1prime); |
|
|
|
|
XCTAssertEqualObjects(array1, array1prime); |
|
|
|
@ -2935,6 +3034,12 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
[array addRawValuesFromArray:array2]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
// Zero/nil inputs do nothing. |
|
|
|
|
[array addValues:kValues1 count:0]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
[array addValues:NULL count:5]; |
|
|
|
|
XCTAssertEqual(array.count, 5U); |
|
|
|
|
|
|
|
|
|
XCTAssertEqual([array valueAtIndex:0], 71); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:1], 72); |
|
|
|
|
XCTAssertEqual([array valueAtIndex:2], 73); |
|
|
|
@ -3055,9 +3160,9 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
- (void)testInternalResizing { |
|
|
|
|
const int32_t kValues[] = { 71, 72, 73, 74 }; |
|
|
|
|
GPBEnumArray *array = |
|
|
|
|
[[GPBEnumArray alloc] initWithValues:kValues |
|
|
|
|
count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
[GPBEnumArray arrayWithCapacity:GPBARRAYSIZE(kValues)]; |
|
|
|
|
XCTAssertNotNil(array); |
|
|
|
|
[array addValues:kValues count:GPBARRAYSIZE(kValues)]; |
|
|
|
|
|
|
|
|
|
// Add/remove to trigger the intneral buffer to grow/shrink. |
|
|
|
|
for (int i = 0; i < 100; ++i) { |
|
|
|
@ -3074,7 +3179,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) { |
|
|
|
|
XCTAssertEqual(array.count, 404U); |
|
|
|
|
[array removeAll]; |
|
|
|
|
XCTAssertEqual(array.count, 0U); |
|
|
|
|
[array release]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
|