code: def test_basic_multiply_promotion(self):
      float_a = np.array([1.0, 2.0, 3.0])
      b = self._get_array(2.0)
  
      res1 = float_a * b
      res2 = b * float_a
  
      # one factor is one, so we get the factor of b:
      assert res1.dtype == res2.dtype == b.dtype
      expected_view = float_a * b.view(np.float64)
      assert_array_equal(res1.view(np.float64), expected_view)
      assert_array_equal(res2.view(np.float64), expected_view)
  
      # Check that promotion works when `out` is used:
      np.multiply(b, float_a, out=res2)
      with pytest.raises(TypeError):
          # The promoter accepts this (maybe it should not), but the SFloat
          # result cannot be cast to integer:
          np.multiply(b, float_a, out=np.arange(3))
  
imports: import pytest
  import numpy
  from numpy.testing import assert_array_equal
  from numpy.core._multiarray_umath import _discover_array_parameters, _get_sfloat_dtype
label_desc: Use image node_id 15 for calling the TestSFloat obj's underlying member method code with example usage: obj.test_basic_multiply_promotion() without return types