-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
test.js
144 lines (140 loc) · 5.43 KB
/
test.js
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
import test from 'tape'
import {retext} from 'retext'
import {u} from 'unist-builder'
import {removePosition} from 'unist-util-remove-position'
import retextSentiment from './index.js'
test('retext-sentiment', (t) => {
const processor = retext().use(retextSentiment, {cats: -3, dogs: 3})
const tree = processor.runSync(
processor.parse(
'Some positive, happy, cats. ' +
'Darn self-deluded, abandoned, dogs. ' +
'Home Sweet Home Chicago! ' +
'Feels good to be back. ' +
'Bad news though. ' +
'This product is not bad at all. ' +
'Hai sexy! 😏'
)
)
removePosition(tree, true)
t.deepEqual(
tree,
u('RootNode', {data: {polarity: 12, valence: 'positive'}}, [
u('ParagraphNode', {data: {polarity: 12, valence: 'positive'}}, [
u('SentenceNode', {data: {polarity: 2, valence: 'positive'}}, [
u('WordNode', [u('TextNode', 'Some')]),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: 2, valence: 'positive'}}, [
u(
'TextNode',
{data: {polarity: 2, valence: 'positive'}},
'positive'
)
]),
u('PunctuationNode', ','),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: 3, valence: 'positive'}}, [
u('TextNode', {data: {polarity: 3, valence: 'positive'}}, 'happy')
]),
u('PunctuationNode', ','),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: -3, valence: 'negative'}}, [
u('TextNode', {data: {polarity: -3, valence: 'negative'}}, 'cats')
]),
u('PunctuationNode', '.')
]),
u('WhiteSpaceNode', ' '),
u('SentenceNode', {data: {polarity: -1, valence: 'negative'}}, [
u('WordNode', [u('TextNode', 'Darn')]),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: -2, valence: 'negative'}}, [
u('TextNode', 'self'),
u('PunctuationNode', '-'),
u('TextNode', 'deluded')
]),
u('PunctuationNode', ','),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: -2, valence: 'negative'}}, [
u(
'TextNode',
{data: {polarity: -2, valence: 'negative'}},
'abandoned'
)
]),
u('PunctuationNode', ','),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: 3, valence: 'positive'}}, [
u('TextNode', {data: {polarity: 3, valence: 'positive'}}, 'dogs')
]),
u('PunctuationNode', '.')
]),
u('WhiteSpaceNode', ' '),
u('SentenceNode', {data: {polarity: 0, valence: 'neutral'}}, [
u('WordNode', [u('TextNode', 'Home')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'Sweet')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'Home')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'Chicago')]),
u('PunctuationNode', '!')
]),
u('WhiteSpaceNode', ' '),
u('SentenceNode', {data: {polarity: 3, valence: 'positive'}}, [
u('WordNode', [u('TextNode', 'Feels')]),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: 3, valence: 'positive'}}, [
u('TextNode', {data: {polarity: 3, valence: 'positive'}}, 'good')
]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'to')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'be')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'back')]),
u('PunctuationNode', '.')
]),
u('WhiteSpaceNode', ' '),
u('SentenceNode', {data: {polarity: 0, valence: 'neutral'}}, [
u('WordNode', [u('TextNode', 'Bad')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'news')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'though')]),
u('PunctuationNode', '.')
]),
u('WhiteSpaceNode', ' '),
u('SentenceNode', {data: {polarity: 3, valence: 'positive'}}, [
u('WordNode', [u('TextNode', 'This')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'product')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'is')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'not')]),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: -3, valence: 'negative'}}, [
u('TextNode', {data: {polarity: -3, valence: 'negative'}}, 'bad')
]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'at')]),
u('WhiteSpaceNode', ' '),
u('WordNode', [u('TextNode', 'all')]),
u('PunctuationNode', '.')
]),
u('WhiteSpaceNode', ' '),
u('SentenceNode', {data: {polarity: 5, valence: 'positive'}}, [
u('WordNode', [u('TextNode', 'Hai')]),
u('WhiteSpaceNode', ' '),
u('WordNode', {data: {polarity: 3, valence: 'positive'}}, [
u('TextNode', {data: {polarity: 3, valence: 'positive'}}, 'sexy')
]),
u('PunctuationNode', '!'),
u('WhiteSpaceNode', ' '),
u('SymbolNode', {data: {polarity: 2, valence: 'positive'}}, '😏')
])
])
])
)
t.end()
})