Skip to content

Commit

Permalink
Spreadsheet: fix tests to use fuzzy placement comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
DeepSOIC authored and wwmayer committed Oct 12, 2019
1 parent 23e7083 commit f1a8dc4
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions src/Mod/Spreadsheet/TestSpreadsheet.py
Expand Up @@ -835,6 +835,13 @@ def testCrossDocumentLinks(self):

def testMatrix(self):
''' Test Matrix/Vector/Placement/Rotation operations'''

def plm_equal(plm1, plm2):
from math import sqrt
qpair = zip(plm1.Rotation.Q, plm2.Rotation.Q)
qdiff1 = sqrt(sum([(v1 - v2)**2 for v1,v2 in qpair]))
qdiff2 = sqrt(sum([(v1 + v2)**2 for v1,v2 in qpair]))
return (plm1.Base-plm2.Base).Length < 1e-7 and (qdiff1 < 1e-12 or dqiff2 < 1e-12)

sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')

Expand Down Expand Up @@ -937,16 +944,16 @@ def testMatrix(self):

self.assertEqual(sheet.A4,pla)

self.assertEqual(sheet.B4,ipla*ipla)
self.assertEqual(sheet.B4,pla**-2)
self.assertEqual(sheet.C4,ipla)
self.assertEqual(sheet.C4,pla**-1)
self.assertEqual(sheet.D4,FreeCAD.Placement())
self.assertEqual(sheet.D4,pla**0)
self.assertEqual(sheet.E4,pla)
self.assertEqual(sheet.E4,pla**1)
self.assertEqual(sheet.F4,pla*pla)
self.assertEqual(sheet.F4,pla**2)
self.assertTrue(plm_equal(sheet.B4,ipla*ipla))
self.assertTrue(plm_equal(sheet.B4,pla**-2))
self.assertTrue(plm_equal(sheet.C4,ipla))
self.assertTrue(plm_equal(sheet.C4,pla**-1))
self.assertTrue(plm_equal(sheet.D4,FreeCAD.Placement()))
self.assertTrue(plm_equal(sheet.D4,pla**0))
self.assertTrue(plm_equal(sheet.E4,pla))
self.assertTrue(plm_equal(sheet.E4,pla**1))
self.assertTrue(plm_equal(sheet.F4,pla*pla))
self.assertTrue(plm_equal(sheet.F4,pla**2))

tol = 1e-10

Expand Down

0 comments on commit f1a8dc4

Please sign in to comment.