class_docstr: Test the ml_scorer.expontential_moving_average function.
class_docstr_tok: ["Test","the","ml_scorer.expontential_moving_average","function","."]
code: def test_valid_alpha(self, alpha):
      # Test valid alpha values
      for x, expected_ema in zip(
          [
              np.ones(5).reshape(1, -1),
              np.array([[0.1, 0.2, 0.3]]),
              np.array([x / 10 for x in range(1, 7)]).reshape(2, 3),
          ],
          [1, 0.175, np.array([0.175, 0.475])],
      ):
          ema = ml_scorer.exponential_moving_average(x, alpha=alpha)
          assert np.allclose(ema, expected_ema, atol=1e-4)
  
imports: import itertools
  import typing
  import numpy
  import pytest
  import sklearn
  from hypothesis import given, settings
  from hypothesis import strategies
  from hypothesis.strategies import composite
  from hypothesis.extra.numpy import arrays
  from sklearn.linear_model import LogisticRegression
  from sklearn.multiclass import OneVsRestClassifier
  from cleanlab import multilabel_classification
  from cleanlab.internal import multilabel_scorer
  from cleanlab.internal.multilabel_utils import get_onehot_num_classes, onehot2int, stack_complement
  from cleanlab.multilabel_classification import filter
  from cleanlab.multilabel_classification.dataset import common_multilabel_issues, multilabel_health_summary, overall_multilabel_health_score, rank_classes_by_multilabel_quality
  from cleanlab.multilabel_classification.rank import get_label_quality_scores_per_class
label_desc: Use image node_id 1 for calling the TestExponentialMovingAverage obj's underlying member method code with example usage: obj.test_valid_alpha(alpha) without return types