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