Created
November 23, 2011 19:31
-
-
Save pjaspers/1389649 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Speciaal voor Inferis | |
// YES nil N | |
//Met ifs 0.452217 | |
//Met statement 0.430586 | |
//####################### | |
// | |
//NO nil N | |
//Met ifs 0.451592 | |
//Met statement 0.553710 | |
//####################### | |
// | |
//YES iets N | |
//Met ifs 1.388737 | |
//Met statement 1.790645 | |
//####################### | |
// | |
//YES iets Bla | |
//Met ifs 2.469209 | |
//Met statement 2.307097 | |
#import "AppDelegate.h" | |
static inline BOOL IsEmpty(id thing) { | |
if (thing == nil) return YES; | |
if ([thing isEqual:[NSNull null]]) return YES; | |
if ([thing respondsToSelector:@selector(count)]) return [thing performSelector:@selector(count)] == 0; | |
if ([thing respondsToSelector:@selector(length)]) return [thing performSelector:@selector(length)] == 0; | |
return NO; | |
} | |
@interface Inferis : NSObject { | |
} | |
- (BOOL)multipleIfs:(BOOL)isTextValue values:(NSArray *)values flag:(NSString *)flag; | |
- (BOOL)statement:(BOOL)isTextValue values:(NSArray *)values flag:(NSString *)flag; | |
@end | |
@implementation Inferis : NSObject | |
- (BOOL)multipleIfs:(BOOL)isTextValue values:(NSArray *)values flag:(NSString *)flag { | |
if (!isTextValue && IsEmpty(values)) return YES; | |
if ([flag isEqualToString:@"N"]) return NO; | |
return YES; | |
} | |
- (BOOL)statement:(BOOL)isTextValue values:(NSArray *)values flag:(NSString *)flag { | |
return ![flag isEqualToString:@"N"] || (!isTextValue && IsEmpty(values)); | |
} | |
@end | |
@implementation AppDelegate | |
@synthesize window = _window; | |
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification | |
{ | |
Inferis *inf = [[Inferis alloc] init]; | |
NSDate *startingDate = nil; | |
NSArray *values = [NSArray arrayWithObject:@"iets"]; | |
NSLog(@"YES nil N"); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf multipleIfs:YES values:nil flag:@"N"]; | |
} | |
NSLog(@"Met ifs %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf statement:YES values:nil flag:@"N"]; | |
} | |
NSLog(@"Met statement %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
NSLog(@"#########################\n\n"); | |
NSLog(@"NO nil N"); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf multipleIfs:NO values:nil flag:@"N"]; | |
} | |
NSLog(@"Met ifs %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf statement:NO values:nil flag:@"N"]; | |
} | |
NSLog(@"Met statement %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
NSLog(@"#########################\n\n"); | |
NSLog(@"YES iets N"); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf multipleIfs:YES values:values flag:@"N"]; | |
} | |
NSLog(@"Met ifs %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf statement:YES values:values flag:@"N"]; | |
} | |
NSLog(@"Met statement %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
NSLog(@"#########################\n\n"); | |
NSLog(@"YES iets Bla"); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf multipleIfs:YES values:values flag:@"Bla"]; | |
} | |
NSLog(@"Met ifs %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
startingDate = [NSDate date]; | |
for (int i = 0; i < 10000000; i++) { | |
[inf statement:YES values:values flag:@"Bla"]; | |
} | |
NSLog(@"Met statement %f",[[NSDate date] timeIntervalSinceDate:startingDate]); | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment