-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmdict_base_test.go
More file actions
39 lines (31 loc) · 1.27 KB
/
mdict_base_test.go
File metadata and controls
39 lines (31 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package mdx
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestMdictBase_ReadDictHeader(t *testing.T) {
manifest := loadFixtureManifest(t)
mdictBase := &MdictBase{filePath: manifest.MDXPath, fileType: MdictTypeMdx}
require.NoError(t, mdictBase.readDictHeader())
assert.Equal(t, "牛津高阶英汉双解词典(第9版)", mdictBase.meta.title)
assert.Equal(t, "2019-8-19", mdictBase.meta.creationDate)
assert.Equal(t, EncodingUtf8, mdictBase.meta.encoding)
}
func TestMdictBase_ReadDictHeaderAndBlocks(t *testing.T) {
manifest := loadFixtureManifest(t)
mdictBase := &MdictBase{filePath: manifest.MDXPath, fileType: MdictTypeMdx, rangeTreeRoot: new(RecordBlockRangeTreeNode)}
require.NoError(t, mdictBase.readDictHeader())
require.NoError(t, mdictBase.readKeyBlockMeta())
require.NoError(t, mdictBase.readKeyBlockInfo())
require.NoError(t, mdictBase.readKeyEntries())
require.NoError(t, mdictBase.readRecordBlockMeta())
require.NoError(t, mdictBase.readRecordBlockInfo())
mdictBase.buildRecordRangeTree()
mdictBase.buildExactLookup()
entry := mdictBase.exactLookup[fixtureSampleMDXWord]
require.NotNil(t, entry)
data, err := mdictBase.locateByKeywordEntry(entry)
require.NoError(t, err)
assert.NotEmpty(t, data)
}