Skip to content

Commit 8b6ce2a

Browse files
committed
Update of tests, using test directory
1 parent 959aa25 commit 8b6ce2a

File tree

14 files changed

+119
-101
lines changed

14 files changed

+119
-101
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ else
1010
endif
1111

1212
all:
13-
python $(MAIN) _tests/files/test_class1.m
13+
python $(MAIN) tests/files/test_class1.m
1414

1515
install:
1616
python setup.py install

_tests/files/test_Zall_ref.py

Whitespace-only changes.

matlabparser/parser.py

Lines changed: 5 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
1010
"""
1111
import os
12-
import unittest
1312
import smop
1413
from smop.main import parse_matlab_lines
1514

@@ -152,53 +151,8 @@ def merge_lines(LC):
152151
i+=1
153152
return LC_new
154153

155-
class TestParser(unittest.TestCase):
156-
157-
def test_names(self):
158-
#self.assertEqual(extract_function_name('function y = f(a,b)'),'f'))
159-
self.assertEqual(parse_function_def('function y = f(a,b)'),('f',['y'],['a','b']))
160-
self.assertEqual(parse_function_def('function f; '),('f',[],[]))
161-
self.assertEqual(parse_function_def('function f ; '),('f',[],[]))
162-
self.assertEqual(parse_function_def('function foo '),('foo',[],[]))
163-
self.assertEqual(parse_function_def('function foo() '),('foo',[],[]))
164-
self.assertEqual(parse_function_def('function foo ( ); '),('foo',[],[]))
165-
self.assertEqual(parse_function_def('function [a b] = f(c)'),('f',['a','b'],['c']))
166-
self.assertEqual(parse_function_def('function [a,b] = f(c)'),('f',['a','b'],['c']))
167-
self.assertEqual(parse_class_def('classdef y<h') ,('y',['h']))
168-
self.assertEqual(parse_class_def('classdef y < h ;'),('y',['h']))
169-
self.assertEqual(parse_class_def('classdef y') ,('y',[]))
170-
self.assertEqual(parse_class_def('classdef y;') ,('y',[]))
171-
self.assertRaises(Exception,parse_class_def,'classdef')
172-
173-
def test_comment(self):
174-
self.assertEqual(separate_comment(''),('',''))
175-
self.assertEqual(separate_comment('%%'),('','%%'))
176-
self.assertEqual(separate_comment(' %%'),(' ','%%'))
177-
self.assertEqual(separate_comment('%hi'),('','%hi'))
178-
self.assertEqual(separate_comment("""s='%' %com"""),("""s='%' """,'%com'))
179-
self.assertEqual(separate_comment("""A=B' %com"""),("""A=B' """,'%com'))
180-
self.assertEqual(separate_comment("""s='%';A=B' %com"""),("""s='%';A=B' """,'%com'))
181-
self.assertEqual(separate_comment("""s='%';A=B' %com '%com2"""),("""s='%';A=B' ""","""%com '%com2"""))
182-
183-
def test_string(self):
184-
self.assertEqual(find_strings("""""") ,([],False))
185-
self.assertEqual(find_strings("""AAAA""") ,([],False))
186-
self.assertEqual(find_strings("""'""") ,([(0,'')],True))
187-
self.assertEqual(find_strings("""''""") ,([(0,'')],False))
188-
self.assertEqual(find_strings(""" 'a'"""),([(3,'a')],False))
189-
self.assertEqual(find_strings("""x='a' """),([(2,'a')],False))
190-
self.assertEqual(find_strings("""x= 'a'"""),([(3,'a')],False))
191-
self.assertEqual(find_strings(""" x=A' """),([],False))
192-
self.assertEqual(find_strings(""" [0]' """),([],False))
193-
self.assertEqual(find_strings(""" x(:)' """),([],False))
194-
self.assertEqual(find_strings(""" {0}' """),([],False))
195-
self.assertEqual(find_strings(""" 0.' """),([],False))
196-
self.assertEqual(find_strings(""" A'' """),([],False))
197-
self.assertEqual(find_strings(""" (A')' """),([],False))
198-
self.assertEqual(find_strings(""" [0] ' """),([],False))
199-
self.assertEqual(find_strings(""" [a 'bbb'] """),([(4,'bbb')],False))
200-
self.assertEqual(find_strings("""f('it''s') """),([(2,"""it''s""")],False))
201-
self.assertEqual(find_strings("""x='a';y='b'"""),([(2,'a'),(8,'b')],False))
154+
155+
202156

203157
class line():
204158
def __init__(self):
@@ -210,6 +164,9 @@ def __init__(self,l):
210164
# __all__ = ['parse']
211165

212166

167+
# --------------------------------------------------------------------------------}
168+
# --- Matlab File
169+
# --------------------------------------------------------------------------------{
213170
class MatlabFile:
214171
def __init__(self,filename=None,lines=None):
215172

matlabparser/parsing_tools.py

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import unittest
21
import re
32

43

@@ -180,47 +179,8 @@ def extract_quotedstring(s):
180179
return s_backup[1:i]
181180

182181

183-
class TestParsingTools(unittest.TestCase):
184-
185-
def assertEqual(self, first, second, msg=None):
186-
#print('\n>',first,'<',' >',second,'<')
187-
super(TestParsingTools, self).assertEqual(first, second, msg)
188-
189-
def test_strings(self):
190-
self.assertEqual(string_contains_charset('g' ,r'[a-z]'),True)
191-
self.assertEqual(string_contains_charset('09' ,r'[a-z]'),False)
192-
self.assertEqual(string_contains_charset('0g9',r'[a-z]'),True)
193-
self.assertEqual(previous_nonspace_pos ('01 8',8),1 )
194-
self.assertEqual(previous_nonspace_pos (' 8',8),-1)
195-
self.assertEqual(previous_nonspace_char('01 8',8),'1')
196-
self.assertEqual(previous_nonspace_char(' 8',8),'')
197-
198-
def test_quotes(self):
199-
# self.assertEqual(is_in_quotes("""0 '345' 7 """ ,4) ,True)
200-
# self.assertEqual(is_in_quotes("""01'345' 7 """ ,2) ,False)
201-
#self.assertEqual(is_in_quotes("""01'345' 7 """ ,6) ,False)
202-
self.assertEqual(replace_inquotes("""''""" ,'X') ,'XX')
203-
self.assertEqual(replace_inquotes("""0'23'5""" ,'X') ,'0XXXX5')
204-
self.assertEqual(replace_inquotes("""0'2"'5""" ,'X') ,'0XXXX5')
205-
self.assertEqual(replace_inquotes("""0"23"5""" ,'X') ,'0XXXX5')
206-
self.assertEqual(replace_inquotes("""0'2''5'7""" ,'X') ,'0XXXXXX7')
207-
self.assertEqual(replace_inquotes("""0'23""" ,'X') ,'0XXX')
208-
self.assertEqual(replace_inquotes("""0"23""" ,'X') ,'0XXX')
209-
self.assertEqual(extract_quotedstring("""''""") ,'')
210-
self.assertEqual(extract_quotedstring("""'a'""") ,'a')
211-
self.assertEqual(extract_quotedstring("""'a'b""") ,'a')
212-
self.assertEqual(extract_quotedstring("""'a""") ,'a')
213-
self.assertEqual(extract_quotedstring("""'a''a'""") ,'a\'\'a')
214-
self.assertEqual(extract_quotedstring("""'a"a'""") ,'a"a')
215-
self.assertEqual(extract_quotedstring('""') ,'')
216-
#print('>>>>>>>>>>>>>>')
217-
#print('>>>>>>>>>>>>>>')
218-
#print('>>>>>>>>>>>>>>')
219-
#print('>>>>>>>>>>>>>>')
220-
#self.assertEqual(separate_comment('s='i'),(' ',' '))
221182

222183
if __name__ == "__main__":
223-
unittest.main()
224184
print(is_in_quotes("""0'""2'""",4))
225185
# (b,p1,p2)=is_surrounded_by(r'function [\'a b c\']=issur([,])',11,r'\'',r'\'')
226186
# print(b,p1,p2)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

_tests/test_common.py renamed to tests/test_common.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
66

77
from matlabparser import *
8-
from matlabparser.parser import TestParser
9-
from matlabparser.parsing_tools import TestParsingTools
108
from matlabparser.parser import matlablines2python
119

1210
# --------------------------------------------------------------------------------}

_tests/test_files.py renamed to tests/test_files.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,25 @@ def __init__(self,output=None):
2020
self.output=output
2121

2222
def convert(mfile):
23-
opts = options(mfile.replace('.m','.py'))
24-
#print('>>>>>>')
25-
#print('>>>>>> Converting:',mfile)
23+
output = os.path.join(os.path.dirname(mfile),'_'+os.path.basename(mfile).replace('.m','.py'))
24+
opts = options(output)
25+
#print('>>>>>> Converting:',mfile, opts)
2626
# opts.smop=True
2727
mparser.matlab2python(mfile,opts)
2828

2929
def compare_to_ref(mfile):
30-
opts = options(mfile.replace('.m','.py'))
31-
ref_output =mfile.replace('.m','_ref.py')
32-
#print('>>>>>> Converting:',mfile)
30+
output = os.path.join(os.path.dirname(mfile),'_'+os.path.basename(mfile).replace('.m','.py'))
31+
opts = options(output)
32+
#print('>>>>>> Converting:',mfile, opts)
3333
mparser.matlab2python(mfile,opts)
3434
#print('>>>>>>')
3535

3636
class TestMatlab2Python(unittest.TestCase):
3737

3838

3939
def test_spectrum(self):
40-
convert('_tests/files/run_all.m')
41-
compare_to_ref('_tests/files/fSpectrum.m')
40+
convert('tests/files/run_all.m')
41+
compare_to_ref('tests/files/fSpectrum.m')
4242

4343

4444
# --------------------------------------------------------------------------------}
@@ -47,8 +47,8 @@ def test_spectrum(self):
4747

4848
class TestZAllConverted(unittest.TestCase):
4949
def test_Zspectrum(self):
50-
import _tests.files
51-
from _tests.files.fSpectrum import fSpectrum
50+
import tests.files
51+
from tests.files._fSpectrum import fSpectrum
5252
dt = 0.1
5353
t = np.arange(0,1+dt,dt)
5454
y = np.sin(t)
File renamed without changes.

tests/test_parser.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import numpy as np
2+
import unittest
3+
4+
from matlabparser.parser import *
5+
6+
# --------------------------------------------------------------------------------}
7+
# ---
8+
# --------------------------------------------------------------------------------{
9+
class TestParser(unittest.TestCase):
10+
11+
def test_names(self):
12+
#self.assertEqual(extract_function_name('function y = f(a,b)'),'f'))
13+
self.assertEqual(parse_function_def('function y = f(a,b)'),('f',['y'],['a','b']))
14+
self.assertEqual(parse_function_def('function f; '),('f',[],[]))
15+
self.assertEqual(parse_function_def('function f ; '),('f',[],[]))
16+
self.assertEqual(parse_function_def('function foo '),('foo',[],[]))
17+
self.assertEqual(parse_function_def('function foo() '),('foo',[],[]))
18+
self.assertEqual(parse_function_def('function foo ( ); '),('foo',[],[]))
19+
self.assertEqual(parse_function_def('function [a b] = f(c)'),('f',['a','b'],['c']))
20+
self.assertEqual(parse_function_def('function [a,b] = f(c)'),('f',['a','b'],['c']))
21+
self.assertEqual(parse_class_def('classdef y<h') ,('y',['h']))
22+
self.assertEqual(parse_class_def('classdef y < h ;'),('y',['h']))
23+
self.assertEqual(parse_class_def('classdef y') ,('y',[]))
24+
self.assertEqual(parse_class_def('classdef y;') ,('y',[]))
25+
self.assertRaises(Exception,parse_class_def,'classdef')
26+
27+
def test_comment(self):
28+
self.assertEqual(separate_comment(''),('',''))
29+
self.assertEqual(separate_comment('%%'),('','%%'))
30+
self.assertEqual(separate_comment(' %%'),(' ','%%'))
31+
self.assertEqual(separate_comment('%hi'),('','%hi'))
32+
self.assertEqual(separate_comment("""s='%' %com"""),("""s='%' """,'%com'))
33+
self.assertEqual(separate_comment("""A=B' %com"""),("""A=B' """,'%com'))
34+
self.assertEqual(separate_comment("""s='%';A=B' %com"""),("""s='%';A=B' """,'%com'))
35+
self.assertEqual(separate_comment("""s='%';A=B' %com '%com2"""),("""s='%';A=B' ""","""%com '%com2"""))
36+
37+
def test_string(self):
38+
self.assertEqual(find_strings("""""") ,([],False))
39+
self.assertEqual(find_strings("""AAAA""") ,([],False))
40+
self.assertEqual(find_strings("""'""") ,([(0,'')],True))
41+
self.assertEqual(find_strings("""''""") ,([(0,'')],False))
42+
self.assertEqual(find_strings(""" 'a'"""),([(3,'a')],False))
43+
self.assertEqual(find_strings("""x='a' """),([(2,'a')],False))
44+
self.assertEqual(find_strings("""x= 'a'"""),([(3,'a')],False))
45+
self.assertEqual(find_strings(""" x=A' """),([],False))
46+
self.assertEqual(find_strings(""" [0]' """),([],False))
47+
self.assertEqual(find_strings(""" x(:)' """),([],False))
48+
self.assertEqual(find_strings(""" {0}' """),([],False))
49+
self.assertEqual(find_strings(""" 0.' """),([],False))
50+
self.assertEqual(find_strings(""" A'' """),([],False))
51+
self.assertEqual(find_strings(""" (A')' """),([],False))
52+
self.assertEqual(find_strings(""" [0] ' """),([],False))
53+
self.assertEqual(find_strings(""" [a 'bbb'] """),([(4,'bbb')],False))
54+
self.assertEqual(find_strings("""f('it''s') """),([(2,"""it''s""")],False))
55+
self.assertEqual(find_strings("""x='a';y='b'"""),([(2,'a'),(8,'b')],False))
56+
57+
if __name__ == '__main__':
58+
unittest.main()

tests/test_parsingtools.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import numpy as np
2+
import unittest
3+
4+
from matlabparser.parsing_tools import *
5+
# --------------------------------------------------------------------------------}
6+
# ---
7+
# --------------------------------------------------------------------------------{
8+
class TestParsingTools(unittest.TestCase):
9+
10+
def assertEqual(self, first, second, msg=None):
11+
#print('\n>',first,'<',' >',second,'<')
12+
super(TestParsingTools, self).assertEqual(first, second, msg)
13+
14+
def test_strings(self):
15+
self.assertEqual(string_contains_charset('g' ,r'[a-z]'),True)
16+
self.assertEqual(string_contains_charset('09' ,r'[a-z]'),False)
17+
self.assertEqual(string_contains_charset('0g9',r'[a-z]'),True)
18+
self.assertEqual(previous_nonspace_pos ('01 8',8),1 )
19+
self.assertEqual(previous_nonspace_pos (' 8',8),-1)
20+
self.assertEqual(previous_nonspace_char('01 8',8),'1')
21+
self.assertEqual(previous_nonspace_char(' 8',8),'')
22+
23+
def test_quotes(self):
24+
# self.assertEqual(is_in_quotes("""0 '345' 7 """ ,4) ,True)
25+
# self.assertEqual(is_in_quotes("""01'345' 7 """ ,2) ,False)
26+
#self.assertEqual(is_in_quotes("""01'345' 7 """ ,6) ,False)
27+
self.assertEqual(replace_inquotes("""''""" ,'X') ,'XX')
28+
self.assertEqual(replace_inquotes("""0'23'5""" ,'X') ,'0XXXX5')
29+
self.assertEqual(replace_inquotes("""0'2"'5""" ,'X') ,'0XXXX5')
30+
self.assertEqual(replace_inquotes("""0"23"5""" ,'X') ,'0XXXX5')
31+
self.assertEqual(replace_inquotes("""0'2''5'7""" ,'X') ,'0XXXXXX7')
32+
self.assertEqual(replace_inquotes("""0'23""" ,'X') ,'0XXX')
33+
self.assertEqual(replace_inquotes("""0"23""" ,'X') ,'0XXX')
34+
self.assertEqual(extract_quotedstring("""''""") ,'')
35+
self.assertEqual(extract_quotedstring("""'a'""") ,'a')
36+
self.assertEqual(extract_quotedstring("""'a'b""") ,'a')
37+
self.assertEqual(extract_quotedstring("""'a""") ,'a')
38+
self.assertEqual(extract_quotedstring("""'a''a'""") ,'a\'\'a')
39+
self.assertEqual(extract_quotedstring("""'a"a'""") ,'a"a')
40+
self.assertEqual(extract_quotedstring('""') ,'')
41+
#print('>>>>>>>>>>>>>>')
42+
#print('>>>>>>>>>>>>>>')
43+
#print('>>>>>>>>>>>>>>')
44+
#print('>>>>>>>>>>>>>>')
45+
#self.assertEqual(separate_comment('s='i'),(' ',' '))

0 commit comments

Comments
 (0)