Ejemplo n.º 1
0
 def test_args_chain_ids(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     jdata = os.path.join(datafiles_path, 'bernoulli.data.json')
     args = SamplerArgs(model, chain_ids=[7, 9], data=jdata)
     cmd = args.compose_command(0, 'output')
     self.assertIn('bernoulli', cmd)
     self.assertIn('bernoulli.data.json', cmd)
     self.assertIn('id=7', cmd)
     cmd = args.compose_command(1, 'output')
     self.assertIn('id=9', cmd)
Ejemplo n.º 2
0
 def test_args_many_1(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     jdata = os.path.join(datafiles_path, 'bernoulli.data.json')
     jmetric = os.path.join(datafiles_path, 'bernoulli.metric.json')
     output = os.path.join(TMPDIR, 'bernoulli.output')
     args = SamplerArgs(model,
                        chain_ids=[1, 2],
                        seed=12345,
                        warmup_iters=100,
                        sampling_iters=100,
                        save_warmup=True,
                        thin=2,
                        metric=jmetric,
                        step_size=1.5,
                        data=jdata,
                        output_file=output,
                        max_treedepth=11,
                        adapt_delta=0.9)
     cmd = args.compose_command(0, ''.join([output, '-1.csv']))
     s1 = 'test/data/bernoulli id=1 random seed=12345 data file=test/data/bernoulli.data.json'
     s2 = 'method=sample num_samples=100 num_warmup=100 save_warmup=1 thin=2'
     s3 = 'algorithm=hmc engine=nuts max_depth=11 stepsize=1.5 metric=diag_e metric_file="test/data/bernoulli.metric.json" adapt delta=0.9'
     self.assertIn(s1, cmd)
     self.assertIn(s2, cmd)
     self.assertIn(s3, cmd)
Ejemplo n.º 3
0
 def test_args_step_size_2(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     args = SamplerArgs(model, chain_ids=[1, 2], step_size=[1.31, 1.29])
     cmd = args.compose_command(1, 'output')
     self.assertIn('stepsize=1.29', cmd)
Ejemplo n.º 4
0
 def test_args_adapt_delta_1(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     args = SamplerArgs(model, chain_ids=[1, 2], adapt_delta=.93)
     cmd = args.compose_command(0, 'output')
     self.assertIn('adapt delta=0.93', cmd)
Ejemplo n.º 5
0
 def test_args_save_warmup_2(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     args = SamplerArgs(model, chain_ids=[1, 2], save_warmup=False)
     cmd = args.compose_command(0, 'output')
     self.assertNotIn('save_warmup', cmd)
Ejemplo n.º 6
0
 def test_args_max_treedepth_good(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     args = SamplerArgs(model, chain_ids=[1, 2], max_treedepth=15)
     cmd = args.compose_command(0, 'output')
     self.assertIn('max_depth=15', cmd)
Ejemplo n.º 7
0
 def test_args_iters_2(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     args = SamplerArgs(model, chain_ids=[1, 2], sampling_iters=123)
     cmd = args.compose_command(0, 'output')
     self.assertIn('num_samples=123', cmd)
Ejemplo n.º 8
0
 def test_args_metric_4(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     args = SamplerArgs(model, chain_ids=[1, 2], metric='dense_e')
     cmd = args.compose_command(0, 'output')
     s1 = 'metric=dense_e'
     self.assertIn(s1, cmd)
Ejemplo n.º 9
0
 def test_args_metric_file_1(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     jmetric = os.path.join(datafiles_path, 'bernoulli.metric.json')
     args = SamplerArgs(model, chain_ids=[1, 2], metric=jmetric)
     cmd = args.compose_command(0, 'output')
     s1 = 'metric=diag_e metric_file="test/data/bernoulli.metric.json'
     self.assertIn(s1, cmd)
Ejemplo n.º 10
0
 def test_args_inits_3(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     jdata = os.path.join(datafiles_path, 'bernoulli.data.json')
     args = SamplerArgs(model, chain_ids=[1, 2], data=jdata, inits=3.33)
     cmd = args.compose_command(0, 'output')
     s1 = 'data file=test/data/bernoulli.data.json init=3.33'
     self.assertIn(s1, cmd)
Ejemplo n.º 11
0
 def test_args_min(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     output = os.path.join(TMPDIR, 'bernoulli.output')
     args = SamplerArgs(model, chain_ids=[1, 2], output_file=output)
     args.validate()
     cmd = args.compose_command(0, ''.join([output, '-1.csv']))
     self.assertIn('id=1', cmd)
Ejemplo n.º 12
0
 def test_args_warmup_schedule_1(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     args = SamplerArgs(model,
                        chain_ids=[1, 2],
                        warmup_iters=200,
                        warmup_schedule=(0.1, 0.8, 0.1))
     cmd = args.compose_command(0, 'output')
     s1 = 'algorithm=hmc adapt init_buffer=20 term_buffer=20'
Ejemplo n.º 13
0
 def test_args_num_iters(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     output = os.path.join(TMPDIR, 'bernoulli.output')
     args = SamplerArgs(model,
                        chain_ids=[1, 2],
                        output_file=output,
                        sampling_iters=3,
                        warmup_iters=7)
     cmd = args.compose_command(0, ''.join([output, '-1.csv']))
     self.assertIn('num_samples=3', cmd)
     self.assertIn('num_warmup=7', cmd)
Ejemplo n.º 14
0
 def test_args_good(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     rdata = os.path.join(datafiles_path, 'bernoulli.data.R')
     output = os.path.join(TMPDIR, 'bernoulli.output')
     args = SamplerArgs(model,
                        chain_ids=[1, 2],
                        seed=12345,
                        data=rdata,
                        output_file=output,
                        max_treedepth=15,
                        adapt_delta=0.99)
     cmd = args.compose_command(0, ''.join([output, '-1.csv']))
     self.assertIn('random seed=12345', cmd)
     self.assertIn('data file=', cmd)
     self.assertIn(
         'algorithm=hmc engine=nuts max_depth=15 adapt delta=0.99', cmd)
Ejemplo n.º 15
0
 def test_args_typical(self):
     stan = os.path.join(datafiles_path, 'bernoulli.stan')
     exe = os.path.join(datafiles_path, 'bernoulli')
     model = Model(exe_file=exe, stan_file=stan)
     jdata = os.path.join(datafiles_path, 'bernoulli.data.json')
     output = os.path.join(TMPDIR, 'bernoulli.output')
     args = SamplerArgs(model,
                        chain_ids=[1, 2],
                        seed=12345,
                        sampling_iters=100,
                        data=jdata,
                        output_file=output,
                        max_treedepth=11,
                        adapt_delta=0.9)
     cmd = args.compose_command(0, ''.join([output, '-1.csv']))
     self.assertIn('bernoulli', cmd)
     self.assertIn('seed=12345', cmd)
     self.assertIn('num_samples=100', cmd)
     self.assertIn('bernoulli.data.json', cmd)
     self.assertIn('algorithm=hmc engine=nuts max_depth=11 adapt delta=0.9',
                   cmd)