def test_309(make_data_path): idval = 'bug309' # have values near unity for the data ynorm = 1e9 session = Session() dname = make_data_path('load_template_with_interpolation-bb_data.dat') session.load_data(idval, dname) session.get_data(idval).y *= ynorm indexname = 'bb_index.dat' datadir = make_data_path('') # Need to load the data from the same directory as the index basedir = os.getcwd() os.chdir(datadir) try: session.load_template_model('bbtemp', indexname) finally: os.chdir(basedir) bbtemp = session.get_model_component('bbtemp') session.set_source(idval, bbtemp * ynorm) session.set_method('gridsearch') session.set_method_opt('sequence', None) session.fit(idval)
def test_309(make_data_path): idval = 'bug309' # have values near unity for the data ynorm = 1e9 session = Session() dname = make_data_path('load_template_with_interpolation-bb_data.dat') session.load_data(idval, dname) session.get_data(idval).y *= ynorm indexname = 'bb_index.dat' datadir = make_data_path('') # Need to load the data from the same directory as the index basedir = os.getcwd() os.chdir(datadir) try: session.load_template_model('bbtemp', indexname) finally: os.chdir(basedir) bbtemp = session.get_model_component('bbtemp') session.set_source(idval, bbtemp * ynorm) session.set_method('gridsearch') session.set_method_opt('sequence', None) session.fit(idval)
def test_list_ids(): session = Session() session.load_arrays(1, TEST, TEST) session.load_arrays("1", TEST, TEST2) # order of 1 and "1" is not determined assert {1, "1"} == set(session.list_data_ids()) assert_array_equal(TEST2, session.get_data('1').get_dep()) assert_array_equal(TEST, session.get_data(1).get_dep())
def test_list_ids(): session = Session() session.load_arrays(1, [1, 2, 3], [1, 2, 3]) session.load_arrays("1", [1, 2, 3], [4, 5, 6]) # order of 1 and "1" is not determined assert {1, "1"} == set(session.list_data_ids()) assert_array_equal([4, 5, 6], session.get_data('1').get_dep()) assert_array_equal([1, 2, 3], session.get_data(1).get_dep())
def test_list_ids(): session = Session() session.load_arrays(1, TEST, TEST) session.load_arrays("1", TEST, TEST2) # order of 1 and "1" is not determined assert {1, "1"} == set(session.list_data_ids()) assert_array_equal(TEST2, session.get_data('1').get_dep()) assert_array_equal(TEST, session.get_data(1).get_dep())
def test_save_restore(tmpdir): outfile = tmpdir.join("sherpa.save") session = Session() session.load_arrays(1, TEST, TEST2) session.save(str(outfile), clobber=True) session.clean() assert set() == set(session.list_data_ids()) session.restore(str(outfile)) assert {1, } == set(session.list_data_ids()) assert_array_equal(TEST, session.get_data(1).get_indep()[0]) assert_array_equal(TEST2, session.get_data(1).get_dep())
def test_save_restore(tmpdir): outfile = tmpdir.join("sherpa.save") session = Session() session.load_arrays(1, TEST, TEST2) session.save(str(outfile), clobber=True) session.clean() assert set() == set(session.list_data_ids()) session.restore(str(outfile)) assert {1, } == set(session.list_data_ids()) assert_array_equal(TEST, session.get_data(1).get_indep()[0]) assert_array_equal(TEST2, session.get_data(1).get_dep())
def test_data_dep_masked_numpyarray_nomask_ui(data_for_load_arrays, Session): session, args, data = data_for_load_arrays session = Session() posy = POS_Y_ARRAY[type(data)] args = list(args) args[posy] = numpy.ma.array(args[posy]) session.load_arrays(*args) new_data = session.get_data(data.name) # Sherpa's way of saying "mask is not set" assert new_data.mask is True assert len(new_data.get_dep(filter=True)) == len(args[posy].flatten())
def test_data_indeperr_masked_numpyarray_ui(arrpos, data_for_load_arrays, Session): session, args, data = data_for_load_arrays session = Session() i = arrpos[type(data)] mask = numpy.random.rand(*(args[i].shape)) > 0.5 args = list(args) args[1] = numpy.ma.array(args[i], mask=mask) with pytest.warns(UserWarning, match="for dependent variables only"): session.load_arrays(*args) new_data = session.get_data(data.name) assert len(new_data.get_dep(filter=True)) == len(args[i])
def test_data_dep_masked_numpyarray_ui(data_for_load_arrays, Session): session, args, data = data_for_load_arrays session = Session() posy = POS_Y_ARRAY[type(data)] mask = numpy.random.rand(*(args[posy].shape)) > 0.5 args = list(args) args[posy] = numpy.ma.array(args[posy], mask=mask) session.load_arrays(*args) new_data = session.get_data(data.name) assert new_data.mask.shape == mask.shape assert numpy.all(new_data.mask == ~mask) assert len(new_data.get_dep(filter=True)) == (~mask).sum()
def test_load_arrays_no_errors(data_no_errors): from sherpa.astro.ui.utils import Session session = Session() data = data_no_errors data_class = data.__class__ data_args = DATA_NO_ERRORS_ARGS args = data_args + (data_class, ) session.load_arrays(*args) new_data = session.get_data(data.name) assert new_data is not data # DATA-NOTE: Do we need an equality operator for data classes? These tests are very partial # Note that when they are created with load_arrays they seem to lose the name, which becomes the ID numpy.testing.assert_array_equal(new_data.get_indep(), data.get_indep()) numpy.testing.assert_array_equal(new_data.get_dep(), data.get_dep())
from sherpa.ui.utils import Session import sherpa.models.basic x = [100, 200, 300, 400] y = [10, 12, 9, 13] s = Session() s._add_model_types(sherpa.models.basic) s.load_arrays(1, x, y) print("# list_data_ids") print(s.list_data_ids()) print("# get_data()") print(repr(s.get_data())) print("# get_data()") print(s.get_data()) print("# get_stat_name/get_method_name") print(s.get_stat_name()) print(s.get_method_name()) s.set_stat('cash') s.set_method('simplex') s.set_source('const1d.mdl') print("# mdl") print(mdl)