-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathtest_sif.py
79 lines (68 loc) · 2.56 KB
/
test_sif.py
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
# coding: utf-8
# 2021/5/20 @ tongshiwei
from EduNLP.SIF import is_sif
from EduNLP.SIF import to_sif
from EduNLP.SIF import sif4sci
import pytest
def test_is_sif():
text = '若$x,y$满足约束条件' \
'$\\left\\{\\begin{array}{c}2 x+y-2 \\leq 0 \\\\ x-y-1 \\geq 0 \\\\ y+1 \\geq 0\\end{array}\\right.$,' \
'则$z=x+7 y$的最大值$\\SIFUnderline$'
assert is_sif(text) == 1
text = '公式需要满足完整性,完整的公式如' \
'$\\begin{matrix} a & b \\\\ c & d \\end{matrix}$' \
',不完整的公式如$\\begin{matrix} a & b \\\\ c & d$'
with pytest.raises(ValueError):
is_sif(text)
text = '公式需要满足符合katex的支持性,可支持的公式如' \
'$\\begin{matrix} a & b \\\\ c & d \\end{matrix}$' \
',不可支持的公式如$\\frac{ \\dddot y }{ x }$'
with pytest.raises(ValueError):
is_sif(text)
def test_to_sif():
text = '某校一个课外学习小组为研究某作物的发芽率y和温度x(单位...'
siftext = to_sif(text)
print(siftext)
ret = is_sif(text, return_parser=True)
assert ret[0] == 0
if ret[0] is not True:
siftext = to_sif(text, parser=ret[1])
print(siftext)
def test_sci4sif(figure0, figure1, figure0_base64, figure1_base64):
repr(sif4sci(
r"如图所示,则$\bigtriangleup ABC$的面积是$\SIFBlank$。$\FigureID{1}$",
tokenization_params={
"formula_params": {
"method": "ast",
"return_type": "ast"
}
}
))
repr(sif4sci(
r"如图所示,则$\FormFigureID{0}$的面积是$\SIFBlank$。$\FigureID{1}$",
figures={
"0": figure0,
"1": figure1
},
))
repr(sif4sci(
item=r"如图所示,则$\FormFigureBase64{%s}$的面积是$\SIFBlank$。$\FigureBase64{%s}$" % (
figure0_base64, figure1_base64
),
tokenization_params={
"figure_params": {"figure_instance": True}
}
))
repr(sif4sci(
r"如图所示,则$\bigtriangleup ABC$的面积是$\SIFBlank$。$\FigureID{1}$", mode=0
))
repr(sif4sci(
r"如图所示,则$\bigtriangleup ABC$的面积是$\SIFBlank$。$\FigureID{1}$", mode=1
))
repr(sif4sci(
r"如图所示,则$\bigtriangleup ABC$的面积是$\SIFBlank$。$\FigureID{1}$", mode=2
))
with pytest.raises(KeyError):
repr(sif4sci(
r"如图所示,则$\bigtriangleup ABC$的面积是$\SIFBlank$。$\FigureID{1}$", mode=3
))