Skip to content

Commit

Permalink
Test subword
Browse files Browse the repository at this point in the history
  • Loading branch information
sublee committed Feb 16, 2023
1 parent 74660b4 commit f95970d
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 11 deletions.
21 changes: 11 additions & 10 deletions internal/subword/builder_test.go
Original file line number Diff line number Diff line change
@@ -1,42 +1,43 @@
package subword
package subword_test

import (
"testing"

"github.com/hangulize/hangulize/internal/subword"
"github.com/stretchr/testify/assert"
)

func TestBuilderEmpty(t *testing.T) {
var swBuf Builder
var swBuf subword.Builder

assert.Equal(t, "", swBuf.String())
assert.Len(t, swBuf.Subwords(), 0)
}

func TestBuilder1Subword(t *testing.T) {
var swBuf Builder
var swBuf subword.Builder

swBuf.Write(Subword{"hello", 1})
swBuf.Write(subword.Subword{"hello", 1})

assert.Equal(t, "hello", swBuf.String())
assert.Len(t, swBuf.Subwords(), 1)
}

func TestBuilderMergeSameLevel(t *testing.T) {
var swBuf Builder
var swBuf subword.Builder

swBuf.Write(Subword{"hello", 1})
swBuf.Write(Subword{"world", 1})
swBuf.Write(subword.Subword{"hello", 1})
swBuf.Write(subword.Subword{"world", 1})

assert.Equal(t, "helloworld", swBuf.String())
assert.Len(t, swBuf.Subwords(), 1)
}

func TestBuilderDifferentLevel(t *testing.T) {
var swBuf Builder
var swBuf subword.Builder

swBuf.Write(Subword{"hello", 1})
swBuf.Write(Subword{"world", 2})
swBuf.Write(subword.Subword{"hello", 1})
swBuf.Write(subword.Subword{"world", 2})

assert.Equal(t, "helloworld", swBuf.String())
assert.Len(t, swBuf.Subwords(), 2)
Expand Down
2 changes: 1 addition & 1 deletion internal/subword/replace.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func NewReplacer(word string, prevLevel, nextLevel int) *Replacer {

// Replace buffers a replacement.
func (r *Replacer) Replace(start, stop int, word string) {
r.ReplaceBy(Replacement{start, stop, word})
r.ReplaceBy(NewReplacement(start, stop, word))
}

// ReplaceBy buffers multiple replacements.
Expand Down
19 changes: 19 additions & 0 deletions internal/subword/replace_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package subword_test

import (
"testing"

"github.com/hangulize/hangulize/internal/subword"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

func TestReplacer(t *testing.T) {
replacer := subword.NewReplacer("Hello, world", 0, 1)
replacer.Replace(0, 5, "Bye")
sws := replacer.Subwords()

require.Len(t, sws, 2)
assert.Equal(t, subword.New("Bye", 1), sws[0])
assert.Equal(t, subword.New(", world", 0), sws[1])
}

0 comments on commit f95970d

Please sign in to comment.