def test_parsobj(): sc.heading('Testing parameters object') pars1 = {'a':1, 'b':2} parsobj = cv.ParsObj(pars1) # Once created, you cannot directly add new keys to a parsobj, and a nonexistent key works like a dict with pytest.raises(KeyError): parsobj['c'] = 3 with pytest.raises(KeyError): parsobj['c'] # Only a dict is allowed with pytest.raises(TypeError): pars2 = ['a', 'b'] cv.ParsObj(pars2) return parsobj
def test_base(): sc.heading('Testing base.py sim...') json_path = 'base_tests.json' sim_path = 'base_tests.sim' # Create a small sim for later use sim = cv.Sim(pop_size=100, verbose=verbose) sim.run() # Check setting invalid key with pytest.raises(sc.KeyNotFoundError): po = cv.ParsObj(pars={'a': 2, 'b': 3}) po.update_pars({'c': 4}) # Printing result r = cv.Result() print(r) print(r.npts) # Day and date conversion daystr = '2020-04-04' sim.day(daystr) sim.day(sc.readdate(daystr)) with pytest.raises(ValueError): sim.day('not a date') sim.date(34) sim.date([34, 54]) sim.date(34, 54, as_date=True) # BaseSim methods sim.copy() sim.export_results(filename=json_path) sim.export_pars(filename=json_path) sim.shrink(in_place=False) for keep_people in [True, False]: sim.save(filename=sim_path, keep_people=keep_people) cv.Sim.load(sim_path) # Tidy up remove_files(json_path, sim_path) return
def test_base(): sc.heading('Testing base.py...') json_path = 'base_tests.json' sim_path = 'base_tests.sim' # Create a small sim for later use sim = cv.Sim(pop_size=100, verbose=verbose) sim.run() # Check setting invalid key with pytest.raises(sc.KeyNotFoundError): po = cv.ParsObj(pars={'a': 2, 'b': 3}) po.update_pars({'c': 4}) # Printing result r = cv.Result() print(r) print(r.npts) # Day and date conversion daystr = '2020-04-04' sim.day(daystr) sim.day(sc.readdate(daystr)) with pytest.raises(ValueError): sim.day('not a date') sim.date(34) sim.date([34, 54]) sim.date(34, 54, as_date=True) # BaseSim methods sim.copy() sim.export_results(filename=json_path) sim.export_pars(filename=json_path) sim.shrink(in_place=False) for keep_people in [True, False]: sim.save(filename=sim_path, keep_people=keep_people) cv.Sim.load(sim_path) # BasePeople methods ppl = sim.people ppl.get(['susceptible', 'infectious']) ppl.keys(which='all_states') ppl.index() ppl.resize(pop_size=200) ppl.to_df() ppl.to_arr() ppl.person(50) people = ppl.to_people() ppl.from_people(people) with pytest.raises(sc.KeyNotFoundError): ppl.make_edgelist([{'invalid_key': [0, 1, 2]}]) # Contacts methods contacts = ppl.contacts df = contacts['a'].to_df() ppl.remove_duplicates(df) with pytest.raises(sc.KeyNotFoundError): contacts['invalid_key'] contacts.values() len(contacts) # Transmission tree methods ppl.transtree.make_targets() ppl.make_detailed_transtree() ppl.transtree.plot() ppl.transtree.animate(animate=False) # Tidy up remove_files(json_path, sim_path) return
def test_base(): sc.heading('Testing base.py...') json_path = 'base_tests.json' sim_path = 'base_tests.sim' # Create a small sim for later use sim = cv.Sim(pop_size=100, verbose=verbose) sim.run() # Check setting invalid key with pytest.raises(sc.KeyNotFoundError): po = cv.ParsObj(pars={'a':2, 'b':3}) po.update_pars({'c':4}) # Printing result r = cv.Result() print(r) print(r.npts) # Day and date conversion daystr = '2020-04-04' sim.day(daystr) sim.day(sc.readdate(daystr)) with pytest.raises(ValueError): sim.day('not a date') sim.date(34) sim.date([34, 54]) sim.date(34, 54, as_date=True) # BaseSim methods sim.copy() sim.export_results(filename=json_path) sim.export_pars(filename=json_path) sim.shrink(in_place=False) for keep_people in [True, False]: sim.save(filename=sim_path, keep_people=keep_people) cv.Sim.load(sim_path) # BasePeople methods ppl = sim.people ppl.get(['susceptible', 'infectious']) ppl.keys() ppl.person_keys() ppl.state_keys() ppl.date_keys() ppl.dur_keys() ppl.indices() ppl._resize_arrays(pop_size=200) # This only resizes the arrays, not actually create new people ppl._resize_arrays(pop_size=100) # Change back ppl.to_df() ppl.to_arr() ppl.person(50) people = ppl.to_people() ppl.from_people(people) ppl.make_edgelist([{'new_key':[0,1,2]}]) ppl.brief() # Contacts methods contacts = ppl.contacts df = contacts['a'].to_df() ppl.remove_duplicates(df) with pytest.raises(sc.KeyNotFoundError): contacts['invalid_key'] contacts.values() len(contacts) print(contacts) print(contacts['a']) # Layer methods hospitals_layer = cv.Layer() contacts.add_layer(hospitals=hospitals_layer) contacts.pop_layer('hospitals') df = hospitals_layer.to_df() hospitals_layer.from_df(df) # Tidy up remove_files(json_path, sim_path) return