Beispiel #1
0
    def test_change_default_val(self):
        x = BaseAgingAgent(graph='test')
        with self.assertRaises(TypeError):
            x.set_default_val([])
        with self.assertRaises(KeyError):
            x.set_default_val({'test': 10})

        x.add_attribute('test', def_value=10)
        self.assertEqual(x.dict_default_val, {'age': 0, 'test': 10})
        x.set_default_val({'age': 2}, replace=True)
        self.assertEqual(x.dict_default_val, {'age': 2})
Beispiel #2
0
 def test_creation_when_something_as_graph(self):
     x = BaseAgingAgent(graph='test')
     self.assertTrue(isinstance(x.df_population, DataFrameXS))
     self.assertEqual(x.df_population.list_col_name, ['col_id', 'age'])
     self.assertEqual(x.df_population.list_col, [None, None])
     self.assertEqual(x.df_population.nb_rows, 0)
     self.assertEqual(x.df_population.nb_cols, 2)
     self.assertEqual(x.df_population.shape, (0, 2))
     self.assertEqual(x.dict_default_val, {'age': 0})
Beispiel #3
0
    def test_add_agents(self):
        x = BaseAgingAgent(graph='test')
        with self.assertRaises(ValueError):
            x.add_agents({'age': ['test', 'test2']})
        with self.assertRaises(KeyError):
            x.add_agents({'wrong_col_name': [0, 0]})

        x.add_agents({'age': [1, 2, 3, 4]})
        self.assertTrue((x.df_population['age'] == np.array([1, 2, 3,
                                                             4])).all())
        self.assertTrue((x.df_population['col_id'] == np.array([0, 1, 2,
                                                                3])).all())
        self.assertEqual(x.df_population.shape, (4, 2))

        x.add_attribute('test_attr', def_value=10)
        x.add_agents({'age': 1})
        self.assertTrue((x.df_population['age'] == np.array([1, 2, 3, 4,
                                                             1])).all())
        self.assertTrue((x.df_population['col_id'] == np.array([0, 1, 2, 3,
                                                                4])).all())
        self.assertTrue(
            (x.df_population['test_attr'] == np.array([10, 10, 10, 10,
                                                       10])).all())
        self.assertEqual(x.df_population.shape, (5, 3))

        x.add_attribute('test_attr2')
        x.add_agents({'age': 17})
        self.assertTrue(
            (x.df_population['age'] == np.array([1, 2, 3, 4, 1, 17])).all())
        self.assertTrue(
            (x.df_population['col_id'] == np.array([0, 1, 2, 3, 4, 5])).all())
        self.assertTrue(
            (x.df_population['test_attr'] == np.array([10, 10, 10, 10, 10,
                                                       10])).all())
        self.assertTrue(
            (np.nan_to_num(x.df_population['test_attr2'],
                           0.) == np.array([0., 0., 0., 0., 0., 0.])).all())
        self.assertEqual(x.df_population.shape, (6, 4))

        x.add_agents({'age': [3, 4], 'test_attr2': 3.})
        self.assertTrue(
            (x.df_population['age'] == np.array([1, 2, 3, 4, 1, 17, 3,
                                                 4])).all())
        self.assertTrue(
            (x.df_population['col_id'] == np.array([0, 1, 2, 3, 4, 5, 6,
                                                    7])).all())
        self.assertTrue((x.df_population['test_attr'] == np.array(
            [10, 10, 10, 10, 10, 10, 10, 10])).all())
        self.assertTrue(
            (np.nan_to_num(x.df_population['test_attr2'],
                           0.) == np.array([0., 0., 0., 0., 0., 0., 3.,
                                            3.])).all())
        self.assertEqual(x.df_population.shape, (8, 4))

        with self.assertRaises(ValueError):
            x.add_agents({'age': [1, 2], 'test_attr': [4, 5, 6]})
Beispiel #4
0
 def test_error_when_missing_graph(self):
     with self.assertRaises(ValueError):
         x = BaseAgingAgent()
Beispiel #5
0
    def test_count_agents_per_vertex(self):
        class FakeGraph:
            weights = np.array([0, 0, 0, 0, 0])

        x = BaseAgingAgent(graph=FakeGraph())
        x.add_attribute('position', def_value=0)
        x.add_agents({'age': 0, 'position': [0, 0, 0, 1, 1, 3, 4, 3, 2, 0, 2]})

        count_all = x.count_pop_per_vertex()

        self.assertEqual(count_all.sum(), 11)
        self.assertTrue((count_all == np.array([4, 2, 2, 2, 1])).all())

        with self.assertRaises(ValueError):
            condition = np.array([True, False])
            x.count_pop_per_vertex(condition=condition)

        with self.assertRaises(ValueError):
            condition = np.array([0, 0, 0, 1, 1, 3, 4, 3, 2, 0, 2])
            x.count_pop_per_vertex(condition=condition)

        with self.assertRaises(ValueError):
            condition = np.array([[0, 0, 0, 1, 1, 3, 4, 3, 2, 0, 2]])
            x.count_pop_per_vertex(condition=condition)

        with self.assertRaises(ValueError):
            condition = {}
            x.count_pop_per_vertex(condition=condition)

        condition = np.array([
            False, False, False, True, True, True, True, True, True, False,
            True
        ])
        count_cond = x.count_pop_per_vertex(condition=condition)

        self.assertEqual(count_cond.sum(), 7)
        self.assertTrue((count_cond == np.array([0, 2, 2, 2, 1])).all())