Exemplo n.º 1
0
 def test_parse_empty(self):
     x = []
     sampler_vars = parse_sampler_vars(x)
     self.assertEqual(len(sampler_vars), 0)
     stan_vars_dims, stan_vars_cols = parse_stan_vars(x)
     self.assertEqual(len(stan_vars_dims), 0)
     self.assertEqual(len(stan_vars_cols), 0)
Exemplo n.º 2
0
    def test_parse_scalars(self):
        x = ['lp__', 'foo']
        dims_map, cols_map = parse_stan_vars(x)
        self.assertEqual(len(dims_map), 1)
        self.assertEqual(dims_map['foo'], ())
        self.assertEqual(len(cols_map), 1)
        self.assertEqual(cols_map['foo'], (1,))

        dims_map = {}
        cols_map = {}
        x = ['lp__', 'foo1', 'foo2']
        dims_map, cols_map = parse_stan_vars(x)
        self.assertEqual(len(dims_map), 2)
        self.assertEqual(dims_map['foo1'], ())
        self.assertEqual(dims_map['foo2'], ())
        self.assertEqual(len(cols_map), 2)
        self.assertEqual(cols_map['foo1'], (1,))
        self.assertEqual(cols_map['foo2'], (2,))
Exemplo n.º 3
0
 def __init__(self, config: Dict) -> None:
     """Initialize object from CSV headers"""
     self._cmdstan_config = config
     self._sampler_vars_cols = parse_sampler_vars(
         names=config['column_names'])
     stan_vars_dims, stan_vars_cols = parse_stan_vars(
         names=config['column_names'])
     self._stan_vars_dims = stan_vars_dims
     self._stan_vars_cols = stan_vars_cols
Exemplo n.º 4
0
    def test_parse_containers(self):
        # demonstrates flaw in shortcut to get container dims
        x = [
            'lp__',
            'accept_stat__',
            'foo',
            'phi[1]',
            'phi[2]',
            'phi[3]',
            'phi[10]',
            'bar',
        ]
        dims_map, cols_map = parse_stan_vars(x)
        self.assertEqual(len(dims_map), 3)
        self.assertEqual(dims_map['foo'], ())
        self.assertEqual(dims_map['phi'], (10,))  # sic
        self.assertEqual(dims_map['bar'], ())
        self.assertEqual(len(cols_map), 3)
        self.assertEqual(cols_map['foo'], (2,))
        self.assertEqual(
            cols_map['phi'],
            (
                3,
                4,
                5,
                6,
            ),
        )
        self.assertEqual(cols_map['bar'], (7,))

        x = [
            'lp__',
            'accept_stat__',
            'foo',
            'phi[1]',
            'phi[2]',
            'phi[3]',
            'phi[10,10]',
            'bar',
        ]
        dims_map = {}
        cols_map = {}
        dims_map, cols_map = parse_stan_vars(x)
        self.assertEqual(len(dims_map), 3)
        self.assertEqual(
            dims_map['phi'],
            (
                10,
                10,
            ),
        )
        self.assertEqual(len(cols_map), 3)
        self.assertEqual(
            cols_map['phi'],
            (
                3,
                4,
                5,
                6,
            ),
        )

        x = [
            'lp__',
            'accept_stat__',
            'foo',
            'phi[10,10,10]',
        ]
        dims_map = {}
        cols_map = {}
        dims_map, cols_map = parse_stan_vars(x)
        self.assertEqual(len(dims_map), 2)
        self.assertEqual(
            dims_map['phi'],
            (
                10,
                10,
                10,
            ),
        )
        self.assertEqual(len(cols_map), 2)
        self.assertEqual(cols_map['phi'], (3,))
Exemplo n.º 5
0
 def test_parse_missing(self):
     with self.assertRaises(ValueError):
         parse_sampler_vars(None)
     with self.assertRaises(ValueError):
         parse_stan_vars(None)