11from .local .interface import mkTag
2- from .validation import vStr
2+ from .validation import vStr , vBool , vNum
33
44def mkTweak (x ):
55 match x :
@@ -19,12 +19,12 @@ def mkStop(x):
1919 case ("bondIncurLoss" , bn ):
2020 return mkTag (("BondIncurLoss" , vStr (bn )))
2121 case ("bondIncurPrinLoss" , bn , amt ):
22- return mkTag (("BondIncurPrinLoss" , [vStr (bn ), amt ]))
22+ return mkTag (("BondIncurPrinLoss" , [vStr (bn ), vNum ( amt ) ]))
2323 case ("bondIncurIntLoss" , bn , amt ):
24- return mkTag (("BondIncurIntLoss" , [vStr (bn ), amt ]))
24+ return mkTag (("BondIncurIntLoss" , [vStr (bn ), vNum ( amt ) ]))
2525 case ("bondPricingEqOriginBal" , bn , f1 , f2 ):
26- return mkTag (("BondPricingEqOriginBal" , [vStr (bn ), f1 , f2 ] ))
26+ return mkTag (("BondPricingEqOriginBal" , [vStr (bn ), vBool ( f1 ), vBool ( f2 ) ] ))
2727 case ("bondMetTargetIrr" , bn , irr ):
28- return mkTag (("BondMetTargetIrr" , [vStr (bn ), irr ]))
28+ return mkTag (("BondMetTargetIrr" , [vStr (bn ), vNum ( irr ) ]))
2929 case _:
3030 raise RuntimeError (f"failed to match { x } :mkStop" )
0 commit comments