code: def test_lognormal_clipped():
      log2_space_mean = 10.0
      log2_space_std = 5.0
      hard_clip_min = 5
      hard_clip_max = 100
      hd = LogNormal(
          log2_space_mean,
          log2_space_std,
          hard_clip_min=hard_clip_min,
          hard_clip_max=hard_clip_max,
      )
  
      samples = hd_rvs_many(hd)
  
      samples_median = np.median(samples)
      assert 25 < samples_median < 35
      samples_std = np.std(samples)
      assert 20 < samples_std < 30
      assert hd.pdf(0.0) == 0.0
      assert abs(hd.pdf(6.0) - 0.03385080142719004) < 1e-6
      assert abs(hd.pdf(10.0) - 0.024999599033243936) < 1e-6
      assert hd.cdf(0.0) == 0.0
      assert abs(hd.cdf(6.0) - 0.03560663481768936) < 1e-6
      assert abs(hd.cdf(10.0) - 0.15112888563249155) < 1e-6
  
      assert hd.min() == hard_clip_min
      assert hd.max() == hard_clip_max
      assert abs(hd.mean() - 38.110960930274594) < 1e-6
      assert abs(hd.var() - 728.7599668053633) < 1e-6
      assert abs(hd.std() - 26.995554574880718) < 1e-6
      # Verify that hd mean and variance also correspond to mean and variance of sampling.
      assert abs((hd.mean() - np.mean(samples)) / hd.mean()) < 1e-1
      assert abs((hd.var() - np.var(samples)) / hd.var()) < 1e-1
  
imports: import random
  from collections import Counter
  import numpy
  import pytest
  from neuraxle.hyperparams.distributions import *
label_desc: Use image node_id 15 for calling a global function with example usage: test_lognormal_clipped() without return types