File size: 1,437 Bytes
985c397
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# SPDX-License-Identifier: LGPL-2.1-or-later

import string

row = 2

def add_test(expression, expected_result):
	global row
	App.ActiveDocument.Spreadsheet.set('A{0}'.format(row), expression)
	App.ActiveDocument.Spreadsheet.set('B{}'.format(row), expected_result)
	App.ActiveDocument.Spreadsheet.set('C{}'.format(row), '=A{0} == B{0} ? <<OK>> : <<NOT OK>>'.format(row))
	row = row + 1

App.newDocument("Unnamed")
App.setActiveDocument("Unnamed")
App.ActiveDocument=App.getDocument("Unnamed")
Gui.ActiveDocument=Gui.getDocument("Unnamed")

App.activeDocument().addObject('Spreadsheet::Sheet','Spreadsheet')
App.ActiveDocument.Spreadsheet.setColumnWidth('B', 159)
App.ActiveDocument.Spreadsheet.set('A1', 'Expression')
App.ActiveDocument.Spreadsheet.set('B1', 'Expected result')
App.ActiveDocument.Spreadsheet.set('C1', 'Status')

# Plus and minus signs
add_test('=5 - 4', '1')
add_test('=-5 - 4', '-9')
add_test('=-5 - -4', '-1')
add_test('=5 - -4', '9')

add_test('=5 + 4', '9')
add_test('=-5 + 4', '-1')
add_test('=-5 + -4', '-9')
add_test('=5 + -4', '1')

add_test('=+5 + +4', '9')
add_test('=-5 + +4', '-1')
add_test('=-5 + -4', '-9')
add_test('=+5 + -4', '1')

add_test('=4*5', '20')
add_test('=8/2', '4')
add_test('=sqrt(4)', '2')
add_test('=sin(0)', '0')
add_test('=cos(0)', '1')

# Exponentiation
add_test('=(3^2 + 4^2) ^ .5', '5')

App.ActiveDocument.recompute()
Gui.ActiveDocument.setEdit(App.ActiveDocument.ActiveObject.Name)