Spreadsheet: fix tests to use fuzzy placement comparison

This commit is contained in:
DeepSOIC
2019-10-12 03:42:09 +03:00
committed by wwmayer
parent 048671a507
commit 2e5c0fccdd

View File

@@ -836,6 +836,13 @@ class SpreadsheetCases(unittest.TestCase):
def testMatrix(self): def testMatrix(self):
''' Test Matrix/Vector/Placement/Rotation operations''' ''' 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') sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')
mat = FreeCAD.Matrix() mat = FreeCAD.Matrix()
@@ -937,16 +944,16 @@ class SpreadsheetCases(unittest.TestCase):
self.assertEqual(sheet.A4,pla) self.assertEqual(sheet.A4,pla)
self.assertEqual(sheet.B4,ipla*ipla) self.assertTrue(plm_equal(sheet.B4,ipla*ipla))
self.assertEqual(sheet.B4,pla**-2) self.assertTrue(plm_equal(sheet.B4,pla**-2))
self.assertEqual(sheet.C4,ipla) self.assertTrue(plm_equal(sheet.C4,ipla))
self.assertEqual(sheet.C4,pla**-1) self.assertTrue(plm_equal(sheet.C4,pla**-1))
self.assertEqual(sheet.D4,FreeCAD.Placement()) self.assertTrue(plm_equal(sheet.D4,FreeCAD.Placement()))
self.assertEqual(sheet.D4,pla**0) self.assertTrue(plm_equal(sheet.D4,pla**0))
self.assertEqual(sheet.E4,pla) self.assertTrue(plm_equal(sheet.E4,pla))
self.assertEqual(sheet.E4,pla**1) self.assertTrue(plm_equal(sheet.E4,pla**1))
self.assertEqual(sheet.F4,pla*pla) self.assertTrue(plm_equal(sheet.F4,pla*pla))
self.assertEqual(sheet.F4,pla**2) self.assertTrue(plm_equal(sheet.F4,pla**2))
tol = 1e-10 tol = 1e-10