Added TestResult

This commit is contained in:
Abel Fokkinga 2013-01-08 15:02:31 -02:00
parent 3013ee52c4
commit 357b7299e8
6 changed files with 127 additions and 24 deletions

View File

@ -55,6 +55,7 @@
B581EA01168E21C2005D9936 /* tabbar_list.png in Resources */ = {isa = PBXBuildFile; fileRef = B581EA00168E21C2005D9936 /* tabbar_list.png */; };
B581EA03168E3037005D9936 /* check_box.png in Resources */ = {isa = PBXBuildFile; fileRef = B581EA02168E3037005D9936 /* check_box.png */; };
B581EA05168E3099005D9936 /* check_box-1.png in Resources */ = {isa = PBXBuildFile; fileRef = B581EA04168E3099005D9936 /* check_box-1.png */; };
B581EA08169B351A005D9936 /* TestResult+Create.m in Sources */ = {isa = PBXBuildFile; fileRef = B581EA07169B351A005D9936 /* TestResult+Create.m */; };
B5A8BB191651A64300C1CC00 /* CoreDataTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5A8BB181651A3E700C1CC00 /* CoreDataTableViewController.m */; };
B5B3F92D165972EF00E26A40 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B5B3F92F165972EF00E26A40 /* Localizable.strings */; };
B5B3F93516602C7C00E26A40 /* Verb.m in Sources */ = {isa = PBXBuildFile; fileRef = B5B3F93416602C7B00E26A40 /* Verb.m */; };
@ -141,6 +142,8 @@
B581EA00168E21C2005D9936 /* tabbar_list.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = tabbar_list.png; sourceTree = "<group>"; };
B581EA02168E3037005D9936 /* check_box.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = check_box.png; sourceTree = "<group>"; };
B581EA04168E3099005D9936 /* check_box-1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "check_box-1.png"; sourceTree = "<group>"; };
B581EA06169B351A005D9936 /* TestResult+Create.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TestResult+Create.h"; sourceTree = "<group>"; };
B581EA07169B351A005D9936 /* TestResult+Create.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TestResult+Create.m"; sourceTree = "<group>"; };
B58F57661635D27E00CED51B /* Conjugator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Conjugator.h; sourceTree = "<group>"; };
B58F576D16387BE600CED51B /* NSMutableArray_Shuffling.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NSMutableArray_Shuffling.h; path = Espagram/NSMutableArray_Shuffling.h; sourceTree = "<group>"; };
B5A8BB171651A3E700C1CC00 /* CoreDataTableViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreDataTableViewController.h; sourceTree = "<group>"; };
@ -252,6 +255,8 @@
B5B3F93A16602C7E00E26A40 /* Lesson.m */,
B5B3F93616602C7C00E26A40 /* TestResult.h */,
B5B3F93716602C7C00E26A40 /* TestResult.m */,
B581EA06169B351A005D9936 /* TestResult+Create.h */,
B581EA07169B351A005D9936 /* TestResult+Create.m */,
B5B3F93416602C7B00E26A40 /* Verb.m */,
B51F8E22165199F80033B614 /* Espagram.xcdatamodeld */,
B56DE1611654382500D85DD3 /* Lesson+Conjugator.h */,
@ -421,6 +426,7 @@
B5B3F93516602C7C00E26A40 /* Verb.m in Sources */,
B5B3F93816602C7D00E26A40 /* TestResult.m in Sources */,
B5B3F93B16602C7E00E26A40 /* Lesson.m in Sources */,
B581EA08169B351A005D9936 /* TestResult+Create.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -162,11 +162,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880419.819963"
timestampString = "379272741.598802"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "125"
endingLineNumber = "125"
startingLineNumber = "127"
endingLineNumber = "127"
landmarkName = "-nextVerb"
landmarkType = "5">
</FileBreakpoint>
@ -188,11 +188,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880419.819963"
timestampString = "379272885.813565"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "163"
endingLineNumber = "163"
startingLineNumber = "169"
endingLineNumber = "169"
landmarkName = "-nextVerb"
landmarkType = "5">
</FileBreakpoint>
@ -201,11 +201,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880419.819963"
timestampString = "379272741.598802"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "58"
endingLineNumber = "58"
startingLineNumber = "59"
endingLineNumber = "59"
landmarkName = "-answered:"
landmarkType = "5">
</FileBreakpoint>
@ -214,11 +214,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880419.819963"
timestampString = "379272741.598802"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "107"
endingLineNumber = "107"
startingLineNumber = "108"
endingLineNumber = "108"
landmarkName = "-setUIButtonTitle:withText:inColour:forState:"
landmarkType = "5">
</FileBreakpoint>
@ -227,11 +227,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880419.819963"
timestampString = "379272741.598802"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "91"
endingLineNumber = "91"
startingLineNumber = "92"
endingLineNumber = "92"
landmarkName = "-setAnswerButton:withAnswer:andCorrect:"
landmarkType = "5">
</FileBreakpoint>
@ -240,11 +240,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880419.819963"
timestampString = "379272741.598802"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "101"
endingLineNumber = "101"
startingLineNumber = "102"
endingLineNumber = "102"
landmarkName = "-setUIButtonTitle:withText:inColour:forState:"
landmarkType = "5">
</FileBreakpoint>
@ -305,11 +305,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880419.819963"
timestampString = "379272885.813565"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "149"
endingLineNumber = "149"
startingLineNumber = "155"
endingLineNumber = "155"
landmarkName = "-nextVerb"
landmarkType = "5">
</FileBreakpoint>
@ -448,11 +448,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "374880329.187761"
timestampString = "379272741.598802"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "25"
endingLineNumber = "25"
startingLineNumber = "26"
endingLineNumber = "26"
landmarkName = "verbMeaningLable"
landmarkType = "19">
</FileBreakpoint>
@ -859,5 +859,31 @@
landmarkName = "+addVerb:andMeaning:toLesson:"
landmarkType = "5">
</FileBreakpoint>
<FileBreakpoint
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/EspagramTestViewController.m"
timestampString = "379272885.813565"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "130"
endingLineNumber = "130"
landmarkName = "-nextVerb"
landmarkType = "5">
</FileBreakpoint>
<FileBreakpoint
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Espagram/TestResult+Create.m"
timestampString = "379274016.674642"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "17"
endingLineNumber = "17"
landmarkName = "+addTestableVerbResult:withTestType:"
landmarkType = "5">
</FileBreakpoint>
</FileBreakpoints>
</Bucket>

View File

@ -8,6 +8,7 @@
#import "EspagramTestViewController.h"
#import "NSMutableArray_Shuffling.h"
#import "TestResult+Create.h"
@interface EspagramTestViewController ()
@ -124,6 +125,11 @@
- (void) nextVerb {
NSMutableArray * answers;
// Add test result
if ( self.currentVerb) {
[TestResult addTestableVerbResult:self.currentVerb withTestType:@"Multiple Choice"];
}
if ( self.currentVerb && self.currentVerb.failed) {
// Last test failed.. so we won't remove it
// instead we shuffle the test set.

View File

@ -0,0 +1,17 @@
//
// TestResult+Create.h
// Espagram
//
// Created by Abel Fokkinga on 1/7/13.
// Copyright (c) 2013 Abel Fokkinga. All rights reserved.
//
#import "TestResult.h"
#import "Verb.h"
#import "TestableVerb.h"
@interface TestResult (Create)
+ (void) addTestableVerbResult:(TestableVerb *)verb withTestType:(NSString *)testType;
@end

View File

@ -0,0 +1,48 @@
//
// TestResult+Create.m
// Espagram
//
// Created by Abel Fokkinga on 1/7/13.
// Copyright (c) 2013 Abel Fokkinga. All rights reserved.
//
#import "TestResult+Create.h"
#import "Lesson.h"
@implementation TestResult (Create)
+ (void) addTestableVerbResult:(TestableVerb *)verb withTestType:(NSString *)testType
{
// Check first if this verb already contains a result
for ( TestResult * tr in verb.verb.testResults) {
if ( [tr.conjugatedPerson isEqualToString:verb.person] &&
[tr.testType isEqualToString:testType] ) {
if ( !verb.failed ) {
tr.passedCounter = [NSNumber numberWithInt:[tr.passedCounter intValue] + 1];
} else {
tr.failedCounter = [NSNumber numberWithInt:[tr.failedCounter intValue] +1];
}
[[verb.verb.lesson managedObjectContext] save:nil];
return;
}
}
// No result yet exists
TestResult * result = [NSEntityDescription insertNewObjectForEntityForName:@"TestResult" inManagedObjectContext:verb.verb.lesson.managedObjectContext];
result.conjugatedPerson = verb.person;
result.testType = testType;
if ( !verb.failed ) {
result.passedCounter = [NSNumber numberWithInt:1];
} else {
result.failedCounter = [NSNumber numberWithInt:1];
}
[verb.verb addTestResultsObject:result];
[[verb.verb.lesson managedObjectContext] save:nil];
}
@end