def test_default(self): # Specify accountant as arg acc1 = BudgetAccountant(1.5, 0.0) self.sample_model(accountant=acc1) self.assertEqual((1.0, 0.0), acc1.total()) # Use default accountant without one being set self.sample_model() acc2 = BudgetAccountant.pop_default() self.assertIsNot(acc1, acc2) self.assertEqual(float("inf"), acc2.epsilon) self.assertEqual((1.0, 0.0), acc2.total()) # Set accountant as default acc3 = BudgetAccountant(2.0, 0.0).set_default() self.sample_model(epsilon=1.5) self.assertEqual((1.5, 0), acc3.total()) self.assertEqual(2.0, acc3.epsilon) self.assertIsNot(acc3, acc2) self.assertIsNot(acc3, acc1) # Check default is same as what we set it acc4 = BudgetAccountant.pop_default() self.assertIs(acc3, acc4) self.assertEqual((1.0, 0.0), acc2.total()) # Run again in 2 different functions without setting a default self.sample_model() self.sample_model2() acc5 = BudgetAccountant.pop_default() self.assertIsNot(acc5, acc2) self.assertIsNot(acc5, acc3) self.assertEqual((2.0, 0), acc5.total())
def test_default_accountant(self): BudgetAccountant.pop_default() a = np.array([1, 2, 3, 4, 5]) histogram(a, epsilon=1, bins=3, range=(0, 10), density=True) acc = BudgetAccountant.pop_default() self.assertEqual((1, 0), acc.total()) histogram(a, epsilon=1, bins=3, range=(0, 10)) acc2 = BudgetAccountant.pop_default() self.assertEqual((1, 0), acc.total()) self.assertIsNot(acc, acc2)
def test_default_accountant(self): BudgetAccountant.pop_default() a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]).T histogramdd(a, epsilon=1, bins=3, range=[(0, 10), (0, 10)], density=True) acc = BudgetAccountant.pop_default() self.assertEqual((1, 0), acc.total()) self.assertEqual(acc.epsilon, float("inf")) self.assertEqual(acc.delta, 1.0) histogramdd(a, epsilon=1, bins=3, range=[(0, 10), (0, 10)]) self.assertEqual((1, 0), acc.total())
def tearDown(self): BudgetAccountant.pop_default()
def test_pop_default(self): acc = BudgetAccountant().set_default() acc2 = BudgetAccountant.pop_default() self.assertIs(acc, acc2)