Skip to content

Instantly share code, notes, and snippets.

@wookay
Created August 21, 2010 17:34
Show Gist options
  • Save wookay/542605 to your computer and use it in GitHub Desktop.
Save wookay/542605 to your computer and use it in GitHub Desktop.
HangulInputSystem Test
//
// TestHangul.m
// Hangul
//
// Created by Woo-Kyoung Noh on 20/08/10.
// Copyright 2010 factorcat. All rights reserved.
//
#import "TestHangul.h"
#import "UnitTest.h"
#import "HangulInputSystem.h"
#import "NSStringExt.h"
@implementation TestHangul
-(void) test_mahnun {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"마", [hangul compose:@"마"]);
assert_equal(@"만", [hangul compose:@"ㄴ"]);
assert_equal(@"많", [hangul compose:@"ㅎ"]);
assert_equal(@"많ㅇ", [hangul compose:@"ㅇ"]);
[hangul release];
}
-(void) test_mokgo {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"머", [hangul compose:@"머"]);
assert_equal(@"먺", [hangul compose:@"ㄲ"]);
assert_equal(@"머꼬", [hangul compose:@"ㅗ"]); // 머꼬
[hangul clear];
assert_equal(@"머", [hangul compose:@"머"]);
assert_equal(@"먹", [hangul compose:@"ㄱ"]);
assert_equal(@"먺", [hangul compose:@"ㄱ"]);
assert_equal(@"먹고", [hangul compose:@"ㅗ"]); // 먹고
[hangul clear];
assert_equal(@"머", [hangul compose:@"머"]);
assert_equal(@"먹", [hangul compose:@"ㄱ"]);
assert_equal(@"먹ㄲ", [hangul compose:@"ㄲ"]);
assert_equal(@"먹꼬", [hangul compose:@"ㅗ"]); // 먹꼬
[hangul clear];
assert_equal(@"머", [hangul compose:@"머"]);
assert_equal(@"먺", [hangul compose:@"ㄲ"]);
assert_equal(@"먺ㄱ", [hangul compose:@"ㄱ"]);
assert_equal(@"먺고", [hangul compose:@"ㅗ"]); // 먺고
[hangul release];
}
-(void) test_japa {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"자", [hangul compose:@"자"]);
assert_equal(@"자ㅃ", [hangul compose:@"ㅃ"]);
[hangul release];
}
-(void) test_salasupnida {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"아", [hangul compose:@"아"]);
assert_equal(@"았", [hangul compose:@"ㅆ"]);
assert_equal(@"았ㅅ", [hangul compose:@"ㅅ"]);
[hangul release];
}
-(void) test_gyop {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"갑", [hangul compose:@"갑"]);
assert_equal(@"값", [hangul composeWithJongsung:@"ㅅ"]);
assert_equal(@"갑", [hangul depose]);
[hangul clear];
assert_equal(@"가", [hangul compose:@"가"]);
assert_equal(@"값", [hangul composeWithJongsung:@"ㅄ"]);
assert_equal(@"가", [hangul depose]);
[hangul clear];
assert_equal(@"ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"ㅆ", [hangul compose:@"ㅅ"]);
assert_equal(@"ㅅ", [hangul depose]);
[hangul clear];
assert_equal(@"ㅆ", [hangul compose:@"ㅆ"]);
assert_equal(@"", [hangul depose]);
[hangul release];
}
-(void) test_moum_auto_reverse {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"ㅡ", [hangul compose:@"ㅡ"]);
assert_equal(@"흐", [hangul compose:@"ㅎ"]);
assert_equal(@"흫", [hangul compose:@"ㅎ"]);
[hangul release];
}
-(void) test_bbels {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"ㅃ", [hangul compose:@"ㅃ"]);
assert_equal(@"뿌", [hangul compose:@"ㅜ"]);
assert_equal(@"쀄", [hangul compose:@"ㅔ"]);
assert_equal(@"쀌", [hangul compose:@"ㄹ"]);
assert_equal(@"쀐", [hangul compose:@"ㅅ"]);
assert_equal(@"쀌스", [hangul compose:@"ㅡ"]);
[hangul release];
}
-(void) test_gulssissuki {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"글", [hangul compose:@"글"]);
assert_equal(@"글ㅆ", [hangul compose:@"ㅆ"]);
assert_equal(@"글씨", [hangul compose:@"ㅣ"]);
assert_equal(@"글씻", [hangul compose:@"ㅅ"]);
assert_equal(@"글씼", [hangul compose:@"ㅅ"]);
assert_equal(@"글씻스", [hangul compose:@"ㅡ"]);
assert_equal(@"글씻슥", [hangul compose:@"ㄱ"]);
assert_equal(@"글씻스기", [hangul compose:@"ㅣ"]); // 글씻스기
[hangul clear];
assert_equal(@"글", [hangul compose:@"글"]);
assert_equal(@"글ㅆ", [hangul compose:@"ㅆ"]);
assert_equal(@"글씨", [hangul compose:@"ㅣ"]);
assert_equal(@"글씼", [hangul compose:@"ㅆ"]);
assert_equal(@"글씨쓰", [hangul compose:@"ㅡ"]);
assert_equal(@"글씨쓱", [hangul compose:@"ㄱ"]);
assert_equal(@"글씨쓰기", [hangul compose:@"ㅣ"]); // 글씨쓰기
[hangul clear];
assert_equal(@"글", [hangul compose:@"글"]);
assert_equal(@"글ㅆ", [hangul compose:@"ㅆ"]);
assert_equal(@"글씨", [hangul compose:@"ㅣ"]);
assert_equal(@"글씻", [hangul composeWithJongsung:@"ㅅ"]);
assert_equal(@"글씻ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"글씻스", [hangul compose:@"ㅡ"]);
assert_equal(@"글씻슥", [hangul compose:@"ㄱ"]);
assert_equal(@"글씻스기", [hangul compose:@"ㅣ"]); // 글씻스기
[hangul release];
}
-(void) test_gulssi {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"긄", [hangul compose:@"긄"]);
assert_equal(@"글ㅆ", [hangul compose:@"ㅅ"]);
assert_equal(STATUS_CHOSUNG, hangul.automata.status);
assert_equal(@"글씨", [hangul compose:@"ㅣ"]);
[hangul clear];
assert_equal(@"ㄱ", [hangul compose:@"ㄱ"]);
assert_equal(@"그", [hangul compose:@"ㅡ"]);
assert_equal(@"글", [hangul composeWithJongsung:@"ㄹ"]);
assert_equal(@"글ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"글ㅆ", [hangul compose:@"ㅅ"]);
assert_equal(@"글씨", [hangul compose:@"ㅣ"]);
[hangul clear];
assert_equal(@"ㄱ", [hangul compose:@"ㄱ"]);
assert_equal(@"그", [hangul compose:@"ㅡ"]);
assert_equal(@"글", [hangul composeWithJongsung:@"ㄹ"]);
assert_equal(@"글ㅆ", [hangul compose:@"ㅆ"]);
assert_equal(@"글씨", [hangul compose:@"ㅣ"]);
[hangul release];
}
-(void) test_hoksi {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"호", [hangul compose:@"호"]);
assert_equal(@"혹", [hangul compose:@"ㄱ"]);
assert_equal(@"혻", [hangul compose:@"ㅅ"]);
assert_equal(@"혹시", [hangul compose:@"ㅣ"]);
[hangul clear];
assert_equal(@"혹", [hangul compose:@"혹"]);
assert_equal(@"혻", [hangul compose:@"ㅅ"]);
assert_equal(@"혹시", [hangul compose:@"ㅣ"]);
[hangul release];
}
-(void) test_jongsung {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"", [hangul composeWithJongsung:@"ㄹ"]);
assert_equal(@"ㅡ", [hangul compose:@"ㅡ"]);
assert_equal(@"글", [hangul compose:@"ㄱ"]);
[hangul clear];
assert_equal(@"", [hangul composeWithJongsung:@"ㄹ"]);
assert_equal(@"ㅡ", [hangul compose:@"ㅡ"]);
assert_equal(@"글", [hangul compose:@"ㄱ"]);
assert_equal(@"글", [hangul composeWithJongsung:@"ㄹ"]);
assert_equal(@"글ㅡ", [hangul compose:@"ㅡ"]);
assert_equal(@"글글", [hangul compose:@"ㄱ"]);
[hangul clear];
assert_equal(@"글", [hangul compose:@"글"]);
assert_equal(@"글", [hangul composeWithJongsung:@"ㄴ"]);
assert_equal(@"글ㅏ", [hangul compose:@"ㅏ"]);
assert_equal(@"글한", [hangul compose:@"ㅎ"]);
[hangul clear];
assert_equal(@"글", [hangul compose:@"글"]);
assert_equal(@"글", [hangul composeWithJongsung:@"ㄴ"]);
assert_equal(@"글ㅏ", [hangul compose:@"ㅏ"]);
assert_equal(@"글한", [hangul compose:@"ㅎ"]);
assert_nil(hangul.automata.backjong);
assert_equal(@"글한", [hangul composeWithJongsung:@"ㄴ"]);
assert_equal(@"ㄴ", hangul.automata.backjong);
assert_equal(@"글한ㅏ", [hangul compose:@"ㅏ"]);
assert_equal(@"글한한", [hangul compose:@"ㅎ"]);
[hangul clear];
assert_equal(@"글", [hangul compose:@"글"]);
assert_equal(@"긄", [hangul compose:@"ㅅ"]);
assert_equal(@"글ㅆ", [hangul compose:@"ㅅ"]);
[hangul clear];
assert_equal(@"산", [hangul compose:@"산"]);
assert_equal(@"산ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"산수", [hangul compose:@"ㅜ"]);
[hangul release];
}
-(void) test_seung {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"스", [hangul compose:@"스"]);
assert_equal(@"승", [hangul composeWithJongsung:@"ㅇ"]);
[hangul clear];
assert_equal(@"수", [hangul compose:@"수"]);
assert_equal(@"숭", [hangul composeWithJongsung:@"ㅇ"]);
[hangul clear];
assert_equal(@"ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"ㅅ", [hangul composeWithJongsung:@"ㅇ"]);
assert_equal(@"승", [hangul compose:@"ㅡ"]);
assert_equal(@"승ㄹ", [hangul compose:@"ㄹ"]);
assert_equal(@"승리", [hangul compose:@"ㅣ"]);
[hangul clear];
assert_equal(@"승", [hangul compose:@"승"]);
assert_equal(@"승ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"승ㅅ", [hangul composeWithJongsung:@"ㅇ"]);
assert_equal(@"승승", [hangul compose:@"ㅡ"]);
assert_equal(@"승승ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"승승스", [hangul compose:@"ㅡ"]);
assert_equal(@"승승승", [hangul composeWithJongsung:@"ㅇ"]);
assert_equal(@"승승스으", [hangul compose:@"ㅡ"]);
assert_equal(@"승승스응", [hangul composeWithJongsung:@"ㅇ"]);
assert_equal(@"승승스으으", [hangul compose:@"ㅡ"]);
assert_equal(@"승승스으응", [hangul composeWithJongsung:@"ㅇ"]);
[hangul clear];
assert_equal(@"승", [hangul compose:@"승"]);
assert_equal(@"승", [hangul composeWithJongsung:@"ㅇ"]);
assert_equal(@"승ㅡ", [hangul compose:@"ㅡ"]);
assert_equal(@"승승", [hangul compose:@"ㅅ"]);
[hangul release];
}
-(void) test_hangul {
HangulInputSystem* hangul = [[HangulInputSystem alloc] init];
assert_equal(@"ㅗ", [hangul compose:@"ㅗ"]);
assert_equal(@"ㅘ", [hangul compose:@"ㅏ"]);
assert_equal(@"화", [hangul compose:@"ㅎ"]);
assert_equal(@"화ㅗ", [hangul compose:@"ㅗ"]);
assert_equal(@"화고", [hangul compose:@"ㄱ"]);
[hangul clear];
assert_equal(@"", [hangul composeWithJongsung:@"ㄹ"]);
assert_equal(@"ㅡ", [hangul compose:@"ㅡ"]);
assert_equal(@"글", [hangul compose:@"ㄱ"]);
[hangul clear];
assert_equal(@"", [hangul composeWithJongsung:@"ㄹ"]);
assert_equal(@"ㄱ", [hangul compose:@"ㄱ"]);
assert_equal(@"글", [hangul compose:@"ㅡ"]);
[hangul clear];
assert_equal(@"ㅎ", [hangul compose:@"ㅎ"]);
assert_equal(@"허", [hangul compose:@"ㅓ"]);
assert_equal(@"헛", [hangul compose:@"ㅅ"]);
[hangul clear];
assert_equal(@"ㅅ", [hangul compose:@"ㅅ"]);
assert_equal(@"소", [hangul compose:@"ㅗ"]);
assert_equal(@"ㅅ", [hangul depose]);
[hangul clear];
assert_equal(@"ㅎ", [hangul compose:@"ㅎ"]);
assert_equal(@"하", [hangul compose:@"ㅏ"]);
assert_equal(@"한", [hangul compose:@"ㄴ"]);
assert_equal(@"한ㄱ", [hangul compose:@"ㄱ"]);
assert_equal(@"한그", [hangul compose:@"ㅡ"]);
assert_equal(@"한글", [hangul compose:@"ㄹ"]);
[hangul clear];
assert_equal(@"ㄱ", [hangul compose:@"ㄱ"]);
assert_equal(@"ㄲ", [hangul compose:@"ㄱ"]);
[hangul clear];
assert_equal(@"ㄱ", [hangul compose:@"ㄱ"]);
assert_equal(@"ㄱㄴ", [hangul compose:@"ㄴ"]);
[hangul clear];
assert_equal(@"1", [hangul compose:@"1"]);
assert_equal(@"1ㅇ", [hangul compose:@"ㅇ"]);
assert_equal(@"1어", [hangul compose:@"ㅓ"]);
assert_equal(@"1업", [hangul compose:@"ㅂ"]);
assert_equal(@"1없", [hangul compose:@"ㅅ"]);
assert_equal(@"1업스", [hangul compose:@"ㅡ"]);
assert_equal(@"1업스a", [hangul compose:@"a"]);
assert_equal(@"1업스a\n", [hangul compose:LF]);
assert_equal(@"1업스a\nㅃ", [hangul compose:@"ㅃ"]);
assert_equal(@"1업스a\n", [hangul depose]);
[hangul clear];
assert_equal(@"ㅜ", [hangul compose:@"ㅜ"]);
assert_equal(@"ㅟ", [hangul compose:@"ㅣ"]);
[hangul clear];
assert_equal(@"ㅎ", [hangul compose:@"ㅎ"]);
assert_equal(@"혀", [hangul compose:@"ㅕ"]);
assert_equal(@"형", [hangul compose:@"ㅇ"]);
assert_equal(@"혀애", [hangul compose:@"ㅐ"]);
[hangul release];
}
@end
@wookay
Copy link
Author

wookay commented Aug 21, 2010

[Session started at 2010-08-31 00:56:39 +0900.]
Started
........................................................................................................................................................................................
Finished in 0.0106 seconds.

13 tests, 184 assertions, 0 failures, 0 errors

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment