Commit 1f332dff authored by Zolnierczuk, Piotr's avatar Zolnierczuk, Piotr
Browse files

added round_err subroutine to mathutils

parent 269fe99b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -6,6 +6,12 @@ import numpy as np

from scipy.spatial.transform import Rotation as R

def round_err(val, err, digits=1):
    "round numbers to significant digits in err"
    digits = -int(np.floor(np.log10(abs(err))))+digits
    val   = round(val, digits)
    err   = round(err, digits)
    return val, err

def polystr(coeff, variable='x', varsep=' '):
    "convert polynomial coefficients to a printable format"
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ PySEN revision module
"""
import sys
__version__  = "1.3"
__release__  = "b2"
__release__  = "b3"
__date__     = "June 20, 2023"

def version(full=False):
+21 −0
Original line number Diff line number Diff line
@@ -38,6 +38,27 @@ class MathUtilTestCase(unittest.TestCase):
        self.assertAlmostEqual(0.0, ave, 1)
        self.assertAlmostEqual(1.0, var, 1)

    def test_round_err(self):
        val, err = pmu.round_err(0.12345, 0.012)
        self.assertAlmostEqual(0.123, val, 3)
        self.assertAlmostEqual(0.012, err, 3)

        val, err = pmu.round_err(1.23456, 0.123)
        self.assertAlmostEqual(1.23, val, 3)
        self.assertAlmostEqual(0.12, err, 3)

        val, err = pmu.round_err(12.3456, 1.231)
        self.assertAlmostEqual(12.3, val, 3)
        self.assertAlmostEqual( 1.2, err, 3)

        val, err = pmu.round_err(12.5556, 1.251)
        self.assertAlmostEqual(12.6, val, 3)
        self.assertAlmostEqual( 1.3, err, 3)

        val, err = pmu.round_err(123456.0, 12345.0)
        self.assertAlmostEqual(123000.0, val, 3)
        self.assertAlmostEqual( 12000.0, err, 3)


if __name__ == "__main__":
    unittest.main(exit=False, verbosity=2)