code: def test_run_compute_membership_probability_correct_probs(self):
      result = mia._compute_membership_probability(
          AttackInputData(
              loss_train=np.array([1, 1, 1, 10, 100]),
              loss_test=np.array([10, 100, 100, 1000, 10000]),
          )
      )
  
      np.testing.assert_almost_equal(
          result.train_membership_probs, [1, 1, 1, 0.5, 0.33], decimal=2
      )
      np.testing.assert_almost_equal(
          result.test_membership_probs,
          [0.5, 0.33, 0.33, 0, 0],
          decimal=2,
      )
  
imports: from unittest import mock
  from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  from tensorflow_privacy.privacy.privacy_tests import epsilon_lower_bound
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack import membership_inference_attack
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack import models
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import AttackInputData
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import AttackType
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import DataSize
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import SingleSliceSpec
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import SlicingFeature
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import SlicingSpec
label_desc: Use image node_id 21 for calling the RunAttacksTest obj's underlying member method code with example usage: obj.test_run_compute_membership_probability_correct_probs() without return types