class_docstr: Tests for SABR approximations to implied volatility.
class_docstr_tok: ["Tests","for","SABR","approximations","to","implied","volatility","."]
code: def test_european_option_normal(self):
      prices = tff.models.sabr.approximations.european_option_price(
          forwards=np.array([100.0, 110.0]),
          strikes=np.array([90.0, 100.0]),
          expiries=np.array([0.5, 1.0]),
          is_call_options=np.array([True, False]),
          alpha=3.2,
          beta=0.2,
          volvol=1.4,
          rho=0.0005,
          volatility_type=NORMAL,
          dtype=tf.float64,
      )
  
      prices = self.evaluate(prices)
      self.assertAllClose(prices, [10.412692, 1.472544])
  
file_path: tf-quant-finance/tf_quant_finance/models/sabr/approximations/european_options_test.py
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  import tf_quant_finance
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 2 for calling the SabrApproximationEuropeanOptionsTest obj's underlying member method code with example usage: obj.test_european_option_normal() without return types