def checkTransform(transform, shapeIn, invertible, hasDeriv, hasParams, is1D, eps, its, checkAdditional = None): assert transform.tag is not None transformEvaled = xf.eval_local(repr(transform)) assert transformEvaled.tag == transform.tag assert repr(transform) == repr(transformEvaled) if hasParams: params = transform.params transformParsed = transform.parseAll(params) assert transformParsed.tag == transform.tag assert_allclose(transformParsed.params, params) assert_allclose(transformEvaled.params, params) for it in range(its): x = randn(*shapeIn) if checkAdditional is not None: checkAdditional(transform, x, eps) if True: assert_allclose(transformEvaled(x), transform(x)) if hasParams: assert_allclose(transformParsed(x), transform(x)) if hasDeriv: check_deriv(transform, x, eps) if is1D and hasDeriv: check_derivDeriv(transform, x, eps) if hasParams: check_derivParams(transform, x, eps) if hasDeriv and hasParams and is1D: check_derivParamsDeriv(transform, x, eps) if invertible and hasDeriv: check_logJac(transform, x) if invertible and hasDeriv: check_logJacDeriv(transform, x, eps) if invertible and hasDeriv and hasParams: check_logJacDerivParams(transform, x, eps) if invertible: check_inv(transform, x, randn(*shapeIn))
def checkDiscreteTransform(transform, domain, codomain, its, checkAdditional = None): assert transform.tag is not None transformEvaled = xf.eval_local(repr(transform)) assert transformEvaled.tag == transform.tag assert repr(transform) == repr(transformEvaled) for it in range(its): x = random.choice(domain) if checkAdditional is not None: checkAdditional(transform, x) assert transform(x) in codomain assert_allclose(transformEvaled(x), transform(x))
def checkDiscreteTransform(transform, domain, codomain, its, checkAdditional=None): assert transform.tag is not None transformEvaled = xf.eval_local(repr(transform)) assert transformEvaled.tag == transform.tag assert repr(transform) == repr(transformEvaled) for it in range(its): x = random.choice(domain) if checkAdditional is not None: checkAdditional(transform, x) assert transform(x) in codomain assert_allclose(transformEvaled(x), transform(x))
def checkOutputTransform(outputTransform, shapeInput, shapeOutput, hasParams, eps, its, checkAdditional=None): outputTransformEvaled = xf.eval_local(repr(outputTransform)) assert repr(outputTransform) == repr(outputTransformEvaled) if hasParams: params = outputTransform.params outputTransformParsed = outputTransform.parseAll(params) assert_allclose(outputTransformParsed.params, params) assert_allclose(outputTransformEvaled.params, params) for it in range(its): input = randn(*shapeInput) x = randn(*shapeOutput) transform = outputTransform.atInput(input) if checkAdditional is not None: checkAdditional(outputTransform, input, x, eps) if True: assert_allclose(outputTransform(input, x), transform(x)) if True: assert_allclose(outputTransformEvaled(input, x), outputTransform(input, x)) if hasParams: assert_allclose(outputTransformParsed(input, x), outputTransform(input, x)) if True: check_deriv(transform, x, eps) if True: check_derivInput(outputTransform, input, x, eps) if hasParams: check_derivParams(transform, x, eps) if True: check_logJac(transform, x) if True: check_logJacDeriv(transform, x, eps) if True: check_logJacDerivInput(outputTransform, input, x, eps) if hasParams: check_logJacDerivParams(transform, x, eps) if True: check_inv(transform, x, randn(*shapeOutput))
def checkTransform(transform, shapeIn, invertible, hasDeriv, hasParams, is1D, eps, its, checkAdditional=None): assert transform.tag is not None transformEvaled = xf.eval_local(repr(transform)) assert transformEvaled.tag == transform.tag assert repr(transform) == repr(transformEvaled) if hasParams: params = transform.params transformParsed = transform.parseAll(params) assert transformParsed.tag == transform.tag assert_allclose(transformParsed.params, params) assert_allclose(transformEvaled.params, params) for it in range(its): x = randn(*shapeIn) if checkAdditional is not None: checkAdditional(transform, x, eps) if True: assert_allclose(transformEvaled(x), transform(x)) if hasParams: assert_allclose(transformParsed(x), transform(x)) if hasDeriv: check_deriv(transform, x, eps) if is1D and hasDeriv: check_derivDeriv(transform, x, eps) if hasParams: check_derivParams(transform, x, eps) if hasDeriv and hasParams and is1D: check_derivParamsDeriv(transform, x, eps) if invertible and hasDeriv: check_logJac(transform, x) if invertible and hasDeriv: check_logJacDeriv(transform, x, eps) if invertible and hasDeriv and hasParams: check_logJacDerivParams(transform, x, eps) if invertible: check_inv(transform, x, randn(*shapeIn))
def checkOutputTransform(outputTransform, shapeInput, shapeOutput, hasParams, eps, its, checkAdditional = None): outputTransformEvaled = xf.eval_local(repr(outputTransform)) assert repr(outputTransform) == repr(outputTransformEvaled) if hasParams: params = outputTransform.params outputTransformParsed = outputTransform.parseAll(params) assert_allclose(outputTransformParsed.params, params) assert_allclose(outputTransformEvaled.params, params) for it in range(its): input = randn(*shapeInput) x = randn(*shapeOutput) transform = outputTransform.atInput(input) if checkAdditional is not None: checkAdditional(outputTransform, input, x, eps) if True: assert_allclose(outputTransform(input, x), transform(x)) if True: assert_allclose(outputTransformEvaled(input, x), outputTransform(input, x)) if hasParams: assert_allclose(outputTransformParsed(input, x), outputTransform(input, x)) if True: check_deriv(transform, x, eps) if True: check_derivInput(outputTransform, input, x, eps) if hasParams: check_derivParams(transform, x, eps) if True: check_logJac(transform, x) if True: check_logJacDeriv(transform, x, eps) if True: check_logJacDerivInput(outputTransform, input, x, eps) if hasParams: check_logJacDerivParams(transform, x, eps) if True: check_inv(transform, x, randn(*shapeOutput))