Skip to content

Commit

Permalink
add new test
Browse files Browse the repository at this point in the history
  • Loading branch information
VanyaBelyaev committed Aug 7, 2024
1 parent 03a3db9 commit 7a84335
Showing 1 changed file with 158 additions and 0 deletions.
158 changes: 158 additions & 0 deletions ostap/math/tests/test_math_valerrors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# =============================================================================
# Copyright (c) Ostap developpers.
# =============================================================================
## @file ostap/math/tests/test_math_valerrors.py
# Test module for the file ostap/utils/valerrors.py
#
# - These objects are *NOT* for math!
# - The objects are used for graphs
#
# =============================================================================
""" Test module for ostap/utils/valerrors.py
- These objects are *NOT* for math!
"""
# =============================================================================
from ostap.utils.valerrors import VE , VAE , VME, AE
import ostap.io.zipshelve as DBASE
import pickle
# =============================================================================
# logging
# =============================================================================
from ostap.logger.logger import getLogger
if '__main__' == __name__ : logger = getLogger ( 'test_math_valerros' )
else : logger = getLogger ( __name__ )
# =============================================================================

# =============================================================================
## test asymmetric errors:
def test_asymerr () :

logger = getLogger( 'test_asymerr')
logger.info ( 'Test AsymErrors' )


ae1 = AE ( -0.5 , 1.0 )
ae2 = AE ( 1.0 , -0.5 )
ae3 = AE ( 0.5 , 1.0 )

logger.info ( '%s %s %s' % ( ae1 , ae2 , ae3 ) )

assert ae1 == ae2 , ' %s != %s ' % ( ae1 , ae2 )
assert ae1 == ae3 , ' %s != %s ' % ( ae1 , ae3 )
assert ae2 == ae3 , ' %s != %s ' % ( ae2 , ae3 )

ae1_ = pickle.loads ( pickle.dumps ( ae1 ) )
ae2_ = pickle.loads ( pickle.dumps ( ae2 ) )
ae3_ = pickle.loads ( pickle.dumps ( ae3 ) )

assert ae1_ == ae2 , ' %s != %s ' % ( ae1_ , ae2 )
assert ae1_ == ae3 , ' %s != %s ' % ( ae1_ , ae3 )
assert ae2_ == ae3 , ' %s != %s ' % ( ae2_ , ae3 )


# =============================================================================
## test asymmetric errors:
def test_valasymerr () :

logger = getLogger( 'test_valasymerr')
logger.info ( 'Test ValWithErrors' )

ae1 = VAE ( 1.0 , -0.5 , 1.0 )
ae2 = VAE ( VE ( 1.0 , 0.0 ) , -0.5 , 1.0 )
ae3 = VAE ( VE ( 1.0 , 0.0 ) , AE ( -0.5 , 1.0 ) )

logger.info ( '%s %s %s' % ( ae1 , ae2 , ae3 ) )

assert ae1 == ae2 , ' %s != %s ' % ( ae1 , ae2 )
assert ae1 == ae3 , ' %s != %s ' % ( ae1 , ae3 )
assert ae2 == ae3 , ' %s != %s ' % ( ae2 , ae3 )

ae1_ = pickle.loads ( pickle.dumps ( ae1 ) )
ae2_ = pickle.loads ( pickle.dumps ( ae2 ) )
ae3_ = pickle.loads ( pickle.dumps ( ae3 ) )

assert ae1_ == ae2 , ' %s != %s ' % ( ae1_ , ae2 )
assert ae1_ == ae3 , ' %s != %s ' % ( ae1_ , ae3 )
assert ae2_ == ae3 , ' %s != %s ' % ( ae2_ , ae3 )

## conversion to VE without bias
ve1 = ae1.asVE ( bias = False )
ve2 = ae2.asVE ( bias = False )
ve3 = ae3.asVE ( bias = False )

logger.info ( 'asVE ( bias = False ) : %s %s %s' % ( ve1.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve2.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve3.toString ( '( %+-.3f +/- %-.3f )' ) ) )

## conversion to VE without bias
ve1 = ae1.asVE ( bias = True )
ve2 = ae2.asVE ( bias = True )
ve3 = ae3.asVE ( bias = True )

logger.info ( 'asVE ( bias = True ) : %s %s %s' % ( ve1.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve2.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve3.toString ( '( %+-.3f +/- %-.3f )' ) ) )

# =============================================================================
## test multiple asymmetric errors:
def test_valmulterr () :

logger = getLogger( 'test_valmulterr')
logger.info ( 'Test ValWithMultiErrors' )

me1 = VME ( 1.0 , 0.5 , 0.5 , -0.6 , 1.0 , 0.7 , -0.3 )
me2 = VME ( 1.0 , AE( 0.5 , 0.5 ) , AE ( -0.6 , 1.0 ) , AE ( 0.7 , -0.3 ) )
me3 = VME ( VE ( 1 , 0.5 **2 ) , AE ( -0.6 , 1.0 ) , AE ( 0.7 , -0.3 ) )

ae1 = me1.asVAE()

logger.info ( '%s %s %s' % ( me1 , me2 , me3 ) )

assert me1 == me2 , ' %s != %s ' % ( me1 , me2 )
assert me1 == me3 , ' %s != %s ' % ( me1 , me3 )
assert me2 == me3 , ' %s != %s ' % ( me2 , me3 )

me1_ = pickle.loads ( pickle.dumps ( me1 ) )
me2_ = pickle.loads ( pickle.dumps ( me2 ) )
me3_ = pickle.loads ( pickle.dumps ( me3 ) )

assert me1_ == me2 , ' %s != %s ' % ( me1_ , me2 )
assert me1_ == me3 , ' %s != %s ' % ( me1_ , me3 )
assert me2_ == me3 , ' %s != %s ' % ( me2_ , me3 )

ae1 = me1.asVAE()
ae2 = me2.asVAE()
ae3 = me3.asVAE()

logger.info ( 'as VAE : %s %s %s' % ( ae1 , ae2 , ae3 ) )

## conversion to VE without bias
ve1 = me1.asVE ( bias = False )
ve2 = me2.asVE ( bias = False )
ve3 = me3.asVE ( bias = False )

logger.info ( 'asVE ( bias = False ) : %s %s %s' % ( ve1.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve2.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve3.toString ( '( %+-.3f +/- %-.3f )' ) ) )

## conversion to VE without bias
ve1 = me1.asVE ( bias = True )
ve2 = me2.asVE ( bias = True )
ve3 = me3.asVE ( bias = True )

logger.info ( 'asVE ( bias = True ) : %s %s %s' % ( ve1.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve2.toString ( '( %+-.3f +/- %-.3f )' ) ,
ve3.toString ( '( %+-.3f +/- %-.3f )' ) ) )

# =============================================================================
if '__main__' == __name__ :

test_asymerr ()
test_valasymerr ()
test_valmulterr ()

# =============================================================================
## The END
# =============================================================================

0 comments on commit 7a84335

Please sign in to comment.