Skip to content

Commit

Permalink
added tests to the simulation package
Browse files Browse the repository at this point in the history
  • Loading branch information
wkerzendorf committed Nov 10, 2015
1 parent 31a94bc commit df96a6b
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 8 deletions.
20 changes: 17 additions & 3 deletions tardis/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,10 @@ def pytest_report_header(config):


import os
import tardis
import yaml

from tardis.io.config_reader import Configuration

@pytest.fixture
def atomic_data_fname():
Expand All @@ -165,9 +169,19 @@ def kurucz_atomic_data(atomic_data_fname):
return atomic_data

@pytest.fixture
def included_he_atomic_data():
def test_data_path():
return os.path.join(tardis.__path__[0], 'tests', 'data')

@pytest.fixture
def included_he_atomic_data(test_data_path):
import os, tardis
atomic_db_fname = os.path.join(tardis.__path__[0], 'tests', 'data',
'chianti_he_db.h5')
atomic_db_fname = os.path.join(test_data_path, 'chianti_he_db.h5')
return AtomData.from_hdf5(atomic_db_fname)

@pytest.fixture
def tardis_config_verysimple():
return yaml.load(
open('tardis/io/tests/data/tardis_configv1_verysimple.yml'))



18 changes: 13 additions & 5 deletions tardis/simulation/base.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import logging
import time
import os
import itertools

from pandas import HDFStore
import pandas as pd

import numpy as np
Expand Down Expand Up @@ -34,14 +32,18 @@ def __init__(self, tardis_config):
def run_single_montecarlo(self, model, no_of_packets,
no_of_virtual_packets=0):
"""
Will do a single TARDIS iteration with the given model
Parameters
----------
no_of_packets
no_of_virtual_packets
model: ~tardis.model.Radial1DModel
no_of_packet: ~int
no_of_virtual_packets: ~int
default is 0 and switches of the virtual packet mode. Recommended
is 3.
Returns
-------
: None
"""
self.runner.run(model, no_of_packets,
Expand All @@ -60,6 +62,12 @@ def run_single_montecarlo(self, model, no_of_packets,


def calculate_emitted_luminosity(self):
"""
Returns
-------
"""
return self.runner.calculate_emitted_luminosity(
self.tardis_config.supernova.luminosity_nu_start,
self.tardis_config.supernova.luminosity_nu_end)
Expand Down
9 changes: 9 additions & 0 deletions tardis/simulation/setup_package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Licensed under a 3-clause BSD style license - see LICENSE.rst
from setuptools import Extension
from astropy_helpers.setup_helpers import get_distutils_option
import numpy as np

def get_package_data():
return {'tardis.simulation.tests':['data/*.h5']}


Empty file.
58 changes: 58 additions & 0 deletions tardis/simulation/tests/test_simulation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import numpy.testing as npt

import h5py
import pytest
from tardis.io import config_reader
from tardis.model import Radial1DModel
from tardis.simulation import Simulation



import pandas as pd

@pytest.fixture
def tardis_config(kurucz_atomic_data, tardis_config_verysimple):
return config_reader.Configuration.from_config_dict(
tardis_config_verysimple, atom_data=kurucz_atomic_data)


@pytest.fixture()
def raw_model(tardis_config):
return Radial1DModel(tardis_config)


@pytest.fixture()
def simulation_one_loop(raw_model, tardis_config):
sim = Simulation(tardis_config)
sim.run_single_montecarlo(raw_model, 40000)

return sim

@pytest.fixture()
def simulation_compare_data_fname():
return 'tardis/simulation/tests/data/test_data.h5'

@pytest.fixture()
def simulation_compare_data(simulation_compare_data_fname):
return h5py.File(simulation_compare_data_fname, mode='r')



def test_plasma_estimates(simulation_one_loop, simulation_compare_data):
npt.assert_allclose(simulation_one_loop.runner.j_estimator,
simulation_compare_data['test1/j_estimators'], atol=0.0)
npt.assert_allclose(simulation_one_loop.runner.nu_bar_estimator,
simulation_compare_data['test1/nubar_estimators'],
atol=0.0)

t_rad, w = simulation_one_loop.runner.calculate_radiationfield_properties()
npt.assert_allclose(t_rad, simulation_compare_data['test1/t_rad'], atol=0.0)
npt.assert_allclose(w, simulation_compare_data['test1/w'], atol=0.0)

def test_packet_output(simulation_one_loop, simulation_compare_data):
npt.assert_allclose(simulation_one_loop.runner.output_nu,
simulation_compare_data['test1/output_nu'], atol=0.0)

npt.assert_allclose(simulation_one_loop.runner.output_energy,
simulation_compare_data['test1/output_energy'],
atol=0.0)

0 comments on commit df96a6b

Please sign in to comment.