From 00084a2325e32d03bce3c78fde5d86fc607800ca Mon Sep 17 00:00:00 2001 From: LebedevAntony Date: Tue, 13 Nov 2012 23:52:01 +0400 Subject: [PATCH] final --- DNA/DNA.xcodeproj/project.pbxproj | 257 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 18886 bytes .../xcdebugger/Breakpoints.xcbkptlist | 20 ++ .../tony.xcuserdatad/xcschemes/DNA.xcscheme | 86 ++++++ .../xcschemes/xcschememanagement.plist | 22 ++ DNA/DNA/DNA-Prefix.pch | 7 + DNA/DNA/DNA.1 | 79 ++++++ DNA/DNA/Entities/Cell.h | 16 ++ DNA/DNA/Entities/Cell.m | 42 +++ DNA/DNA/main.m | 117 ++++++++ 11 files changed, 653 insertions(+) create mode 100644 DNA/DNA.xcodeproj/project.pbxproj create mode 100644 DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/tony.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist create mode 100644 DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/DNA.xcscheme create mode 100644 DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 DNA/DNA/DNA-Prefix.pch create mode 100644 DNA/DNA/DNA.1 create mode 100644 DNA/DNA/Entities/Cell.h create mode 100644 DNA/DNA/Entities/Cell.m create mode 100644 DNA/DNA/main.m diff --git a/DNA/DNA.xcodeproj/project.pbxproj b/DNA/DNA.xcodeproj/project.pbxproj new file mode 100644 index 00000000..c6ecc016 --- /dev/null +++ b/DNA/DNA.xcodeproj/project.pbxproj @@ -0,0 +1,257 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + EAD7B6FE1649930400D8063A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAD7B6FD1649930400D8063A /* Foundation.framework */; }; + EAD7B7011649930400D8063A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = EAD7B7001649930400D8063A /* main.m */; }; + EAD7B7051649930400D8063A /* DNA.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = EAD7B7041649930400D8063A /* DNA.1 */; }; + EAD7B70E1649943600D8063A /* Cell.m in Sources */ = {isa = PBXBuildFile; fileRef = EAD7B70D1649943600D8063A /* Cell.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + EAD7B6F71649930400D8063A /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + EAD7B7051649930400D8063A /* DNA.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + EAD7B6F91649930400D8063A /* DNA */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = DNA; sourceTree = BUILT_PRODUCTS_DIR; }; + EAD7B6FD1649930400D8063A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + EAD7B7001649930400D8063A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + EAD7B7031649930400D8063A /* DNA-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DNA-Prefix.pch"; sourceTree = ""; }; + EAD7B7041649930400D8063A /* DNA.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = DNA.1; sourceTree = ""; }; + EAD7B70C1649943600D8063A /* Cell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cell.h; sourceTree = ""; }; + EAD7B70D1649943600D8063A /* Cell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Cell.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + EAD7B6F61649930400D8063A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EAD7B6FE1649930400D8063A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + EAD7B6EE1649930400D8063A = { + isa = PBXGroup; + children = ( + EAD7B6FF1649930400D8063A /* DNA */, + EAD7B6FC1649930400D8063A /* Frameworks */, + EAD7B6FA1649930400D8063A /* Products */, + ); + sourceTree = ""; + }; + EAD7B6FA1649930400D8063A /* Products */ = { + isa = PBXGroup; + children = ( + EAD7B6F91649930400D8063A /* DNA */, + ); + name = Products; + sourceTree = ""; + }; + EAD7B6FC1649930400D8063A /* Frameworks */ = { + isa = PBXGroup; + children = ( + EAD7B6FD1649930400D8063A /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + EAD7B6FF1649930400D8063A /* DNA */ = { + isa = PBXGroup; + children = ( + EAD7B70B1649941500D8063A /* Entities */, + EAD7B7001649930400D8063A /* main.m */, + EAD7B7041649930400D8063A /* DNA.1 */, + EAD7B7021649930400D8063A /* Supporting Files */, + ); + path = DNA; + sourceTree = ""; + }; + EAD7B7021649930400D8063A /* Supporting Files */ = { + isa = PBXGroup; + children = ( + EAD7B7031649930400D8063A /* DNA-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + EAD7B70B1649941500D8063A /* Entities */ = { + isa = PBXGroup; + children = ( + EAD7B70C1649943600D8063A /* Cell.h */, + EAD7B70D1649943600D8063A /* Cell.m */, + ); + path = Entities; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + EAD7B6F81649930400D8063A /* DNA */ = { + isa = PBXNativeTarget; + buildConfigurationList = EAD7B7081649930400D8063A /* Build configuration list for PBXNativeTarget "DNA" */; + buildPhases = ( + EAD7B6F51649930400D8063A /* Sources */, + EAD7B6F61649930400D8063A /* Frameworks */, + EAD7B6F71649930400D8063A /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DNA; + productName = DNA; + productReference = EAD7B6F91649930400D8063A /* DNA */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + EAD7B6F01649930400D8063A /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0450; + ORGANIZATIONNAME = "Антон Лебедев"; + }; + buildConfigurationList = EAD7B6F31649930400D8063A /* Build configuration list for PBXProject "DNA" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = EAD7B6EE1649930400D8063A; + productRefGroup = EAD7B6FA1649930400D8063A /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + EAD7B6F81649930400D8063A /* DNA */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + EAD7B6F51649930400D8063A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EAD7B7011649930400D8063A /* main.m in Sources */, + EAD7B70E1649943600D8063A /* Cell.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + EAD7B7061649930400D8063A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + EAD7B7071649930400D8063A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Release; + }; + EAD7B7091649930400D8063A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "DNA/DNA-Prefix.pch"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + EAD7B70A1649930400D8063A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "DNA/DNA-Prefix.pch"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + EAD7B6F31649930400D8063A /* Build configuration list for PBXProject "DNA" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EAD7B7061649930400D8063A /* Debug */, + EAD7B7071649930400D8063A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EAD7B7081649930400D8063A /* Build configuration list for PBXNativeTarget "DNA" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EAD7B7091649930400D8063A /* Debug */, + EAD7B70A1649930400D8063A /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = EAD7B6F01649930400D8063A /* Project object */; +} diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..f6feef27 --- /dev/null +++ b/DNA/DNA.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/tony.xcuserdatad/UserInterfaceState.xcuserstate b/DNA/DNA.xcodeproj/project.xcworkspace/xcuserdata/tony.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..a738ed8876b785829f67e0e032a39f1dd9225a8b GIT binary patch literal 18886 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 i&zZL%@BX}>Hh)C6i%oB literal 0 HcmV?d00001 diff --git a/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100644 index 00000000..0999616c --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,20 @@ + + + + + + + diff --git a/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/DNA.xcscheme b/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/DNA.xcscheme new file mode 100644 index 00000000..2555f819 --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/DNA.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/xcschememanagement.plist b/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..1de5d8f1 --- /dev/null +++ b/DNA/DNA.xcodeproj/xcuserdata/tony.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + DNA.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + EAD7B6F81649930400D8063A + + primary + + + + + diff --git a/DNA/DNA/DNA-Prefix.pch b/DNA/DNA/DNA-Prefix.pch new file mode 100644 index 00000000..cd50d540 --- /dev/null +++ b/DNA/DNA/DNA-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'DNA' target in the 'DNA' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/DNA/DNA/DNA.1 b/DNA/DNA/DNA.1 new file mode 100644 index 00000000..a0849a67 --- /dev/null +++ b/DNA/DNA/DNA.1 @@ -0,0 +1,79 @@ +.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples. +.\"See Also: +.\"man mdoc.samples for a complete listing of options +.\"man mdoc for the short list of editing options +.\"/usr/share/misc/mdoc.template +.Dd 06.11.12 \" DATE +.Dt DNA 1 \" Program name and manual section number +.Os Darwin +.Sh NAME \" Section Header - required - don't modify +.Nm DNA, +.\" The following lines are read in generating the apropos(man -k) database. Use only key +.\" words here as the database is built based on the words here and in the .ND line. +.Nm Other_name_for_same_program(), +.Nm Yet another name for the same program. +.\" Use .Nm macro to designate other names for the documented program. +.Nd This line parsed for whatis database. +.Sh SYNOPSIS \" Section Header - required - don't modify +.Nm +.Op Fl abcd \" [-abcd] +.Op Fl a Ar path \" [-a path] +.Op Ar file \" [file] +.Op Ar \" [file ...] +.Ar arg0 \" Underlined argument - use .Ar anywhere to underline +arg2 ... \" Arguments +.Sh DESCRIPTION \" Section Header - required - don't modify +Use the .Nm macro to refer to your program throughout the man page like such: +.Nm +Underlining is accomplished with the .Ar macro like this: +.Ar underlined text . +.Pp \" Inserts a space +A list of items with descriptions: +.Bl -tag -width -indent \" Begins a tagged list +.It item a \" Each item preceded by .It macro +Description of item a +.It item b +Description of item b +.El \" Ends the list +.Pp +A list of flags and their descriptions: +.Bl -tag -width -indent \" Differs from above in tag removed +.It Fl a \"-a flag as a list item +Description of -a flag +.It Fl b +Description of -b flag +.El \" Ends the list +.Pp +.\" .Sh ENVIRONMENT \" May not be needed +.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1 +.\" .It Ev ENV_VAR_1 +.\" Description of ENV_VAR_1 +.\" .It Ev ENV_VAR_2 +.\" Description of ENV_VAR_2 +.\" .El +.Sh FILES \" File used or created by the topic of the man page +.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact +.It Pa /usr/share/file_name +FILE_1 description +.It Pa /Users/joeuser/Library/really_long_file_name +FILE_2 description +.El \" Ends the list +.\" .Sh DIAGNOSTICS \" May not be needed +.\" .Bl -diag +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .It Diagnostic Tag +.\" Diagnostic informtion here. +.\" .El +.Sh SEE ALSO +.\" List links in ascending order by section, alphabetically within a section. +.\" Please do not reference files that do not exist without filing a bug report +.Xr a 1 , +.Xr b 1 , +.Xr c 1 , +.Xr a 2 , +.Xr b 2 , +.Xr a 3 , +.Xr b 3 +.\" .Sh BUGS \" Document known, unremedied bugs +.\" .Sh HISTORY \" Document history if command behaves in a unique manner \ No newline at end of file diff --git a/DNA/DNA/Entities/Cell.h b/DNA/DNA/Entities/Cell.h new file mode 100644 index 00000000..3e90a898 --- /dev/null +++ b/DNA/DNA/Entities/Cell.h @@ -0,0 +1,16 @@ +// +// Cell.h +// DNA +// +// Created by Антон Лебедев on 06.11.12. +// Copyright (c) 2012 Антон Лебедев. All rights reserved. +// + +#import + +@interface Cell : NSObject + +@property NSMutableArray * DNA; + +-(int) hammingDistance:(Cell *)compareTo; +@end diff --git a/DNA/DNA/Entities/Cell.m b/DNA/DNA/Entities/Cell.m new file mode 100644 index 00000000..095ab150 --- /dev/null +++ b/DNA/DNA/Entities/Cell.m @@ -0,0 +1,42 @@ +// +// Cell.m +// DNA +// +// Created by Антон Лебедев on 06.11.12. +// Copyright (c) 2012 Антон Лебедев. All rights reserved. +// + +#import "Cell.h" + +@implementation Cell + + -(id) init { + self = [super init]; + if (self) { + char symbols[4] = {'A', 'T', 'G', 'C'}; + + _DNA = [[NSMutableArray alloc] init]; + + int maxLength = 100; + for (int i = 0; i < maxLength; i++) { + int index = arc4random()%4; + NSString* string = [NSString stringWithFormat:@"%c" , symbols[index]]; + [_DNA addObject: string]; + } + } + + return self; + } + +-(int) hammingDistance:(Cell *)compareTo { + int result = 0; + for (int i = 0; i < 100; i++) { + if ([self.DNA objectAtIndex:i] != [compareTo.DNA objectAtIndex:i]) { + result++; + } + } + + return result; +} + +@end diff --git a/DNA/DNA/main.m b/DNA/DNA/main.m new file mode 100644 index 00000000..54bf66a3 --- /dev/null +++ b/DNA/DNA/main.m @@ -0,0 +1,117 @@ +// +// main.m +// DNA +// +// Created by Антон Лебедев on 06.11.12. +// Copyright (c) 2012 Антон Лебедев. All rights reserved. +// + +#import +#import "Entities/Cell.h" + +@interface Cell (mutate) +-(void) mutate:(int)percentage; +@end + +@implementation Cell (mutate) + +-(void) mutate:(int)percentage { + // создать массив индексов элементов, которые будут изменены в _DNA + NSMutableArray *indexesToChange; + indexesToChange = [[NSMutableArray alloc] init]; + + // заполнить массив индексов элементов, которые будут изменены в _DNA + for (int j = 0; j < percentage; j++) + { + // определяет, необходимо ли создать новый индекс, + // который будет изменен в _DNA + bool recreate = YES; + + while (recreate) + { + // создать новый индекс + int currentIndex = arc4random()%100; + + // определить количество существующих элементов в массиве индексов + int count = [indexesToChange count]; + + // определить, существует ли индекс с номером currentIndex + // в массиве индексов + bool exists = NO; + for (int i = 0; i < count; i++ ) + { + // если существует, то выйти из цикла + if ([[indexesToChange objectAtIndex:i] integerValue] == currentIndex) + { + exists = YES; + break; + } + } + + // если индекс с номером currentIndex существует в массиве индексов + // то создать новый индекс + if (exists) + { + recreate = YES; + } + else + { + // если не существует, то добавить в массив индексов + recreate = NO; + NSNumber *adding = [NSNumber numberWithInt:currentIndex]; + [indexesToChange addObject: adding]; + } + } + } + + for (int i = 0; i < percentage; i++) + { + // задать строку из используемых в DNA символов + NSString *template; + template = [[NSString alloc] init]; + template = @"ATGC"; + + // получить индекс элемента, значение которого будет изменено + int currentIndex = [[indexesToChange objectAtIndex:i] integerValue]; + + // получить элемент, значение которого будет изменено + NSString *indexValue = (NSString *)[self.DNA objectAtIndex:currentIndex]; + + NSString *mutateTo = (NSString *)[self.DNA objectAtIndex:currentIndex]; + + // получить новое значение элемента + while (mutateTo == indexValue) + { + int qwe = arc4random()%4; + mutateTo = [template substringWithRange:NSMakeRange(qwe, 1)]; + } + + // заменить значение элемента + [self.DNA replaceObjectAtIndex:currentIndex withObject: mutateTo]; + } +} + +@end +int main(int argc, const char * argv[]) +{ + + @autoreleasepool { + + Cell *myCell, *myCell2; + myCell = [[Cell alloc] init]; + myCell2 = [[Cell alloc] init]; + + int difference = [myCell hammingDistance:myCell2]; + NSLog(@"hammingDistance before: %i", difference); + + int mutatingItemsCount = 10; + [myCell mutate:mutatingItemsCount]; + NSLog(@"mutate items: %i", mutatingItemsCount); + + int difference2 = [myCell hammingDistance:myCell2]; + NSLog(@"hammingDistance after: %i", difference2); + } + + return 0; +} +