def test_plugin_setparam():
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'setparam', '--at', '1',
        '--symptomatic-r0', '0.2'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'setparam', '--at', '1',
        '--asymptomatic-r0', '0.4'
    ])
def test_plugin_insert():
    main([
        '--jobs', '1', '--repeats', '100', '--stop-if', 't>10', '--plugin',
        'insert', '2', '--at', '1'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--stop-if', 't>10', '--plugin',
        'insert', '2', '--interval', '1'
    ])
def test_plugin_sample():
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'sample', '--interval',
        '1', '--proportion', '0.8'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'sample', '--interval',
        '1', '--size', '20'
    ])
def test_plugin_remove():
    main([
        '--jobs', '1', '--repeats', '100', '--stop-if', 't>10', '--plugin',
        'remove', '2', '--at', '1'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=100',
        '--stop-if', 't>10', '--plugin', 'remove', 'A=2', '--interval', '1'
    ])
def test_plugin_remove(clear_log):
    main([
        '--jobs', '1', '--repeats', '100', '--stop-if', 't>10', '--plugin',
        'remove', '--count', '2', '--at', '1', '--target', 'all'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=100',
        '--stop-if', 't>10', '--plugin', 'remove', '--count', 'A=2',
        '--interval', '1', '--target', 'all'
    ])
def test_plugin_community_infection():
    main([
        '--jobs', '1', '--repeats', '10', '--stop-if', 't>4', '--plugin',
        'community_infection', '--probability', '0.0001', '--interval', '1'
    ])
    main([
        '--jobs', '1', '--repeats', '10', '--popsize', 'A=100', 'B=200',
        '--stop-if', 't>4', '--plugin', 'community_infection', '--probability',
        '1', 'A=0.0001', '--interval', '1'
    ])
示例#7
0
def test_main_incubation_period():
    main([
        "--jobs",
        "1",
        "--repeats",
        "100",
        "--incubation-period",
        "lognormal",
        "1",
        "0.2",
    ])
    main([
        "--jobs", "1", "--repeats", "100", "--incubation-period", "normal",
        "1", "2"
    ])
示例#8
0
def test_main_susceptibility():
    main([
        "--jobs",
        "1",
        "--repeats",
        "10",
        "--popsize",
        "A=100",
        "B=200",
        "--susceptibility",
        "A=0.08",
        "B=1",
        "--infectors",
        "B_1",
        "B_2",
    ])
示例#9
0
def test_asymptomatic_transmissibility_model(clear_log):
    with pytest.raises(Exception):
        main([
            "--jobs",
            "1",
            "--repeats",
            "100",
            "--asymptomatic-transmissibility-model",
            "unknown",
        ])

    with pytest.raises(Exception):
        main([
            "--jobs",
            "1",
            "--repeats",
            "100",
            "--asymptomatic-transmissibility-model",
            "piecewise",
            "0.1",
        ])

    main([
        "--jobs",
        "1",
        "--repeats",
        "100",
        "--asymptomatic-transmissibility-model",
        "piecewise",
        "0.1",
        "0.3",
        "3",
        "0.5",
        "1.147",
    ])
def test_plugin_testing():
    main(['--jobs', '1', '--repeats', '100', '--plugin', 'testing'])

    main(['--jobs', '1', '--repeats', '100', '--plugin', 'testing', '1', '2'])

    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=200',
        '--infector', 'A_2', 'A_7', '--plugin', 'testing', 'A_2', 'A_7',
        '--handle-positive', 'quarantine_7'
    ])

    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'testing', '1', '2',
        '--turnaround-time', '2'
    ])
def test_plugin_vaccinate(clear_log):
    main(['--jobs', '1', '--repeats', '100', '--plugin', 'vaccinate'])

    main(
        ['--jobs', '1', '--repeats', '100', '--plugin', 'vaccinate', '1', '2'])

    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=200',
        '--infector', 'A_2', 'A_7', '--plugin', 'vaccinate', 'A_2', 'A_7',
        '--infectivity', '0.5'
    ])

    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'vaccinate', '1', '2',
        '--immunity', '0.7'
    ])
def test_plugin_testing(clear_log):
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'testing', '--target',
        'all'
    ])

    main(['--jobs', '1', '--repeats', '100', '--plugin', 'testing', '1', '2'])

    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=200',
        '--infector', 'A_2', 'A_7', '--handle-symptomatic', 'keep', '--plugin',
        'testing', 'A_2', 'A_7', '--at', '3', '--handle-positive',
        'quarantine@duration=14'
    ])

    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'testing', '1', '2',
        '--turnaround-time', '2'
    ])

    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'testing', '1', '2',
        '--turnaround-time', '2', '--target', 'infected'
    ])
def test_plugin_init():
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'init', '--at', '0',
        '--incidence-rate', '0.01'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=200',
        '--plugin', 'init', '--at', '0', '--incidence-rate', '1', 'A=0.01',
        'B=0.02', '--leadtime', 'any'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=200',
        '--plugin', 'init', '--at', '0', '--incidence-rate', '1', 'A=0.01',
        'B=0.02', '--seroprevalence', '1', 'A=0.02', 'B=0.04', '--leadtime',
        'asymptomatic'
    ])
def test_plugin_sample_error():
    with pytest.raises((Exception, SystemExit)):
        main([
            '--jobs', '1', '--repeats', '100', '--plugin', 'sample',
            '--interval', '1'
        ])

    with pytest.raises((Exception, SystemExit)):
        main([
            '--jobs', '1', '--repeats', '100', '--plugin', 'sample',
            '--interval', '1', '--proportion', 'a'
        ])

    with pytest.raises((Exception, SystemExit)):
        main([
            '--jobs', '1', '--repeats', '100', '--plugin', 'sample',
            '--interval', '1', '--size', '20', '--proportion', '0.5'
        ])
def test_plugin_quarantine_error(clear_log):
    with pytest.raises((Exception, SystemExit)):
        main([
            '--jobs', '1', '--repeats', '100', '--plugin', 'quarantine', '1',
            '2a', '--duration', '7'
        ])

    with pytest.raises((Exception, SystemExit)):
        main([
            '--jobs', '1', '--repeats', '100', '--plugin', 'quarantine', '1',
            '2', '--proportion', '0.5'
        ])

    with pytest.raises((Exception, SystemExit)):
        main([
            '--jobs', '1', '--repeats', '100', '--plugin', 'quarantine',
            '--proportion', '0.5', '--target', 'somethingelse'
        ])
示例#16
0
def test_main_asymptomatic():
    main(["--jobs", "1", "--repeats", "100", "--asymptomatic-r0", "0.5"])
    main(
        ["--jobs", "1", "--repeats", "100", "--asymptomatic-r0", "0.5", "1.5"])
    main([
        "--jobs",
        "1",
        "--repeats",
        "100",
        "--popsize",
        "A=100",
        "B=50",
        "--asymptomatic-r0",
        "0.5",
        "1.5",
        "A=1.2",
        "--infector",
        "A_0",
    ])
def test_plugin_no_module():
    with pytest.raises(Exception):
        main([
            '--jobs', '1', '--repeats', '100', '--infectors', '1', '--plugin',
            'sample.non-exist'
        ])
def test_plugin_insert_hetero_pop():
    main([
        '--jobs', '1', '--repeats', '100', '--stop-if', 't>10', '--popsize',
        'A=100', 'B=100', '--stop-if', 't>10', '--plugin', 'insert', 'A=2',
        '--interval', '1'
    ])
示例#19
0
def test_main_stop_if():
    main(["--jobs", "1", "--repeats", "100", "--stop-if", "t>1"])
示例#20
0
def test_main_stop_if_error():
    with pytest.raises(Exception):
        main(["--jobs", "1", "--repeats", "100", "--stop-if", "st>1"])
def test_plugin_testing_error(clear_log):
    with pytest.raises(Exception):
        main(['--jobs', '1', '--repeats', '100', '--plugin', 'testing'])
def test_plugin_trigger():
    main([
        '--jobs', '1', '--repeats', '100', '--infectors', '1', '--plugin',
        'stat', '--trigger-by', 'INFECTION'
    ])
示例#23
0
def test_main_symptomatic():
    main(["--jobs", "1", "--repeats", "100", "--symptomatic-r0", "1.0"])
    main(["--jobs", "1", "--repeats", "100", "--symptomatic-r0", "1.0", "2.0"])
def test_plugin_quarantine(clear_log):
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'quarantine',
        '--duration', '7'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'quarantine', '1', '2',
        '--duration', '7'
    ])
    main([
        '--jobs', '1', '--repeats', '100', '--popsize', 'A=100', 'B=200',
        '--infector', 'A_2', 'A_7', '--plugin', 'quarantine', 'A_2', 'A_7',
        '--duration', '7'
    ])

    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'quarantine',
        '--duration', '7', '--proportion', '0.8'
    ])

    main([
        '--jobs', '1', '--popsize', 'A=100', 'B=200', '--repeats', '100',
        '--plugin', 'quarantine', '--duration', '7', '--proportion', 'A=1',
        'B=0', '--target', 'all'
    ])

    main([
        '--jobs', '1', '--popsize', 'A=100', 'B=200', '--infector', 'A_10',
        '--repeats', '100', '--plugin', 'quarantine', '--duration', '7',
        '--proportion', 'A=1', 'B=0', '--target', 'infected'
    ])
def test_plugin_stat_with_groups():
    main([
        '--jobs', '1', '--popsize', 'A=200', 'B=100', '--repeats', '100',
        '--infectors', 'A_0', '--plugin', 'stat', '--interval', '1'
    ])
def test_plugin_stat():
    main([
        '--jobs', '1', '--repeats', '100', '--plugin', 'stat', '--interval',
        '1'
    ])
示例#27
0
def test_main_default():
    main(["--jobs", "1", "--repeats", "100"])
    main(["--jobs", "1", "--repeats", "100", "--logfile", "test.out"])
    assert os.path.isfile("test.out")
    main(["--logfile", "test.out"])