Skip to content

Commit

Permalink
Add basic test for ParsimmonNaiveBayesClassifier.
Browse files Browse the repository at this point in the history
  • Loading branch information
ayanonagon committed Jun 21, 2014
1 parent 17b77c8 commit 4998fbb
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Parsimmon/Parsimmon.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
B67005BE1809CE2F00CFF860 /* ParsimmonTaggedToken.m in Sources */ = {isa = PBXBuildFile; fileRef = B67005BD1809CE2F00CFF860 /* ParsimmonTaggedToken.m */; };
B67005C1180A05FC00CFF860 /* ParsimmonLemmatizer.m in Sources */ = {isa = PBXBuildFile; fileRef = B67005C0180A05FC00CFF860 /* ParsimmonLemmatizer.m */; };
B67005C4180A0A1D00CFF860 /* ParsimmonSeed.m in Sources */ = {isa = PBXBuildFile; fileRef = B67005C3180A0A1D00CFF860 /* ParsimmonSeed.m */; };
B692A4A919555E3800344E36 /* ParsimmonNaiveBayesClassifierTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B692A4A819555E3800344E36 /* ParsimmonNaiveBayesClassifierTests.m */; };
B6A43FD318837077000F61BA /* ParsimmonDecisionTree.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A43FD218837077000F61BA /* ParsimmonDecisionTree.m */; };
B6A43FD618837CF6000F61BA /* ParsimmonNode.m in Sources */ = {isa = PBXBuildFile; fileRef = B6A43FD518837CF6000F61BA /* ParsimmonNode.m */; };
B6B05E08180A85B500D7F34F /* ParsimmonNaiveBayesClassifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B05E07180A85B500D7F34F /* ParsimmonNaiveBayesClassifier.m */; };
Expand Down Expand Up @@ -79,6 +80,7 @@
B67005C2180A0A1D00CFF860 /* ParsimmonSeed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsimmonSeed.h; sourceTree = "<group>"; };
B67005C3180A0A1D00CFF860 /* ParsimmonSeed.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ParsimmonSeed.m; sourceTree = "<group>"; };
B6700608180A2A5A00CFF860 /* Parsimmon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Parsimmon.h; sourceTree = "<group>"; };
B692A4A819555E3800344E36 /* ParsimmonNaiveBayesClassifierTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ParsimmonNaiveBayesClassifierTests.m; sourceTree = "<group>"; };
B6A43FD118837077000F61BA /* ParsimmonDecisionTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsimmonDecisionTree.h; sourceTree = "<group>"; };
B6A43FD218837077000F61BA /* ParsimmonDecisionTree.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ParsimmonDecisionTree.m; sourceTree = "<group>"; };
B6A43FD418837CF6000F61BA /* ParsimmonNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsimmonNode.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -121,6 +123,7 @@
B63E18C118E618160006BD3E /* ParsimmonLemmatizerTests.m */,
B63E18C218E618160006BD3E /* ParsimmonTaggerTests.m */,
B63E18C318E618160006BD3E /* ParsimmonTokenizerTests.m */,
B692A4A819555E3800344E36 /* ParsimmonNaiveBayesClassifierTests.m */,
);
path = ParsimmonTests;
sourceTree = "<group>";
Expand Down Expand Up @@ -349,6 +352,7 @@
files = (
B63E18CE18E619750006BD3E /* ParsimmonTokenizerTests.m in Sources */,
B63E18CC18E6196D0006BD3E /* ParsimmonLemmatizerTests.m in Sources */,
B692A4A919555E3800344E36 /* ParsimmonNaiveBayesClassifierTests.m in Sources */,
B63E18CD18E619710006BD3E /* ParsimmonTaggerTests.m in Sources */,
B63E18CB18E6196A0006BD3E /* ParsimmonDecisionTreeTests.m in Sources */,
);
Expand Down
40 changes: 40 additions & 0 deletions Parsimmon/ParsimmonTests/ParsimmonNaiveBayesClassifierTests.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//
// ParsimmonNaiveBayesClassifierTests.m
// Parsimmon
//
// Created by Ayaka Nonaka on 6/20/14.
//
//

#import <XCTest/XCTest.h>
#import "ParsimmonNaiveBayesClassifier.h"

@interface ParsimmonNaiveBayesClassifierTests : XCTestCase
@end

@implementation ParsimmonNaiveBayesClassifierTests

- (void)testBasicExample
{
ParsimmonNaiveBayesClassifier *classifier = [[ParsimmonNaiveBayesClassifier alloc] init];

// Train the classifier with some ham examples.
[classifier trainWithText:@"nom nom ham" category:@"ham"];
[classifier trainWithText:@"make sure to get the ham" category:@"ham"];
[classifier trainWithText:@"please put the eggs in the fridge" category:@"ham"];

// Train the classifier with some spam examples.
[classifier trainWithText:@"spammy spam spam" category:@"spam"];
[classifier trainWithText:@"what does the fox say?" category:@"spam"];
[classifier trainWithText:@"and fish go blub" category:@"spam"];

// Classify some new text. Is it ham or spam?
// In practice, you'd want to train with more examples first.
NSString *firstExample = @"use the eggs in the fridge.";
NSString *secondExample = @"what does the fish say?";

XCTAssertEqual([classifier classify:firstExample], @"ham");
XCTAssertEqual([classifier classify:secondExample], @"spam");
}

@end

0 comments on commit 4998fbb

Please sign in to comment.