text: from unittest import TestCase
  
  from soil import simulation, stats
  from soil.utils import unflatten_dict
  
  class Stats(TestCase):
  
      def test_distribution(self):
          '''The distribution exporter should write the number of agents in each state'''
          config = {
              'name': 'exporter_sim',
              'network_params': {
                  'generator': 'complete_graph',
                  'n': 4
              },
              'agent_type': 'CounterModel',
              'max_time': 2,
              'num_trials': 5,
              'environment_params': {}
          }
          s = simulation.from_config(config)
          for env in s.run_simulation(stats=[stats.distribution]):
              pass
              # stats_res = unflatten_dict(dict(env._history['stats', -1, None]))
          allstats = s.get_stats()
          for stat in allstats:
              assert 'count' in stat
              assert 'mean' in stat
              if 'trial_id' in stat:
                  assert stat['mean']['neighbors'] == 3
                  assert stat['count']['total']['4'] == 4
              else:
                  assert stat['count']['count']['neighbors']['3'] == 20
                  assert stat['mean']['min']['neighbors'] == stat['mean']['max']['neighbors']
  