diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/005685CD-39E8-4349-9391-29C024CAFA66.plist b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/005685CD-39E8-4349-9391-29C024CAFA66.plist
new file mode 100644
index 00000000..52932c83
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/005685CD-39E8-4349-9391-29C024CAFA66.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ classNames
+
+ RFSerializationPerformanceTest
+
+ testRFAnnotatedCoderSerialization
+
+ com.apple.XCTPerformanceMetric_WallClockTime
+
+ baselineAverage
+ 0.14
+ baselineIntegrationDisplayName
+ Local Baseline
+
+
+
+
+
+
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/2A4D30AA-9FD3-40C5-889B-4C165665B70C.plist b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/2A4D30AA-9FD3-40C5-889B-4C165665B70C.plist
new file mode 100644
index 00000000..518406d4
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/2A4D30AA-9FD3-40C5-889B-4C165665B70C.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ classNames
+
+ performanceMetricIdentifiers
+
+
+
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/41EC6FFF-D2C3-4C78-96EA-274EB074820A.plist b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/41EC6FFF-D2C3-4C78-96EA-274EB074820A.plist
new file mode 100644
index 00000000..2f5383db
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/41EC6FFF-D2C3-4C78-96EA-274EB074820A.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ classNames
+
+ ReflectionPerformanceTests
+
+ testPerformanceReflection
+
+ com.apple.XCTPerformanceMetric_WallClockTime
+
+ baselineAverage
+ 0.73000001907348633
+ baselineIntegrationDisplayName
+ Local Baseline
+ maxPercentRelativeStandardDeviation
+ 10
+
+
+
+
+ performanceMetricIdentifiers
+
+
+
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/Info.plist b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/Info.plist
new file mode 100644
index 00000000..fb738a23
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest.xcodeproj/xcshareddata/xcbaselines/83EACEF618EC251500A8CC31.xcbaseline/Info.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ runDestinationsByUUID
+
+ 005685CD-39E8-4349-9391-29C024CAFA66
+
+ localComputer
+
+ busSpeedInMHz
+ 100
+ cpuCount
+ 1
+ cpuKind
+ Intel Core i5
+ cpuSpeedInMHz
+ 2500
+ logicalCPUCoresPerPackage
+ 4
+ modelCode
+ Macmini5,2
+ physicalCPUCoresPerPackage
+ 2
+ platformIdentifier
+ com.apple.platform.macosx
+
+ targetArchitecture
+ i386
+ targetDevice
+
+ modelCode
+ iPhone4,1
+ platformIdentifier
+ com.apple.platform.iphonesimulator
+
+
+ 2A4D30AA-9FD3-40C5-889B-4C165665B70C
+
+ localComputer
+
+ busSpeedInMHz
+ 100
+ cpuCount
+ 1
+ cpuKind
+ Intel Core i5
+ cpuSpeedInMHz
+ 2500
+ logicalCPUCoresPerPackage
+ 4
+ modelCode
+ Macmini5,2
+ physicalCPUCoresPerPackage
+ 2
+ platformIdentifier
+ com.apple.platform.macosx
+
+ targetArchitecture
+ i386
+ targetDevice
+
+ modelCode
+ iPhone5,1
+ platformIdentifier
+ com.apple.platform.iphonesimulator
+
+
+ 41EC6FFF-D2C3-4C78-96EA-274EB074820A
+
+ localComputer
+
+ busSpeedInMHz
+ 100
+ cpuCount
+ 1
+ cpuKind
+ Intel Core i5
+ cpuSpeedInMHz
+ 2500
+ logicalCPUCoresPerPackage
+ 4
+ modelCode
+ Macmini5,2
+ physicalCPUCoresPerPackage
+ 2
+ platformIdentifier
+ com.apple.platform.macosx
+
+ targetArchitecture
+ i386
+ targetDevice
+
+ modelCode
+ iPad2,1
+ platformIdentifier
+ com.apple.platform.iphonesimulator
+
+
+
+
+
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AppDelegate.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AppDelegate.h
deleted file mode 100644
index ca1f3d89..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AppDelegate.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// AppDelegate.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-
-@interface AppDelegate : UIResponder
-
-@property (strong, nonatomic) UIWindow *window;
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AppDelegate.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AppDelegate.m
deleted file mode 100644
index bcf4c4c4..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AppDelegate.m
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// AppDelegate.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "AppDelegate.h"
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-{
- // Override point for customization after application launch.
- return YES;
-}
-
-- (void)applicationWillResignActive:(UIApplication *)application
-{
- // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
- // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
-}
-
-- (void)applicationDidEnterBackground:(UIApplication *)application
-{
- // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
- // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
-}
-
-- (void)applicationWillEnterForeground:(UIApplication *)application
-{
- // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
-}
-
-- (void)applicationDidBecomeActive:(UIApplication *)application
-{
- // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
-}
-
-- (void)applicationWillTerminate:(UIApplication *)application
-{
- // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTest.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTest.h
deleted file mode 100644
index c5598b81..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTest.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// AttributeTest.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "AttributeTestingParameters.h"
-#import "AttributeTestResult.h"
-
-
-@interface AttributeTest : NSObject
-
-@property (nonatomic) NSSet *classes;
-@property (nonatomic) AttributeTestingParameters *params;
-
-- (AttributeTestResult *)runTest;
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTest.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTest.m
deleted file mode 100644
index bbdb6d0f..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTest.m
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// AttributeTest.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-#import
-#import "AttributeTest.h"
-#import "Functions.h"
-
-extern uint64_t dispatch_benchmark(size_t count, void (^block)(void));
-
-@implementation AttributeTest
-
-- (AttributeTestResult *)runTest {
- AttributeTestResult *result = [[AttributeTestResult alloc] init];
-
- size_t numberOfIteration = 1000;
- uint64_t retrievingClassAttributesTime = dispatch_benchmark(numberOfIteration, ^{
- for (Class class in self.classes) {
- if ([[class RF_attributesForClass] count] != self.params.numberOfClassAttributes) {
- NSLog(@"Error retrieving attributes - %@", [class RF_attributesForClass]);
- }
- }
- });
- result.retrievingClassAttributes = retrievingClassAttributesTime;
-
- uint64_t retrievingPropertyAttributesTime = dispatch_benchmark(numberOfIteration, ^{
- for (Class class in self.classes) {
- for (RFPropertyInfo *property in [class RF_properties]) {
- if ([[property attributes] count] != self.params.numberOfPropertyAttributes) {
- NSLog(@"Error retrieving attributes");
- }
- }
- }
- });
- result.retrievingPropertyAttributes = retrievingPropertyAttributesTime;
-
- uint64_t retrievingMethodAttributesTime = dispatch_benchmark(numberOfIteration, ^{
- for (Class class in self.classes) {
- for (RFMethodInfo *method in [class RF_methods]) {
- if ([[method attributes] count] != self.params.numberOfMethodAttributes) {
- NSLog(@"Error retrieving attributes");
- }
- }
- [class RF_attributesForClass];
- }
- });
- result.retrievingMethodAttributes = retrievingMethodAttributesTime;
-
- uint64_t retrievingIvarAttributesTime = dispatch_benchmark(numberOfIteration, ^{
- for (Class class in self.classes) {
- for (RFIvarInfo *ivar in [class RF_ivars]) {
- if ([[ivar attributes] count] != self.params.numberOfIvarAttributes) {
- NSLog(@"Error retrieving attributes");
- }
- }
- [class RF_attributesForClass];
- }
- });
- result.retrievingIvarAttributes = retrievingIvarAttributesTime;
-
- return result;
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestResult.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestResult.h
deleted file mode 100644
index 1301bbc7..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestResult.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// AttributeTestResult.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-@interface AttributeTestResult : NSObject
-
-@property (nonatomic) uint64_t retrievingClassAttributes;
-@property (nonatomic) uint64_t retrievingMethodAttributes;
-@property (nonatomic) uint64_t retrievingPropertyAttributes;
-@property (nonatomic) uint64_t retrievingIvarAttributes;
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestResult.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestResult.m
deleted file mode 100644
index 07268843..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestResult.m
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// AttributeTestResult.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "AttributeTestResult.h"
-
-@implementation AttributeTestResult
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"Access to attributes:\nClass attributes : %llu\nMethod attributes : %llu\nIvar attributes : %llu\nProperty attributes : %llu", self.retrievingClassAttributes, self.retrievingMethodAttributes, self.retrievingIvarAttributes, self.retrievingPropertyAttributes];
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingFactory.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingFactory.h
deleted file mode 100644
index cf33f3c0..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingFactory.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// AttributeTestingFactory.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-#import
-#import "AttributeTestingParameters.h"
-
-@interface AttributeTestingFactory : NSObject
-
-+ (id)createTestForParameters:(AttributeTestingParameters *)params;
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingFactory.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingFactory.m
deleted file mode 100644
index 554497e8..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingFactory.m
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// AttributeTestingFactory.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-#import "AttributeTestingFactory.h"
-#import "ReflectionTestingFactory.h"
-#import "AttributeTest.h"
-#import "ReflectionTest.h"
-
-
-@implementation AttributeTestingFactory
-
-+ (id)createTestForParameters:(AttributeTestingParameters *)params {
- NSUInteger numberOfClasses = 0;
- NSString *classTemplate = @"Class";
- Class class;
- NSMutableSet *classes = [[NSMutableSet alloc] init];
- while ((class = NSClassFromString([NSString stringWithFormat:@"%@%lu", classTemplate, (unsigned long)numberOfClasses]))) {
- numberOfClasses++;
- [classes addObject:class];
- }
-
- AttributeTest *test = [[AttributeTest alloc] init];
- test.classes = classes;
- test.params = params;
-
- return test;
-}
-
-- (NSUInteger)countNumberOfClassses {
-
- NSUInteger numberOfClasses = 0;
- NSString *classTemplate = @"Class";
- while (NSClassFromString([NSString stringWithFormat:@"%@%lu", classTemplate, (unsigned long)numberOfClasses])) {
- numberOfClasses++;
- }
-
- return numberOfClasses;
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingParameters.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingParameters.h
deleted file mode 100644
index 2b226a54..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingParameters.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// AttributeTestingParameters.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "ReflectionTestingParameters.h"
-
-
-@interface AttributeTestingParameters : ReflectionTestingParameters
-
-@property (nonatomic) NSUInteger numberOfClassAttributes;
-@property (nonatomic) NSUInteger numberOfPropertyAttributes;
-@property (nonatomic) NSUInteger numberOfMethodAttributes;
-@property (nonatomic) NSUInteger numberOfIvarAttributes;
-
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingParameters.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingParameters.m
deleted file mode 100644
index 41384fd9..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeTestingParameters.m
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// AttributeTestingParameters.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-#import "AttributeTestingParameters.h"
-
-@implementation AttributeTestingParameters
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeViewController.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeViewController.h
deleted file mode 100644
index 0232b1d8..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeViewController.h
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// AttributeViewController.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-
-@interface AttributeViewController : UIViewController
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeViewController.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeViewController.m
deleted file mode 100644
index d1d9df95..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/AttributeViewController.m
+++ /dev/null
@@ -1,211 +0,0 @@
-//
-// AttributeViewController.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-#import
-#import "AttributeViewController.h"
-#import "AttributeTestingFactory.h"
-#import "AttributeTest.h"
-
-@interface AttributeViewController ()
-
-@property (weak, nonatomic) IBOutlet UITextField *numberOfClasses;
-@property (weak, nonatomic) IBOutlet UITextField *numberOfClassAttributes;
-@property (weak, nonatomic) IBOutlet UITextField *numberOfProperties;
-@property (weak, nonatomic) IBOutlet UITextField *numberOfPropertyAttributes;
-@property (weak, nonatomic) IBOutlet UITextField *numberOfMethods;
-@property (weak, nonatomic) IBOutlet UITextField *numberOfMethodAttributes;
-@property (weak, nonatomic) IBOutlet UITextField *numberOfIvars;
-@property (weak, nonatomic) IBOutlet UITextField *numberOfIvarAttributes;
-
-@end
-
-@implementation AttributeViewController
-
-- (void)viewDidLoad {
- [super viewDidLoad];
-
- self.numberOfClassAttributes.text = [@([self countNumberOfClasssAttributes]) stringValue];
- self.numberOfClasses.text = [@([self countNumberOfClassses]) stringValue];
- self.numberOfMethodAttributes.text = [@([self countNumberOfMethodAttributes]) stringValue];
- self.numberOfMethods.text = [@([self countNumberOfMethods]) stringValue];
- self.numberOfIvarAttributes.text = [@([self countNumberOfIvarAttributes]) stringValue];
- self.numberOfIvars.text = [@([self countNumberOfIvars]) stringValue];
- self.numberOfPropertyAttributes.text = [@([self countNumberOfPropertyAttributes]) stringValue];
- self.numberOfProperties.text = [@([self countNumberOfProperties]) stringValue];
-}
-
-- (IBAction)runTest:(id)sender {
- AttributeTestingParameters *params = [self gatherParameters];
-
- AttributeTest *test = [AttributeTestingFactory createTestForParameters:params];
- AttributeTestResult *result = [test runTest];
- NSLog(@"\n%@\n\n", [result description]);
-
- // Show to user
- UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Results" message:[result description] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
- [alertView show];
-}
-
-- (AttributeTestingParameters *)gatherParameters {
- AttributeTestingParameters *params = [[AttributeTestingParameters alloc] init];
-
- params.numberOfClasses = [self.numberOfClasses.text integerValue];
- params.numberOfClassAttributes = [self.numberOfClassAttributes.text integerValue];
- params.numberOfProperties = [self.numberOfProperties.text integerValue];
- params.numberOfPropertyAttributes = [self.numberOfPropertyAttributes.text integerValue];
- params.numberOfMethods = [self.numberOfMethods.text integerValue];
- params.numberOfMethodAttributes = [self.numberOfMethodAttributes.text integerValue];
- params.numberOfIvars = [self.numberOfIvars.text integerValue];
- params.numberOfIvarAttributes = [self.numberOfIvarAttributes.text integerValue];
-
- return params;
-}
-
-- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
- [self.view endEditing:YES];
-}
-
-
-static NSString * const kAttributeClassTemplate = @"AttributeClass";
-
-- (NSUInteger)countNumberOfClassses {
-
- NSUInteger numberOfClasses = 0;
-
- NSString *classTemplate = @"Class";
-
- while (NSClassFromString([NSString stringWithFormat:@"%@%lu", classTemplate, (unsigned long)numberOfClasses])) {
- numberOfClasses++;
- }
-
- return numberOfClasses;
-}
-
-- (NSUInteger)countNumberOfClasssAttributes {
-
- NSUInteger numberOfClassAttributes = 0;
-
- Class class = NSClassFromString(@"Class0");
-
- NSString *attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfClassAttributes];
- Class attributeClass = NSClassFromString(attributeClassString);
- while (attributeClass && [class RF_attributeForClassWithAttributeType:attributeClass]) {
- numberOfClassAttributes++;
- attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfClassAttributes];
- attributeClass = NSClassFromString(attributeClassString);
- }
-
- return numberOfClassAttributes;
-}
-
-- (NSUInteger)countNumberOfProperties {
- Class class = NSClassFromString(@"Class0");
- return [[class RF_properties] count];
-}
-
-- (NSUInteger)countNumberOfPropertyAttributes {
-
- NSUInteger numberOfPropertyAttributes = 0;
-
- Class class = NSClassFromString(@"Class0");
-
- NSString *attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfPropertyAttributes];
- Class attributeClass = NSClassFromString(attributeClassString);
- while (attributeClass && [class RF_attributeForProperty:@"property0" withAttributeType:attributeClass]) {
- numberOfPropertyAttributes++;
- attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfPropertyAttributes];
- attributeClass = NSClassFromString(attributeClassString);
- }
-
- return numberOfPropertyAttributes;
-}
-
-- (NSUInteger)countNumberOfMethods {
- Class class = NSClassFromString(@"Class0");
- NSUInteger numberOfMethods = 0;
- for (RFMethodInfo *methodInfo in [class RF_methods]) {
- if ([methodInfo.name hasPrefix:@"method"]) {
- numberOfMethods++;
- }
- }
- return numberOfMethods;
-}
-
-- (NSUInteger)countNumberOfMethodAttributes {
-
- NSUInteger numberOfMethodAttributes = 0;
-
- Class class = NSClassFromString(@"Class0");
-
- NSString *attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfMethodAttributes];
- Class attributeClass = NSClassFromString(attributeClassString);
- while (attributeClass && [class RF_attributeForMethod:@"method0" withAttributeType:attributeClass]) {
- numberOfMethodAttributes++;
- attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfMethodAttributes];
- attributeClass = NSClassFromString(attributeClassString);
- }
-
- return numberOfMethodAttributes;
-}
-
-- (NSUInteger)countNumberOfIvars {
- Class class = NSClassFromString(@"Class0");
- NSUInteger numberOfIvars = 0;
- for (RFIvarInfo *ivarInfo in [class RF_ivars]) {
- if ([ivarInfo.name hasPrefix:@"_ivar"]) {
- numberOfIvars++;
- }
- }
- return numberOfIvars;
-}
-
-- (NSUInteger)countNumberOfIvarAttributes {
-
- NSUInteger numberOfIvarAttributes = 0;
-
- Class class = NSClassFromString(@"Class0");
-
- NSString *attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfIvarAttributes];
- Class attributeClass = NSClassFromString(attributeClassString);
- while (attributeClass && [class RF_attributeForIvar:@"_ivar0" withAttributeType:attributeClass]) {
- numberOfIvarAttributes++;
- attributeClassString = [NSString stringWithFormat:@"%@%lu", kAttributeClassTemplate, (unsigned long)numberOfIvarAttributes];
- attributeClass = NSClassFromString(attributeClassString);
- }
-
- return numberOfIvarAttributes;
-}
-
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Base.lproj/Main.storyboard b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Base.lproj/Main.storyboard
deleted file mode 100644
index 2a99e1ca..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Base.lproj/Main.storyboard
+++ /dev/null
@@ -1,615 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Functions.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Functions.h
deleted file mode 100644
index 09ad4ec9..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Functions.h
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-// Functions.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#include
-#include
-
-static const double ElapsedNanoseconds(const uint64_t startTime, const uint64_t endTime) __attribute__((unused));
-
-// http://stackoverflow.com/questions/2129794/how-to-log-a-methods-execution-time-exactly-in-milliseconds
-static const double ElapsedNanoseconds(const uint64_t startTime, const uint64_t endTime) {
- const uint64_t elapsedMTU = endTime - startTime;
-
- mach_timebase_info_data_t info;
- if (mach_timebase_info(&info)) {
- NSLog(@"Error of timer");
- }
-
- const double elapsedNS = (double)elapsedMTU * (double)info.numer / (double)info.denom;
-
- return elapsedNS;
-}
\ No newline at end of file
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Info.plist b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Info.plist
deleted file mode 100644
index 2cbddc6b..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Info.plist
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
- BuildMachineOSBuild
- 13D65
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- AttributedClassGenerator
- CFBundleIdentifier
- EPAM-Systems.AttributedClassGenerator
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- AttributedClassGenerator
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
- DTCompiler
- com.apple.compilers.llvm.clang.1_0
- DTPlatformBuild
- 5B1008
- DTPlatformVersion
- GM
- DTSDKBuild
- 13C64
- DTSDKName
- macosx10.9
- DTXcode
- 0511
- DTXcodeBuild
- 5B1008
- LSApplicationCategoryType
- public.app-category.developer-tools
- LSMinimumSystemVersion
- 10.9
- NSHumanReadableCopyright
- Copyright © 2014 Yuru Taustahuzau. All rights reserved.
- NSMainNibFile
- MainMenu
- NSPrincipalClass
- NSApplication
-
-
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/MacOS/AttributedClassGenerator b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/MacOS/AttributedClassGenerator
deleted file mode 100755
index bec86c42..00000000
Binary files a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/MacOS/AttributedClassGenerator and /dev/null differ
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/PkgInfo b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/PkgInfo
deleted file mode 100644
index bd04210f..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-APPL????
\ No newline at end of file
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/Assets.car b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/Assets.car
deleted file mode 100644
index 771d3871..00000000
Binary files a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/Assets.car and /dev/null differ
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/Base.lproj/MainMenu.nib b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/Base.lproj/MainMenu.nib
deleted file mode 100644
index 4793bc87..00000000
Binary files a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/Base.lproj/MainMenu.nib and /dev/null differ
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/en.lproj/Credits.rtf b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/en.lproj/Credits.rtf
deleted file mode 100644
index 46576ef2..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/en.lproj/Credits.rtf
+++ /dev/null
@@ -1,29 +0,0 @@
-{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\paperw9840\paperh8400
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
-
-\f0\b\fs24 \cf0 Engineering:
-\b0 \
- Some people\
-\
-
-\b Human Interface Design:
-\b0 \
- Some other people\
-\
-
-\b Testing:
-\b0 \
- Hopefully not nobody\
-\
-
-\b Documentation:
-\b0 \
- Whoever\
-\
-
-\b With special thanks to:
-\b0 \
- Mom\
-}
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/en.lproj/InfoPlist.strings b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/en.lproj/InfoPlist.strings
deleted file mode 100644
index 5e45963c..00000000
Binary files a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributedClassGenerator.app/Contents/Resources/en.lproj/InfoPlist.strings and /dev/null differ
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Images.xcassets/AppIcon.appiconset/Contents.json b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index a396706d..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Images.xcassets/LaunchImage.launchimage/Contents.json b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Images.xcassets/LaunchImage.launchimage/Contents.json
deleted file mode 100644
index c79ebd3a..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Images.xcassets/LaunchImage.launchimage/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "subtype" : "retina4",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/MainViewController.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/MainViewController.h
deleted file mode 100644
index d1c45837..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/MainViewController.h
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// StartViewController.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-
-@interface MainViewController : UIViewController
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/MainViewController.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/MainViewController.m
deleted file mode 100644
index 5a628848..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/MainViewController.m
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// ViewController.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "MainViewController.h"
-#import "AttributeViewController.h"
-#import "ReflectionViewController.h"
-
-
-@interface MainViewController ()
-
-@property (nonatomic, strong) ReflectionViewController *reflectionViewController;
-@property (nonatomic, strong) AttributeViewController *attributeViewController;
-@property (nonatomic, strong) UIViewController *currentViewController;
-
-@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentedControl;
-@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
-
-- (IBAction)changeTestView:(id)sender;
-@end
-
-@implementation MainViewController
-
-
-#pragma mark - Initialization
-
-- (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
-
- [self showRelatedView];
-}
-
-- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
- [self.view endEditing:YES];
-}
-
-
-#pragma mark - Logic for test selection
-
-static const NSInteger kSegmentIndexReflection = 0;
-static const NSInteger kSegmentIndexAttribute = 1;
-
-- (void)showRelatedView {
- [self.currentViewController willMoveToParentViewController:self.currentViewController];
- [self.currentViewController.view removeFromSuperview];
-
- if (self.segmentedControl.selectedSegmentIndex == kSegmentIndexReflection) {
- self.currentViewController = self.reflectionViewController;
- CGRect frame = self.reflectionViewController.view.frame;
- frame.size = CGSizeMake(320.0f, 712.0f);
- self.reflectionViewController.view.frame = frame;
- }
- else if (self.segmentedControl.selectedSegmentIndex == kSegmentIndexAttribute) {
- self.currentViewController = self.attributeViewController;
- CGRect frame = self.attributeViewController.view.frame;
- frame.size = CGSizeMake(320.0f, 520.0f);
- self.attributeViewController.view.frame = frame;
- }
-
- [self.scrollView addSubview:self.currentViewController.view];
- [self.currentViewController didMoveToParentViewController:self];
- self.scrollView.contentSize = self.currentViewController.view.frame.size;
-}
-
-- (IBAction)changeTestView:(id)sender {
- [self showRelatedView];
-}
-
-
-#pragma mark - On demand getters
-
-- (ReflectionViewController *)reflectionViewController {
- if (!_reflectionViewController) {
- _reflectionViewController = [self.storyboard instantiateViewControllerWithIdentifier:NSStringFromClass([ReflectionViewController class])];
- }
-
- return _reflectionViewController;
-}
-
-- (AttributeViewController *)attributeViewController {
- if (!_attributeViewController) {
- _attributeViewController = [self.storyboard instantiateViewControllerWithIdentifier:NSStringFromClass([AttributeViewController class])];
- }
-
- return _attributeViewController;
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest-Info.plist b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest-Info.plist
deleted file mode 100644
index d8624036..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest-Info.plist
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- ${PRODUCT_NAME}
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- com.epam.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- UIMainStoryboardFile
- Main
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTest.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTest.h
deleted file mode 100644
index b150e491..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTest.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// ReflectionTest.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "ReflectionTestResult.h"
-
-@class ReflectionTestingParameters;
-
-
-@interface ReflectionTest : NSObject
-
-@property (nonatomic) NSSet *classes;
-@property (nonatomic) ReflectionTestingParameters *params;
-
-- (ReflectionTestResult *)runTest;
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTest.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTest.m
deleted file mode 100644
index 9ddfc07d..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTest.m
+++ /dev/null
@@ -1,135 +0,0 @@
-//
-// ReflectionTest.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-#import "Functions.h"
-#import "ReflectionTest.h"
-#import "ReflectionTestingParameters.h"
-
-
-@implementation ReflectionTest
-
-- (ReflectionTestResult *)runTest {
- ReflectionTestResult *result = [[ReflectionTestResult alloc] init];
-
- for (Class class in self.classes) {
- // Properties
- const uint64_t propertyStartTime = mach_absolute_time();
- NSArray *properties = [class RF_properties];
- const uint64_t propertyEndTime = mach_absolute_time();
- result.propertiesGenerationTime = ElapsedNanoseconds(propertyStartTime, propertyEndTime);
-
- result.accessPropertiesTime = [self accessToProperties:properties];
-
- // Methods
- const uint64_t methodStartTime = mach_absolute_time();
- NSArray *methods = [class RF_methods];
- const uint64_t methodEndTime = mach_absolute_time();
- result.methodsGenerationTime = ElapsedNanoseconds(methodStartTime, methodEndTime);
-
- result.accessMethodsTime = [self accessToMethods:methods];
-
- // Ivars
- const uint64_t ivarStartTime = mach_absolute_time();
- NSArray *ivars = [class RF_ivars];
- const uint64_t ivarEndTime = mach_absolute_time();
- result.ivarsGenerationTime = ElapsedNanoseconds(ivarStartTime, ivarEndTime);
-
- result.accessIvarsTime = [self accessToIvars:ivars];
- }
-
-
- return result;
-}
-
-- (const double)accessToProperties:(NSArray *)properties {
- id result;
- BOOL isResult;
- const uint64_t startTime = mach_absolute_time();
- for (RFPropertyInfo *properyInfo in properties) {
- if (self.params.accessToPropertyName) {
- result = properyInfo.propertyName;
- }
- if (self.params.accessToPropertySpecifiers) {
- isResult = properyInfo.isDynamic;
- isResult = properyInfo.isWeak;
- isResult = properyInfo.isNonatomic;
- isResult = properyInfo.isReadonly;
- isResult = properyInfo.isStrong;
- isResult = properyInfo.isCopied;
- }
- if (self.params.accessToPropertyAttributes) {
- isResult = properyInfo.isPrimitive;
- result = properyInfo.typeName;
- }
- if (self.params.accessToPropertyTypeClass) {
- result = properyInfo.typeClass;
- }
- }
- const uint64_t endTime = mach_absolute_time();
- return ElapsedNanoseconds(startTime, endTime);
-}
-
-- (const double)accessToMethods:(NSArray *)methods {
- id result;
- NSUInteger uintResult;
- const uint64_t startTime = mach_absolute_time();
- for (RFMethodInfo *method in methods) {
- if (self.params.accessToMethodArguments) {
- uintResult = method.numberOfArguments;
- }
- if (self.params.accessToMethodReturnType) {
- result = method.returnType;
- }
- }
- const uint64_t endTime = mach_absolute_time();
- return ElapsedNanoseconds(startTime, endTime);
-}
-
-- (const double)accessToIvars:(NSArray *)ivars {
- id result;
- BOOL isResult;
- const uint64_t startTime = mach_absolute_time();
- for (RFIvarInfo *ivar in ivars) {
- if (self.params.accessToIvarPrimitiveCheck) {
- isResult = ivar.isPrimitive;
- }
- if (self.params.accessToIvarTypeName) {
- result = ivar.typeName;
- }
- }
- const uint64_t endTime = mach_absolute_time();
- return ElapsedNanoseconds(startTime, endTime);
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestResult.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestResult.h
deleted file mode 100644
index 21e2aa69..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestResult.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// ReflectionTestResult.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-@interface ReflectionTestResult : NSObject
-
-@property (nonatomic) double propertiesGenerationTime;
-@property (nonatomic) double accessPropertiesTime;
-
-@property (nonatomic) double methodsGenerationTime;
-@property (nonatomic) double accessMethodsTime;
-
-@property (nonatomic) double ivarsGenerationTime;
-@property (nonatomic) double accessIvarsTime;
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestResult.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestResult.m
deleted file mode 100644
index b48287ba..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestResult.m
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// ReflectionTestResult.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-#import "ReflectionTestResult.h"
-
-@implementation ReflectionTestResult
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"Generation time:\nProperties : %lf\nMethods : %lf\nIvars : %lf\n\nAccess Time:\nProperties : %lf\nMethods : %lf\nIvars : %lf\n\nTotalTime : %lf", _propertiesGenerationTime, _methodsGenerationTime, _ivarsGenerationTime, _accessPropertiesTime, _accessMethodsTime, _accessIvarsTime, _propertiesGenerationTime + _methodsGenerationTime + _ivarsGenerationTime + _accessPropertiesTime + _accessMethodsTime + _accessIvarsTime];
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingFactory.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingFactory.h
deleted file mode 100644
index aff18be6..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingFactory.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// ReflectionTestingFactory.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "ReflectionTestingParameters.h"
-
-
-@interface ReflectionTestingFactory : NSObject
-
-+ (id)createTestForParameters:(ReflectionTestingParameters *)params;
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingFactory.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingFactory.m
deleted file mode 100644
index 7814d067..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingFactory.m
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// ReflectionTestingFactory.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-#import "ReflectionTestingFactory.h"
-#import "ReflectionTestingParameters.h"
-#import "ReflectionTest.h"
-
-
-@implementation ReflectionTestingFactory
-
-+ (id)createTestForParameters:(ReflectionTestingParameters *)params {
- NSMutableSet *classes = [[NSMutableSet alloc] initWithCapacity:params.numberOfClasses];
- for (int idx = 0; idx < params.numberOfClasses; idx++) {
- NSString *className = [kTestClassNamePrefix stringByAppendingString:[@(idx) stringValue]];
- Class createdClass = objc_allocateClassPair([NSObject class], [className UTF8String], 0);
- [self configureClass:createdClass withParameters:params];
- [classes addObject:createdClass];
-
- }
-
- ReflectionTest *test = [[ReflectionTest alloc] init];
- test.classes = classes;
- test.params = params;
-
- return test;
-}
-
-+ (void)configureClass:(Class)class withParameters:(ReflectionTestingParameters *)params {
- [self addMethodsToClass:class withParameters:params];
- [self addIvarsToClass:class withParameters:params];
- [self addPropertiesToClass:class withParameters:params];
-}
-
-+ (void)addMethodsToClass:(Class)class withParameters:(ReflectionTestingParameters *)params {
- Method description = class_getInstanceMethod([self class], @selector(dummyMethod:));
- const char *typeEncoding = method_getTypeEncoding(description);
-
- for (int idx = 0; idx < params.numberOfMethods; idx++) {
- NSString *methodName = [kTestMethodNamePrefix stringByAppendingString:[@(idx) stringValue]];
- class_addMethod(class, NSSelectorFromString(methodName), (IMP)ReturnFive, typeEncoding);
- }
-}
-
-+ (void)addIvarsToClass:(Class)class withParameters:(ReflectionTestingParameters *)params {
- for (int idx = 0; idx < params.numberOfIvars; idx++) {
- NSString *ivarName = [kTestIvarNamePrefix stringByAppendingString:[@(idx) stringValue]];
- if (arc4random() % 2 == 0) {
- class_addIvar(class, [ivarName UTF8String], sizeof(id), rint(log2(sizeof(id))), @encode(id));
- }
- else {
- class_addIvar(class, [ivarName UTF8String], sizeof(int), rint(log2(sizeof(int))), @encode(int));
- }
- }
-}
-
-+ (void)addPropertiesToClass:(Class)class withParameters:(ReflectionTestingParameters *)params {
- // http://stackoverflow.com/questions/7819092/how-can-i-add-properties-to-an-object-at-runtime
- for (int idx = 0; idx < params.numberOfProperties; idx++) {
- objc_property_attribute_t type = { "T", "@\"NSString\"" };
- objc_property_attribute_t ownership = { "C", "" };
- NSString *ivarName = [kTestIvarNamePrefix stringByAppendingString:@"0"];
- objc_property_attribute_t backingIvar = { "V", [ivarName UTF8String]};
- objc_property_attribute_t attrs[] = { type, ownership, backingIvar };
- NSString *propertyName = [kTestPropertyNamePrefix stringByAppendingString:[@(idx) stringValue]];
- class_addProperty(class, [propertyName UTF8String], attrs, 3);
-// class_addMethod(class, @selector(name), (IMP)nameGetter, "@@:");
-// class_addMethod(class, @selector(setName:), (IMP)nameSetter, "v@:@");
- }
-}
-
-
-#pragma mark - Creating method utility
-
-- (NSUInteger)dummyMethod:(NSNumber *)number {
- return 0;
-}
-
-static NSUInteger ReturnFive(id self, SEL _cmd) {
- return 5;
-}
-
-//NSString *nameGetter(id self, SEL _cmd) {
-// NSString *ivarName = [kTestIvarNamePrefix stringByAppendingString:@"0"];
-// Ivar ivar = class_getInstanceVariable([self class], [ivarName UTF8String]);
-// return object_getIvar(self, ivar);
-//}
-//
-//void nameSetter(id self, SEL _cmd, NSString *newName) {
-// NSString *ivarName = [kTestIvarNamePrefix stringByAppendingString:@"0"];
-// Ivar ivar = class_getInstanceVariable([self class], [ivarName UTF8String]);
-// id oldName = object_getIvar(self, ivar);
-// if (oldName != newName) object_setIvar(self, ivar, [newName copy]);
-//}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionViewController.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionViewController.h
deleted file mode 100644
index 746ad396..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionViewController.h
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// ReflectionViewController.h
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import
-
-@interface ReflectionViewController : UIViewController
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionViewController.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionViewController.m
deleted file mode 100644
index 58200e4b..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionViewController.m
+++ /dev/null
@@ -1,100 +0,0 @@
-//
-// ReflectionViewController.m
-// ObjCAttrPerformanceTest
-//
-// Copyright (c) 2014 EPAM Systems, Inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of the EPAM Systems, Inc. nor the names of its contributors
-// may be used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// See the NOTICE file and the LICENSE file distributed with this work
-// for additional information regarding copyright ownership and licensing
-
-
-#import "ReflectionViewController.h"
-#import "ReflectionTestingFactory.h"
-#import "ReflectionTest.h"
-
-
-@interface ReflectionViewController ()
-
-@property (weak, nonatomic) IBOutlet UITextField *numberOfClasses;
-
-@property (weak, nonatomic) IBOutlet UITextField *numberOfProperties;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToPropertyName;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToPropertyAttributes;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToPropertySpecifiers;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToPropertyTypeClass;
-
-@property (weak, nonatomic) IBOutlet UITextField *numberOfMethods;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToMethodArguments;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToMethodReturnType;
-
-@property (weak, nonatomic) IBOutlet UITextField *numberOfIvars;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToIvarPrimitive;
-@property (weak, nonatomic) IBOutlet UISwitch *accessToIvarTypeName;
-
-@end
-
-@implementation ReflectionViewController
-
-- (IBAction)runTest:(id)sender {
-
- ReflectionTestingParameters *params = [self gatherParameters];
-
- ReflectionTest *test = [ReflectionTestingFactory createTestForParameters:params];
- ReflectionTestResult *result = [test runTest];
- NSLog(@"\n%@\n\n", [result description]);
-
- // Show to user
- UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Results" message:[result description] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
- [alertView show];
-}
-
-- (ReflectionTestingParameters *)gatherParameters {
- ReflectionTestingParameters *params = [[ReflectionTestingParameters alloc] init];
-
- params.numberOfClasses = [self.numberOfClasses.text integerValue];
-
- params.numberOfProperties = [self.numberOfProperties.text integerValue];
- params.accessToPropertyName = [self.accessToPropertyName isOn];
- params.accessToPropertyAttributes = [self.accessToPropertyAttributes isOn];
- params.accessToPropertySpecifiers = [self.accessToPropertySpecifiers isOn];
- params.accessToPropertyTypeClass = [self.accessToPropertyTypeClass isOn];
-
- params.numberOfMethods = [self.numberOfMethods.text integerValue];
- params.accessToMethodArguments = [self.accessToMethodArguments isOn];
- params.accessToMethodReturnType = [self.accessToMethodReturnType isOn];
-
- params.numberOfIvars = [self.numberOfIvars.text integerValue];
- params.accessToIvarTypeName = [self.accessToIvarTypeName isOn];
- params.accessToIvarPrimitiveCheck = [self.accessToIvarPrimitive isOn];
-
- return params;
-}
-
-- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
- [self.view endEditing:YES];
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/en.lproj/InfoPlist.strings b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/en.lproj/InfoPlist.strings
deleted file mode 100644
index 477b28ff..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/main.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/main.m
deleted file mode 100644
index 429e4892..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/main.m
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// main.m
-// ObjCAttrPerformanceTest
-//
-// Created by Yuru Taustahuzau on 4/2/14.
-// Copyright (c) 2014 EPAM Systems. All rights reserved.
-//
-
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char * argv[])
-{
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/AttributesPerformanceTests.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/AttributesPerformanceTests.m
new file mode 100644
index 00000000..fcab0430
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/AttributesPerformanceTests.m
@@ -0,0 +1,40 @@
+//
+// AttributesPerformanceTests.m
+// ObjCAttrPerformanceTest
+//
+// Created by Alexander Dorofeev on 16/09/14.
+// Copyright (c) 2014 EPAM Systems. All rights reserved.
+//
+
+#import
+#import
+
+@interface AttributesPerformanceTests : XCTestCase
+
+@end
+
+@implementation AttributesPerformanceTests
+
+- (void)setUp {
+ [super setUp];
+ // Put setup code here. This method is called before the invocation of each test method in the class.
+}
+
+- (void)tearDown {
+ // Put teardown code here. This method is called after the invocation of each test method in the class.
+ [super tearDown];
+}
+
+- (void)testExample {
+ // This is an example of a functional test case.
+ XCTAssert(YES, @"Pass");
+}
+
+- (void)testPerformanceExample {
+ // This is an example of a performance test case.
+ [self measureBlock:^{
+ // Put the code you want to measure the time of here.
+ }];
+}
+
+@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Constants.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/Constants.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/Constants.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/Constants.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/DeserializationTest.json b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/DeserializationTest.json
new file mode 100644
index 00000000..e69de29b
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/DeserializationTest.xml b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/DeserializationTest.xml
new file mode 100644
index 00000000..e69de29b
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass0.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass0.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass0.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass0.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass0.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass0.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass0.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass0.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass1.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass1.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass1.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass1.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass1.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass1.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass1.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass1.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass2.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass2.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass2.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass2.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass2.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass2.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass2.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass2.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass3.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass3.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass3.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass3.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass3.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass3.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass3.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass3.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass4.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass4.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass4.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass4.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass4.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass4.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass4.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass4.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass5.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass5.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass5.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass5.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass5.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass5.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass5.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass5.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass6.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass6.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass6.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass6.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass6.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass6.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass6.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass6.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass7.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass7.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass7.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass7.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass7.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass7.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass7.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass7.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass8.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass8.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass8.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass8.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass8.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass8.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass8.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass8.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass9.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass9.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass9.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass9.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass9.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass9.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/AttributeClass9.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/AttributeClass9.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class0.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class0.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class0.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class0.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class0.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class0.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class0.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class0.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class1.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class1.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class1.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class1.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class1.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class1.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class1.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class1.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class2.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class2.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class2.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class2.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class2.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class2.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class2.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class2.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class3.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class3.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class3.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class3.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class3.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class3.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class3.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class3.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class4.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class4.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class4.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class4.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class4.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class4.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class4.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class4.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class5.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class5.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class5.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class5.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class5.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class5.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class5.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class5.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class6.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class6.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class6.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class6.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class6.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class6.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class6.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class6.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class7.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class7.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class7.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class7.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class7.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class7.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class7.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class7.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class8.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class8.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class8.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class8.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class8.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class8.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class8.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class8.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class9.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class9.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class9.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class9.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class9.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class9.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/GeneratedFiles/Class9.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/GeneratedFiles/Class9.m
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest-Prefix.pch b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ObjCAttrPerformanceTest-Prefix.pch
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest-Prefix.pch
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ObjCAttrPerformanceTest-Prefix.pch
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ObjCAttrPerformanceTestTests.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ObjCAttrPerformanceTestTests.m
deleted file mode 100644
index acf843ba..00000000
--- a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ObjCAttrPerformanceTestTests.m
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// ObjCAttrPerformanceTestTests.m
-// ObjCAttrPerformanceTestTests
-//
-// Created by Yuru Taustahuzau on 4/2/14.
-// Copyright (c) 2014 EPAM Systems. All rights reserved.
-//
-
-#import
-
-@interface ObjCAttrPerformanceTestTests : XCTestCase
-
-@end
-
-@implementation ObjCAttrPerformanceTestTests
-
-- (void)setUp
-{
- [super setUp];
- // Put setup code here. This method is called before the invocation of each test method in the class.
-}
-
-- (void)tearDown
-{
- // Put teardown code here. This method is called after the invocation of each test method in the class.
- [super tearDown];
-}
-
-- (void)testExample
-{
- XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
-}
-
-@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationPerformanceTest.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationPerformanceTest.m
new file mode 100644
index 00000000..d9e2906a
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationPerformanceTest.m
@@ -0,0 +1,40 @@
+//
+// RFSerializationPerformanceTest.m
+// ObjCAttrPerformanceTest
+//
+// Created by Alexander Dorofeev on 23/09/14.
+// Copyright (c) 2014 EPAM Systems. All rights reserved.
+//
+
+#import
+#import
+
+@interface RFSerializationPerformanceTest : XCTestCase
+
+@end
+
+@implementation RFSerializationPerformanceTest
+
+- (void)setUp {
+ [super setUp];
+ // Put setup code here. This method is called before the invocation of each test method in the class.
+}
+
+- (void)tearDown {
+ // Put teardown code here. This method is called after the invocation of each test method in the class.
+ [super tearDown];
+}
+
+- (void)testExample {
+ // This is an example of a functional test case.
+ XCTAssert(YES, @"Pass");
+}
+
+- (void)testPerformanceExample {
+ // This is an example of a performance test case.
+ [self measureBlock:^{
+ // Put the code you want to measure the time of here.
+ }];
+}
+
+@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationTestObject.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationTestObject.h
new file mode 100644
index 00000000..24598a10
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationTestObject.h
@@ -0,0 +1,67 @@
+//
+// RFSerializationTestObject.h
+// ObjCAttrPerformanceTest
+//
+// Created by Alexander Dorofeev on 25/09/14.
+// Copyright (c) 2014 EPAM Systems. All rights reserved.
+//
+
+#import "RFSerializable.h"
+#import "RFSerializableDate.h"
+#import "RFSerializableBoolean.h"
+#import "RFSerializableCollection.h"
+#import "RFDerived.h"
+
+
+RF_ATTRIBUTE(RFSerializable)
+@interface RFSerializationTestObject : NSObject
+
+@property (strong, nonatomic) NSString *string1;
+
+RF_ATTRIBUTE(RFDerived)
+@property (copy, nonatomic) NSString *string2;
+
+@property (assign, nonatomic) BOOL boolean;
+
+RF_ATTRIBUTE(RFSerializableBoolean, translationValues = @{ @"true": @YES, @"false": @NO } )
+@property (assign, nonatomic) BOOL booleanToTranslateTrue;
+
+RF_ATTRIBUTE(RFSerializableBoolean, translationValues = @{ @"true": @YES, @"false": @NO } )
+@property (assign, nonatomic) BOOL booleanToTranslateFalse;
+
+RF_ATTRIBUTE(RFSerializableBoolean, translationValues = @{ @10000: @YES, @20000: @NO } )
+@property (assign, nonatomic) BOOL booleanToTranslateTrueFromNumber;
+
+RF_ATTRIBUTE(RFSerializableBoolean, translationValues = @{ @10000: @YES, @20000: @NO } )
+@property (assign, nonatomic) BOOL booleanToTranslateFalseFromNumber;
+
+@property (strong, nonatomic) NSArray *strings;
+
+RF_ATTRIBUTE(RFSerializableDate, format = @"dd/MM/yyyy HH:mm:ss Z")
+@property (strong, nonatomic) NSDate *date1;
+
+RF_ATTRIBUTE(RFSerializableDate, format = @"MM.dd.yyyy HH:mm", decodingFormat = @"MM.dd.yyyy HH:mm:ss")
+@property (strong, nonatomic) NSDate *date2;
+
+RF_ATTRIBUTE(RFSerializableDate, unixTimestamp = YES)
+@property (strong, nonatomic) NSDate *unixTimestamp;
+
+@property (strong, nonatomic) RFSerializationTestObject *child;
+
+RF_ATTRIBUTE(RFSerializableCollection, collectionClass = [RFSerializationTestObject class])
+@property (strong, nonatomic) NSArray *subObjects;
+
+RF_ATTRIBUTE(RFSerializableCollection, collectionClass = [RFSerializationTestObject class])
+@property (strong, nonatomic) NSDictionary *subDictionary;
+
+@property (nonatomic) int integer;
+
+@property (nonatomic, strong) NSNumber *number;
+
+@property (nonatomic, copy) NSData *cdata;
+
++ (RFSerializationTestObject *)sampleObject;
++ (RFSerializationTestObject *)bigObject;
+
+@end
+
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationTestObject.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationTestObject.m
new file mode 100644
index 00000000..134d4340
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/RFSerializationTestObject.m
@@ -0,0 +1,125 @@
+//
+// RFSerializationTestObject.m
+// ObjCAttrPerformanceTest
+//
+// Created by Alexander Dorofeev on 25/09/14.
+// Copyright (c) 2014 EPAM Systems. All rights reserved.
+//
+
+#import "RFSerializationTestObject.h"
+#import "RFAttributedXMLCoder.h"
+
+
+static const NSTimeInterval kDateComparisonDelta = 1;
+
+@implementation RFSerializationTestObject
+
+- (BOOL)isEqual:(id)object
+{
+ BOOL result = (object == self);
+
+ do {
+ if (result) break;
+
+ RFSerializationTestObject *pair = [object isKindOfClass:[self class]] ? object : nil;
+ if (!pair) break;
+
+ if (_boolean != pair.boolean) break;
+ if (_integer != pair.integer) break;
+
+ if ((_number != pair.number) && ![_number isEqualToNumber:pair.number]) break;
+
+ if ((_string1 != pair.string1) && ![_string1 isEqualToString:pair.string1]) break;
+ if ((_string2 != pair.string2) && ![_string2 isEqualToString:pair.string2]) break;
+ if ((_date1 != pair.date1) && ([_date1 timeIntervalSinceDate:pair.date1] > kDateComparisonDelta)) break;
+ if ((_date2 != pair.date2) && ([_date2 timeIntervalSinceDate:pair.date2] > kDateComparisonDelta)) break;
+ if ((_unixTimestamp != pair.unixTimestamp) && ![_unixTimestamp isEqualToDate:pair.unixTimestamp]) break;
+
+ if ((_strings != pair.strings) && ![_strings isEqualToArray:pair.strings]) break;
+
+ if ((_subObjects != pair.subObjects) && ![_subObjects isEqualToArray:pair.subObjects]) break;
+ if ((_subDictionary != pair.subDictionary) && ![_subDictionary isEqualToDictionary:pair.subDictionary]) break;
+
+ result = YES;
+
+ } while (0);
+
+ return result;
+}
+
+- (NSUInteger)hash
+{
+ return (NSUInteger)self;
+}
+
++ (RFSerializationTestObject*)sampleObject {
+
+ RFSerializationTestObject *object3 = [[RFSerializationTestObject alloc] init];
+ object3.string1 = @"value31";
+ object3.string2 = @"value32";
+ object3.booleanToTranslateFalse = NO;
+ object3.booleanToTranslateFalseFromNumber = NO;
+ object3.booleanToTranslateTrue = YES;
+ object3.booleanToTranslateTrueFromNumber = YES;
+ object3.integer = 5;
+
+ RFSerializationTestObject *object4 = [[RFSerializationTestObject alloc] init];
+ object4.string2 = @"value42";
+ object4.string1 = @"value41";
+ object4.booleanToTranslateFalse = NO;
+ object4.booleanToTranslateFalseFromNumber = NO;
+ object4.booleanToTranslateTrue = YES;
+ object4.booleanToTranslateTrueFromNumber = YES;
+ object4.number = @(3);
+
+ RFSerializationTestObject *object = [[RFSerializationTestObject alloc] init];
+ object.string1 = @"value1";
+ object.string2 = @"value2";
+ object.strings = @[@"value3", @"value4"];
+ object.boolean = YES;
+ object.subDictionary = @{@"object3" : object3};
+
+ object.child = [[RFSerializationTestObject alloc] init];
+ object.child.boolean = NO;
+
+ object.booleanToTranslateTrue = YES;
+ object.booleanToTranslateFalse = NO;
+ object.booleanToTranslateTrueFromNumber = YES;
+ object.booleanToTranslateFalseFromNumber = NO;
+
+ object.child.string1 = @"value5";
+ object.child.string2 = @"value6";
+ object.child.strings = @[@"value7", @"value8"];
+ object.child.subObjects = @[object3, object4];
+
+ object.child.subDictionary = nil;
+ object.date1 = [NSDate dateWithTimeIntervalSince1970:34530523];
+ object.date2 = [NSDate dateWithTimeIntervalSince1970:10000];
+ object.unixTimestamp = [NSDate dateWithTimeIntervalSince1970:200000];
+
+ return object;
+}
+
++ (RFSerializationTestObject*)bigObject{
+ RFSerializationTestObject *bigTestObject = [RFSerializationTestObject sampleObject];
+
+ NSMutableArray *tmpArray = [[NSMutableArray alloc] init];
+
+ for (int i =0; i< 200; i++){
+ RFSerializationTestObject *object4 = [[RFSerializationTestObject alloc] init];
+ object4.string2 = @"value42";
+ object4.string1 = @"value41";
+ object4.booleanToTranslateFalse = NO;
+ object4.booleanToTranslateFalseFromNumber = NO;
+ object4.booleanToTranslateTrue = YES;
+ object4.booleanToTranslateTrueFromNumber = YES;
+ object4.number = @(3);
+ [tmpArray addObject:object4];
+ }
+
+ bigTestObject.child.subObjects = tmpArray;
+
+ return bigTestObject;
+}
+
+@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ReflectionPerformanceTests.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ReflectionPerformanceTests.m
new file mode 100644
index 00000000..bfd750d3
--- /dev/null
+++ b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ReflectionPerformanceTests.m
@@ -0,0 +1,40 @@
+//
+// ReflectionPerformance.m
+// ObjCAttrPerformanceTest
+//
+// Created by Alexander Dorofeev on 16/09/14.
+// Copyright (c) 2014 EPAM Systems. All rights reserved.
+//
+
+#import
+#import
+
+@interface ReflectionPerformance : XCTestCase
+
+@end
+
+@implementation ReflectionPerformance
+
+- (void)setUp {
+ [super setUp];
+ // Put setup code here. This method is called before the invocation of each test method in the class.
+}
+
+- (void)tearDown {
+ // Put teardown code here. This method is called after the invocation of each test method in the class.
+ [super tearDown];
+}
+
+- (void)testExample {
+ // This is an example of a functional test case.
+ XCTAssert(YES, @"Pass");
+}
+
+- (void)testPerformanceExample {
+ // This is an example of a performance test case.
+ [self measureBlock:^{
+ // Put the code you want to measure the time of here.
+ }];
+}
+
+@end
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingParameters.h b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ReflectionTestingParameters.h
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingParameters.h
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ReflectionTestingParameters.h
diff --git a/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingParameters.m b/tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ReflectionTestingParameters.m
similarity index 100%
rename from tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTest/ReflectionTestingParameters.m
rename to tools/PerformanceTests/ObjCAttrPerformanceTest/ObjCAttrPerformanceTestTests/ReflectionTestingParameters.m