@@ -20,8 +20,10 @@ func TestKiwiVersion(t *testing.T) {
2020}
2121
2222func TestAnalyze (t * testing.T ) {
23- kiwi := New ("./base" , WithNumThread (1 ))
24- res , _ := kiwi .Analyze ("아버지가 방에 들어가신다" )
23+ kiwi , err := New ("./base" , WithNumThread (1 ))
24+ assert .NoError (t , err )
25+ res , err := kiwi .Analyze ("아버지가 방에 들어가신다" )
26+ assert .NoError (t , err )
2527
2628 expected := []TokenResult {
2729 {
@@ -73,8 +75,10 @@ func TestAnalyze(t *testing.T) {
7375}
7476
7577func TestSplitSentence (t * testing.T ) {
76- kiwi := New ("./base" , WithNumThread (1 ))
77- res , _ := kiwi .SplitSentence ("여러 문장으로 구성된 텍스트네 이걸 분리해줘" , KIWI_MATCH_ALL )
78+ kiwi , err := New ("./base" , WithNumThread (1 ))
79+ assert .NoError (t , err )
80+ res , err := kiwi .SplitSentence ("여러 문장으로 구성된 텍스트네 이걸 분리해줘" , KIWI_MATCH_ALL )
81+ assert .NoError (t , err )
7882
7983 expected := []SplitResult {
8084 {
@@ -94,7 +98,8 @@ func TestSplitSentence(t *testing.T) {
9498}
9599
96100func TestAddWordFail (t * testing.T ) {
97- kb := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
101+ kb , err := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
102+ assert .NoError (t , err )
98103 add := kb .AddWord ("아버지가" , "SKO" , 0 )
99104 assert .Equal (t , - 1 , add )
100105 assert .Equal (t , 0 , kb .Close ())
@@ -103,7 +108,8 @@ func TestAddWordFail(t *testing.T) {
103108}
104109
105110func TestAddWord (t * testing.T ) {
106- kb := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
111+ kb , err := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
112+ assert .NoError (t , err )
107113 add := kb .AddWord ("아버지가" , "NNG" , 0 )
108114
109115 assert .Equal (t , 0 , add )
@@ -159,14 +165,15 @@ func TestAddWord(t *testing.T) {
159165}
160166
161167func TestLoadDict (t * testing.T ) {
162- kb := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
168+ kb , err := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
169+ assert .NoError (t , err )
163170 add := kb .LoadDict ("./example/user_dict.tsv" )
164171
165172 assert .Equal (t , 1 , add )
166173
167- err := KiwiError ()
174+ errMsg := KiwiError ()
168175
169- assert .Equal (t , "" , err )
176+ assert .Equal (t , "" , errMsg )
170177
171178 kiwi := kb .Build ()
172179
@@ -220,14 +227,15 @@ func TestLoadDict(t *testing.T) {
220227}
221228
222229func TestLoadDict2 (t * testing.T ) {
223- kb := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
230+ kb , err := NewBuilder ("./base" , WithNumThread (1 ), WithBuildOption (KIWI_BUILD_INTEGRATE_ALLOMORPH ))
231+ assert .NoError (t , err )
224232 add := kb .LoadDict ("./example/user_dict2.tsv" )
225233
226234 assert .Equal (t , 3 , add )
227235
228- err := KiwiError ()
236+ errMsg := KiwiError ()
229237
230- assert .Equal (t , "" , err )
238+ assert .Equal (t , "" , errMsg )
231239
232240 kiwi := kb .Build ()
233241 res , _ := kiwi .Analyze ("아버지가 방에 들어가신다" )
@@ -262,7 +270,8 @@ func TestLoadDict2(t *testing.T) {
262270}
263271
264272func TestExtractWord (t * testing.T ) {
265- kb := NewBuilder ("./base" , WithNumThread (1 ))
273+ kb , err := NewBuilder ("./base" , WithNumThread (1 ))
274+ assert .NoError (t , err )
266275 rs := strings .NewReader (`2008년에는 애국가의 작곡자 안익태가 1930년대에 독일 유학 기간 중 친일 활동을 했다는 사실이 밝혀졌다. 이후 안익태가 나치 독일 하의
267276베를린에서 만주국 10주년 건국 기념음악회를 지휘하는 동영상까지 발굴되어 관련 학계나 사회에 큰 충격을 주었다. 안익태가 친일 행적을 한 바
268277있다는 빼도박도 못할 증거가 나왔으니까. 영상물의 '만주환상곡'에는 우리가 현재 알고있는 '한국환상곡'의 두 선율("무궁화 삼천리 나의 사랑아,
@@ -294,7 +303,8 @@ func TestExtractWord(t *testing.T) {
294303}
295304
296305func TestExtractWordwithFile (t * testing.T ) {
297- kb := NewBuilder ("./base" , WithNumThread (1 )) // Use single thread for deterministic results
306+ kb , err := NewBuilder ("./base" , WithNumThread (1 )) // Use single thread for deterministic results
307+ assert .NoError (t , err )
298308 file , _ := os .Open ("./example/test.txt" )
299309
300310 wordInfos , _ := kb .ExtractWords (file , 10 /*=minCnt*/ , 5 /*=maxWordLen*/ , 0.0 /*=minScore*/ , - 25.0 /*=posThreshold*/ )
@@ -308,7 +318,8 @@ func TestExtractWordwithFile(t *testing.T) {
308318}
309319
310320func TestGetGlobalConfig (t * testing.T ) {
311- kiwi := New ("./base" , WithNumThread (1 ))
321+ kiwi , err := New ("./base" , WithNumThread (1 ))
322+ assert .NoError (t , err )
312323 defer kiwi .Close ()
313324
314325 config := kiwi .GetGlobalConfig ()
@@ -319,7 +330,8 @@ func TestGetGlobalConfig(t *testing.T) {
319330}
320331
321332func TestSetGlobalConfig (t * testing.T ) {
322- kiwi := New ("./base" , WithNumThread (1 ))
333+ kiwi , err := New ("./base" , WithNumThread (1 ))
334+ assert .NoError (t , err )
323335 defer kiwi .Close ()
324336
325337 originalConfig := kiwi .GetGlobalConfig ()
@@ -335,15 +347,17 @@ func TestSetGlobalConfig(t *testing.T) {
335347}
336348
337349func TestGetSetOption (t * testing.T ) {
338- kiwi := New ("./base" , WithNumThread (1 ))
350+ kiwi , err := New ("./base" , WithNumThread (1 ))
351+ assert .NoError (t , err )
339352 defer kiwi .Close ()
340353
341354 threads := kiwi .GetOption (KIWI_NUM_THREADS )
342355 assert .True (t , threads >= 1 )
343356}
344357
345358func TestMatchOptionOOV (t * testing.T ) {
346- kiwi := New ("./base" , WithNumThread (1 ))
359+ kiwi , err := New ("./base" , WithNumThread (1 ))
360+ assert .NoError (t , err )
347361 defer kiwi .Close ()
348362
349363 // Use OOV-containing text to detect differences between OOV modes
@@ -361,7 +375,8 @@ func TestMatchOptionOOV(t *testing.T) {
361375}
362376
363377func TestMorphset (t * testing.T ) {
364- kiwi := New ("./base" , WithNumThread (1 ))
378+ kiwi , err := New ("./base" , WithNumThread (1 ))
379+ assert .NoError (t , err )
365380 defer kiwi .Close ()
366381
367382 ms , err := kiwi .NewMorphset ()
@@ -383,3 +398,35 @@ func TestMorphset(t *testing.T) {
383398 assert .NotEqual (t , "아버지" , token .Form )
384399 }
385400}
401+
402+ func TestNewFailure (t * testing.T ) {
403+ _ , err := New ("./nonexistent_path" )
404+ assert .Error (t , err )
405+ assert .Contains (t , err .Error (), "kiwi_init failed" )
406+ }
407+
408+ func TestWithOpenEnding (t * testing.T ) {
409+ kiwi , err := New ("./base" , WithNumThread (1 ))
410+ assert .NoError (t , err )
411+ defer kiwi .Close ()
412+
413+ res , err := kiwi .Analyze ("아버지가 방에 들어가신다" , WithOpenEnding (true ))
414+ assert .NoError (t , err )
415+ assert .True (t , len (res ) > 0 )
416+ }
417+
418+ func TestWithAllowedDialects (t * testing.T ) {
419+ kiwi , err := New ("./base" , WithNumThread (1 ), WithDialect (DialectGyeongsang ))
420+ assert .NoError (t , err )
421+ defer kiwi .Close ()
422+
423+ // Test with default dialects (should use instance setting)
424+ res , err := kiwi .Analyze ("아버지가 방에 들어가신다" )
425+ assert .NoError (t , err )
426+ assert .True (t , len (res ) > 0 )
427+
428+ // Test with explicit dialect override
429+ res , err = kiwi .Analyze ("아버지가 방에 들어가신다" , WithAllowedDialects (DialectStandard ))
430+ assert .NoError (t , err )
431+ assert .True (t , len (res ) > 0 )
432+ }
0 commit comments