| Index: third_party/protobuf/objectivec/Tests/GPBDictionaryTests.pddm
|
| diff --git a/third_party/protobuf/objectivec/Tests/GPBDictionaryTests.pddm b/third_party/protobuf/objectivec/Tests/GPBDictionaryTests.pddm
|
| index 09512940821117d43b40586468182dae706d0b28..d6aa72119058de637c7e635cb3de862ccdc84687 100644
|
| --- a/third_party/protobuf/objectivec/Tests/GPBDictionaryTests.pddm
|
| +++ b/third_party/protobuf/objectivec/Tests/GPBDictionaryTests.pddm
|
| @@ -69,8 +69,8 @@
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict = [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] init];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY1)
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY1)
|
| +//% [dict enumerateKeysAnd##VALUE_NAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| //% #pragma unused(aKey, a##VNAME$u, stop)
|
| //% XCTFail(@"Shouldn't get here!");
|
| //% }];
|
| @@ -78,12 +78,12 @@
|
| //%}
|
| //%
|
| //%- (void)testOne {
|
| -//% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict = [GPB##KEY_NAME##VALUE_NAME##Dictionary dictionaryWith##VNAME$u##:VAL1 forKey:KEY1];
|
| +//% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict = [GPB##KEY_NAME##VALUE_NAME##Dictionary dictionaryWith##VALUE_NAME$u##:VAL1 forKey:KEY1];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 1U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//% [dict enumerateKeysAnd##VALUE_NAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| //% XCTAssertEqual##KSUFFIX(aKey, KEY1);
|
| //% XCTAssertEqual##VSUFFIX(a##VNAME$u, VAL1);
|
| //% XCTAssertNotEqual(stop, NULL);
|
| @@ -94,20 +94,20 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2, KEY3 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2, VAL3 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME$u##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 3U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY4)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY4)
|
| //%
|
| //% __block NSUInteger idx = 0;
|
| //% KEY_TYPE KisP##*seenKeys = malloc(3 * sizeof(KEY_TYPE##KisP));
|
| //% VALUE_TYPE *seen##VNAME$u##s = malloc(3 * sizeof(VALUE_TYPE));
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| +//% [dict enumerateKeysAnd##VALUE_NAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| //% XCTAssertLessThan(idx, 3U);
|
| //% seenKeys[idx] = aKey;
|
| //% seen##VNAME$u##s[idx] = a##VNAME$u##;
|
| @@ -129,7 +129,7 @@
|
| //%
|
| //% // Stopping the enumeration.
|
| //% idx = 0;
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| +//% [dict enumerateKeysAnd##VALUE_NAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| //% #pragma unused(aKey, a##VNAME$u)
|
| //% if (idx == 1) *stop = YES;
|
| //% XCTAssertNotEqual(idx, 2U);
|
| @@ -145,29 +145,29 @@
|
| //% const VALUE_TYPE k##VNAME$u##s2[] = { VAL1, VAL4, VAL3 };
|
| //% const VALUE_TYPE k##VNAME$u##s3[] = { VAL1, VAL2, VAL3, VAL4 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict1 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| //% XCTAssertNotNil(dict1);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict1prime =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| //% XCTAssertNotNil(dict1prime);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| //% XCTAssertNotNil(dict2);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict3 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| //% XCTAssertNotNil(dict3);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict4 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s3
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s3)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s3
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s3)];
|
| //% XCTAssertNotNil(dict4);
|
| //%
|
| //% // 1/1Prime should be different objects, but equal.
|
| @@ -196,9 +196,9 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2, KEY3, KEY4 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2, VAL3, VAL4 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //%
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 = [dict copy];
|
| @@ -217,9 +217,9 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2, KEY3, KEY4 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2, VAL3, VAL4 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //%
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| @@ -237,23 +237,23 @@
|
| //% XCTAssertNotNil(dict);
|
| //%
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//% [dict set##VNAME$u##:VAL1 forKey:KEY1];
|
| +//% [dict set##VALUE_NAME##:VAL1 forKey:KEY1];
|
| //% XCTAssertEqual(dict.count, 1U);
|
| //%
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY2, KEY3, KEY4 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL2, VAL3, VAL4 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict2);
|
| //% [dict add##VACCESSOR##EntriesFromDictionary:dict2];
|
| //% XCTAssertEqual(dict.count, 4U);
|
| //%
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY4, VAL4)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY4, VAL4)
|
| //% [dict2 release];
|
| //%}
|
| //%
|
| @@ -261,40 +261,40 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2, KEY3, KEY4 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2, VAL3, VAL4 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 4U);
|
| //%
|
| -//% [dict remove##VNAME$u##ForKey:KEY2];
|
| +//% [dict remove##VALUE_NAME##ForKey:KEY2];
|
| //% XCTAssertEqual(dict.count, 3U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY4, VAL4)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY4, VAL4)
|
| //%
|
| //% // Remove again does nothing.
|
| -//% [dict remove##VNAME$u##ForKey:KEY2];
|
| +//% [dict remove##VALUE_NAME##ForKey:KEY2];
|
| //% XCTAssertEqual(dict.count, 3U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY4, VAL4)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY4, VAL4)
|
| //%
|
| -//% [dict remove##VNAME$u##ForKey:KEY4];
|
| +//% [dict remove##VALUE_NAME##ForKey:KEY4];
|
| //% XCTAssertEqual(dict.count, 2U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY4)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY4)
|
| //%
|
| //% [dict removeAll];
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY3)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY4)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY3)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY4)
|
| //% [dict release];
|
| //%}
|
| //%
|
| @@ -302,43 +302,43 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2, KEY3, KEY4 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2, VAL3, VAL4 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 4U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY4, VAL4)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY4, VAL4)
|
| //%
|
| -//% [dict set##VNAME$u##:VAL4 forKey:KEY1];
|
| +//% [dict set##VALUE_NAME##:VAL4 forKey:KEY1];
|
| //% XCTAssertEqual(dict.count, 4U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL4)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY4, VAL4)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL4)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY4, VAL4)
|
| //%
|
| -//% [dict set##VNAME$u##:VAL2 forKey:KEY4];
|
| +//% [dict set##VALUE_NAME##:VAL2 forKey:KEY4];
|
| //% XCTAssertEqual(dict.count, 4U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL4)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY4, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL4)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY4, VAL2)
|
| //%
|
| //% const KEY_TYPE KisP##kKeys2[] = { KEY2, KEY3 };
|
| //% const VALUE_TYPE k##VNAME$u##s2[] = { VAL3, VAL1 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| //% XCTAssertNotNil(dict2);
|
| //% [dict add##VACCESSOR##EntriesFromDictionary:dict2];
|
| //% XCTAssertEqual(dict.count, 4U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL4)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY3, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY4, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL4)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY3, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY4, VAL2)
|
| //%
|
| //% [dict2 release];
|
| //% [dict release];
|
| @@ -369,15 +369,15 @@
|
| //% XCTAssertEqual(dict.count, 3U);
|
| //% XCTAssertTrue(dict.validationFunc == TestingEnum_IsValidValue); // Pointer comparison
|
| //%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, value)TEST_RAW_VALUE##VHELPER(dict, value, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY2, kGPBUnrecognizedEnumeratorValue)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY2, kGPBUnrecognizedEnumeratorValue)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY2, VAL2)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| -//%RAW_VALUE_NOT_FOUND##VHELPER(dict, KEY4)
|
| +//%RAW_VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY4)
|
| //%
|
| //% __block NSUInteger idx = 0;
|
| //% KEY_TYPE KisP##*seenKeys = malloc(3 * sizeof(KEY_TYPE##KisP));
|
| //% VALUE_TYPE *seenValues = malloc(3 * sizeof(VALUE_TYPE));
|
| -//% [dict enumerateKeysAndValuesUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE aValue, BOOL *stop) {
|
| +//% [dict enumerateKeysAndEnumsUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE aValue, BOOL *stop) {
|
| //% XCTAssertLessThan(idx, 3U);
|
| //% seenKeys[idx] = aKey;
|
| //% seenValues[idx] = aValue;
|
| @@ -538,7 +538,7 @@
|
| //% XCTAssertNotNil(dict);
|
| //%
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//% XCTAssertThrowsSpecificNamed([dict setValue:VAL2 forKey:KEY2], // Unknown
|
| +//% XCTAssertThrowsSpecificNamed([dict setEnum:VAL2 forKey:KEY2], // Unknown
|
| //% NSException, NSInvalidArgumentException);
|
| //% XCTAssertEqual(dict.count, 0U);
|
| //% [dict setRawValue:VAL2 forKey:KEY2]; // Unknown
|
| @@ -547,18 +547,18 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY3, KEY4 };
|
| //% const VALUE_TYPE kValues[] = { VAL1, VAL3, VAL4 }; // Unknown
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWithValues:kValues
|
| -//% KEY_NAME$S VALUE_NAME$S forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S count:GPBARRAYSIZE(kValues)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWithEnums:kValues
|
| +//% KEY_NAME$S VALUE_NAME$S forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S count:GPBARRAYSIZE(kValues)];
|
| //% XCTAssertNotNil(dict2);
|
| //% [dict addRawEntriesFromDictionary:dict2];
|
| //% XCTAssertEqual(dict.count, 4U);
|
| //%
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, value)TEST_VALUE##VHELPER(dict, value, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY2, kGPBUnrecognizedEnumeratorValue)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, value)TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY2, kGPBUnrecognizedEnumeratorValue)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY4, kGPBUnrecognizedEnumeratorValue)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY4, kGPBUnrecognizedEnumeratorValue)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY4, VAL4)
|
| //% [dict2 release];
|
| //%}
|
| @@ -574,34 +574,34 @@
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 4U);
|
| //%
|
| -//% [dict removeValueForKey:KEY2];
|
| +//% [dict removeEnumForKey:KEY2];
|
| //% XCTAssertEqual(dict.count, 3U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, value)TEST_VALUE##VHELPER(dict, value, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, value)TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY4, VAL4)
|
| //%
|
| //% // Remove again does nothing.
|
| -//% [dict removeValueForKey:KEY2];
|
| +//% [dict removeEnumForKey:KEY2];
|
| //% XCTAssertEqual(dict.count, 3U);
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY4, VAL4)
|
| //%
|
| -//% [dict removeValueForKey:KEY4];
|
| +//% [dict removeEnumForKey:KEY4];
|
| //% XCTAssertEqual(dict.count, 2U);
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY4)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY4)
|
| //%
|
| //% [dict removeAll];
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY3)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY4)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY3)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY4)
|
| //% [dict release];
|
| //%}
|
| //%
|
| @@ -615,32 +615,32 @@
|
| //% KEY_NAME$S VALUE_NAME$S count:GPBARRAYSIZE(kValues)];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 4U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, value)TEST_VALUE##VHELPER(dict, value, KEY1, VAL1)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, value)TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY1, VAL1)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY4, VAL4)
|
| //%
|
| -//% XCTAssertThrowsSpecificNamed([dict setValue:VAL4 forKey:KEY1], // Unknown
|
| +//% XCTAssertThrowsSpecificNamed([dict setEnum:VAL4 forKey:KEY1], // Unknown
|
| //% NSException, NSInvalidArgumentException);
|
| //% XCTAssertEqual(dict.count, 4U);
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY1, VAL1)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY4, VAL4)
|
| //%
|
| //% [dict setRawValue:VAL4 forKey:KEY1]; // Unknown
|
| //% XCTAssertEqual(dict.count, 4U);
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY1, VAL4)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY4, VAL4)
|
| //%
|
| //% [dict setRawValue:VAL1 forKey:KEY4];
|
| //% XCTAssertEqual(dict.count, 4U);
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY1, VAL4)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY2, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY3, VAL3)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY4, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY3, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY4, VAL1)
|
| //%
|
| //% const KEY_TYPE KisP##kKeys2[] = { KEY2, KEY3 };
|
| //% const VALUE_TYPE kValues2[] = { VAL3, VAL2 }; // Unknown
|
| @@ -653,9 +653,9 @@
|
| //% [dict addRawEntriesFromDictionary:dict2];
|
| //% XCTAssertEqual(dict.count, 4U);
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY1, VAL4)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY2, VAL3)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY2, VAL3)
|
| //%TEST_RAW_VALUE##VHELPER(dict, value, KEY3, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, value, KEY4, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, value, KEY4, VAL1)
|
| //%
|
| //% [dict2 release];
|
| //% [dict release];
|
| @@ -694,19 +694,19 @@
|
| //%PDDM-DEFINE DECLARE_VALUE_STORAGEPOD(VALUE_TYPE, NAME)
|
| //% VALUE_TYPE NAME;
|
| //%
|
| -//%PDDM-DEFINE VALUE_NOT_FOUNDPOD(DICT, KEY)
|
| -//% XCTAssertFalse([DICT valueForKey:KEY value:NULL]);
|
| -//%PDDM-DEFINE TEST_VALUEPOD(DICT, STORAGE, KEY, VALUE)
|
| -//% XCTAssertTrue([DICT valueForKey:KEY value:NULL]);
|
| -//% XCTAssertTrue([DICT valueForKey:KEY value:&STORAGE]);
|
| +//%PDDM-DEFINE VALUE_NOT_FOUNDPOD(VALUE_NAME, DICT, KEY)
|
| +//% XCTAssertFalse([DICT get##VALUE_NAME##:NULL forKey:KEY]);
|
| +//%PDDM-DEFINE TEST_VALUEPOD(VALUE_NAME, DICT, STORAGE, KEY, VALUE)
|
| +//% XCTAssertTrue([DICT get##VALUE_NAME##:NULL forKey:KEY]);
|
| +//% XCTAssertTrue([DICT get##VALUE_NAME##:&STORAGE forKey:KEY]);
|
| //% XCTAssertEqual(STORAGE, VALUE);
|
| //%PDDM-DEFINE COMPARE_KEYS(KEY1, KEY2)
|
| //%KEY1 == KEY2
|
| -//%PDDM-DEFINE RAW_VALUE_NOT_FOUNDPOD(DICT, KEY)
|
| -//% XCTAssertFalse([DICT valueForKey:KEY rawValue:NULL]);
|
| +//%PDDM-DEFINE RAW_VALUE_NOT_FOUNDPOD(VALUE_NAME, DICT, KEY)
|
| +//% XCTAssertFalse([DICT getRawValue:NULL forKey:KEY]);
|
| //%PDDM-DEFINE TEST_RAW_VALUEPOD(DICT, STORAGE, KEY, VALUE)
|
| -//% XCTAssertTrue([DICT valueForKey:KEY rawValue:NULL]);
|
| -//% XCTAssertTrue([DICT valueForKey:KEY rawValue:&STORAGE]);
|
| +//% XCTAssertTrue([DICT getRawValue:NULL forKey:KEY]);
|
| +//% XCTAssertTrue([DICT getRawValue:&STORAGE forKey:KEY]);
|
| //% XCTAssertEqual(STORAGE, VALUE);
|
|
|
| //
|
| @@ -715,9 +715,9 @@
|
|
|
| //%PDDM-DEFINE DECLARE_VALUE_STORAGEOBJECT(VALUE_TYPE, NAME)
|
| // Empty
|
| -//%PDDM-DEFINE VALUE_NOT_FOUNDOBJECT(DICT, KEY)
|
| +//%PDDM-DEFINE VALUE_NOT_FOUNDOBJECT(VALUE_NAME, DICT, KEY)
|
| //% XCTAssertNil([DICT objectForKey:KEY]);
|
| -//%PDDM-DEFINE TEST_VALUEOBJECT(DICT, STORAGE, KEY, VALUE)
|
| +//%PDDM-DEFINE TEST_VALUEOBJECT(VALUE_NAME, DICT, STORAGE, KEY, VALUE)
|
| //% XCTAssertEqualObjects([DICT objectForKey:KEY], VALUE);
|
| //%PDDM-DEFINE COMPARE_KEYSObjects(KEY1, KEY2)
|
| //%[KEY1 isEqual:KEY2]
|
| @@ -729,10 +729,10 @@
|
| //%PDDM-DEFINE TEST_HELPERS(KEY_NAME, KEY_TYPE, KisP)
|
| //%// To let the testing macros work, add some extra methods to simplify things.
|
| //%@interface GPB##KEY_NAME##EnumDictionary (TestingTweak)
|
| -//%+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(KEY_TYPE##KisP$S##KisP)key;
|
| -//%- (instancetype)initWithValues:(const int32_t [])values
|
| -//% forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
|
| -//% count:(NSUInteger)count;
|
| +//%+ (instancetype)dictionaryWithEnum:(int32_t)value forKey:(KEY_TYPE##KisP$S##KisP)key;
|
| +//%- (instancetype)initWithEnums:(const int32_t [])values
|
| +//% forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
|
| +//% count:(NSUInteger)count;
|
| //%@end
|
| //%
|
| //%static BOOL TestingEnum_IsValidValue(int32_t value) {
|
| @@ -748,7 +748,7 @@
|
| //%}
|
| //%
|
| //%@implementation GPB##KEY_NAME##EnumDictionary (TestingTweak)
|
| -//%+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(KEY_TYPE##KisP$S##KisP)key {
|
| +//%+ (instancetype)dictionaryWithEnum:(int32_t)value forKey:(KEY_TYPE##KisP$S##KisP)key {
|
| //% // Cast is needed to compiler knows what class we are invoking initWithValues: on to get the
|
| //% // type correct.
|
| //% return [[(GPB##KEY_NAME##EnumDictionary*)[self alloc] initWithValidationFunction:TestingEnum_IsValidValue
|
| @@ -756,9 +756,9 @@
|
| //% KEY_NAME$S forKeys:&key
|
| //% KEY_NAME$S count:1] autorelease];
|
| //%}
|
| -//%- (instancetype)initWithValues:(const int32_t [])values
|
| -//% forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
|
| -//% count:(NSUInteger)count {
|
| +//%- (instancetype)initWithEnums:(const int32_t [])values
|
| +//% forKeys:(const KEY_TYPE##KisP$S##KisP [])keys
|
| +//% count:(NSUInteger)count {
|
| //% return [self initWithValidationFunction:TestingEnum_IsValidValue
|
| //% rawValues:values
|
| //% forKeys:keys
|
| @@ -792,8 +792,8 @@
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict = [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] init];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY1)
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u##, BOOL *stop) {
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY1)
|
| +//% [dict enumerateKeysAnd##VALUE_NAME##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u##, BOOL *stop) {
|
| //% #pragma unused(aKey, a##VNAME$u##, stop)
|
| //% XCTFail(@"Shouldn't get here!");
|
| //% }];
|
| @@ -801,12 +801,12 @@
|
| //%}
|
| //%
|
| //%- (void)testOne {
|
| -//% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict = [GPB##KEY_NAME##VALUE_NAME##Dictionary dictionaryWith##VNAME$u##:VAL1 forKey:KEY1];
|
| +//% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict = [GPB##KEY_NAME##VALUE_NAME##Dictionary dictionaryWith##VALUE_NAME$u##:VAL1 forKey:KEY1];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 1U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| +//% [dict enumerateKeysAnd##VALUE_NAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u, BOOL *stop) {
|
| //% XCTAssertEqual##KSUFFIX(aKey, KEY1);
|
| //% XCTAssertEqual##VSUFFIX(a##VNAME$u, VAL1);
|
| //% XCTAssertNotEqual(stop, NULL);
|
| @@ -817,18 +817,18 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 2U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| //%
|
| //% __block NSUInteger idx = 0;
|
| //% KEY_TYPE KisP##*seenKeys = malloc(2 * sizeof(KEY_TYPE##KisP));
|
| //% VALUE_TYPE *seen##VNAME$u##s = malloc(2 * sizeof(VALUE_TYPE));
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u##, BOOL *stop) {
|
| +//% [dict enumerateKeysAnd##VALUE_NAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u##, BOOL *stop) {
|
| //% XCTAssertLessThan(idx, 2U);
|
| //% seenKeys[idx] = aKey;
|
| //% seen##VNAME$u##s[idx] = a##VNAME$u;
|
| @@ -850,7 +850,7 @@
|
| //%
|
| //% // Stopping the enumeration.
|
| //% idx = 0;
|
| -//% [dict enumerateKeysAnd##VNAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u##, BOOL *stop) {
|
| +//% [dict enumerateKeysAnd##VALUE_NAME$u##sUsingBlock:^(KEY_TYPE KisP##aKey, VALUE_TYPE a##VNAME$u##, BOOL *stop) {
|
| //% #pragma unused(aKey, a##VNAME$u)
|
| //% if (idx == 0) *stop = YES;
|
| //% XCTAssertNotEqual(idx, 2U);
|
| @@ -866,29 +866,29 @@
|
| //% const VALUE_TYPE k##VNAME$u##s2[] = { VAL2, VAL1 };
|
| //% const VALUE_TYPE k##VNAME$u##s3[] = { VAL2 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict1 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| //% XCTAssertNotNil(dict1);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict1prime =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| //% XCTAssertNotNil(dict1prime);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| //% XCTAssertNotNil(dict2);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict3 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s1)];
|
| //% XCTAssertNotNil(dict3);
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict4 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s3
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys1
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s3)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s3
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys1
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s3)];
|
| //% XCTAssertNotNil(dict4);
|
| //%
|
| //% // 1/1Prime should be different objects, but equal.
|
| @@ -917,9 +917,9 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //%
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 = [dict copy];
|
| @@ -938,9 +938,9 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //%
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| @@ -958,21 +958,21 @@
|
| //% XCTAssertNotNil(dict);
|
| //%
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//% [dict set##VNAME$u:VAL1 forKey:KEY1];
|
| +//% [dict set##VALUE_NAME:VAL1 forKey:KEY1];
|
| //% XCTAssertEqual(dict.count, 1U);
|
| //%
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY2 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL2 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict2);
|
| //% [dict addEntriesFromDictionary:dict2];
|
| //% XCTAssertEqual(dict.count, 2U);
|
| //%
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| //% [dict2 release];
|
| //%}
|
| //%
|
| @@ -980,27 +980,27 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2};
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 2U);
|
| //%
|
| -//% [dict remove##VNAME$u##ForKey:KEY2];
|
| +//% [dict remove##VALUE_NAME##ForKey:KEY2];
|
| //% XCTAssertEqual(dict.count, 1U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| //%
|
| //% // Remove again does nothing.
|
| -//% [dict remove##VNAME$u##ForKey:KEY2];
|
| +//% [dict remove##VALUE_NAME##ForKey:KEY2];
|
| //% XCTAssertEqual(dict.count, 1U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| //%
|
| //% [dict removeAll];
|
| //% XCTAssertEqual(dict.count, 0U);
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY1)
|
| -//%VALUE_NOT_FOUND##VHELPER(dict, KEY2)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY1)
|
| +//%VALUE_NOT_FOUND##VHELPER(VALUE_NAME, dict, KEY2)
|
| //% [dict release];
|
| //%}
|
| //%
|
| @@ -1008,35 +1008,35 @@
|
| //% const KEY_TYPE KisP##kKeys[] = { KEY1, KEY2 };
|
| //% const VALUE_TYPE k##VNAME$u##s[] = { VAL1, VAL2 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s)];
|
| //% XCTAssertNotNil(dict);
|
| //% XCTAssertEqual(dict.count, 2U);
|
| -//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| +//%DECLARE_VALUE_STORAGE##VHELPER(VALUE_TYPE, VNAME)TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| //%
|
| -//% [dict set##VNAME$u##:VAL2 forKey:KEY1];
|
| +//% [dict set##VALUE_NAME##:VAL2 forKey:KEY1];
|
| //% XCTAssertEqual(dict.count, 2U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| //%
|
| -//% [dict set##VNAME$u##:VAL1 forKey:KEY2];
|
| +//% [dict set##VALUE_NAME##:VAL1 forKey:KEY2];
|
| //% XCTAssertEqual(dict.count, 2U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL2)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL1)
|
| //%
|
| //% const KEY_TYPE KisP##kKeys2[] = { KEY2, KEY1 };
|
| //% const VALUE_TYPE k##VNAME$u##s2[] = { VAL2, VAL1 };
|
| //% DICTIONARY_CLASS_DECL##VHELPER(KEY_NAME, VALUE_NAME, VALUE_TYPE) *dict2 =
|
| -//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VNAME$u##s:k##VNAME$u##s2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## forKeys:kKeys2
|
| -//% KEY_NAME$S VALUE_NAME$S ##VNAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| +//% [[GPB##KEY_NAME##VALUE_NAME##Dictionary alloc] initWith##VALUE_NAME##s:k##VNAME$u##s2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## forKeys:kKeys2
|
| +//% KEY_NAME$S VALUE_NAME$S ##VALUE_NAME$S## count:GPBARRAYSIZE(k##VNAME$u##s2)];
|
| //% XCTAssertNotNil(dict2);
|
| //% [dict addEntriesFromDictionary:dict2];
|
| //% XCTAssertEqual(dict.count, 2U);
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY1, VAL1)
|
| -//%TEST_VALUE##VHELPER(dict, VNAME, KEY2, VAL2)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY1, VAL1)
|
| +//%TEST_VALUE##VHELPER(VALUE_NAME, dict, VNAME, KEY2, VAL2)
|
| //%
|
| //% [dict2 release];
|
| //% [dict release];
|
|
|