def testEnablingChanges(self): cs = ConditionSet(name='condition_set', data=self.table, setop='AND') cc = CategoricalCondition(data=self.table, attr='fake_cat') rc = RangeCondition(data=self.table, attr='Information') rc.set_range(0.5, relative=True) cs.add_condition(cc) cc.add_category('C1') self.assertItemsEqual(cs.reference, self.fake_sets['C1']) cc.disable() print cs.query, cs.reference self.assertItemsEqual(cs.reference, []) cs.add_condition(rc) self.assertItemsEqual(cs.reference, ['CA', 'NY']) rc.enable(False) cc.enable() self.assertItemsEqual(cs.reference, self.fake_sets['C1']) cc.toggle_category(['C1', 'C3']) rc.enable() self.assertItemsEqual(cs.reference, ['NY']) rc.set_range(0, 1, relative=True) self.assertItemsEqual(cs.reference, self.fake_sets['C3'])
def testAddSeveralConditions(self): cs = ConditionSet(name='condition_set', data=self.table, setop='AND') cc = CategoricalCondition(data=self.table, attr='fake_cat') rc = RangeCondition(data=self.table, attr='Information') rc.set_range(0.5, relative=True) cs.add_condition(cc) cc.add_category('C1') self.assertItemsEqual(cs.reference, self.fake_sets['C1']) cs.add_condition(rc) self.assertItemsEqual(cs.reference, ['CA']) cc.toggle_category(['C1', 'C3']) self.assertItemsEqual(cs.reference, ['NY']) rc.set_range(0, 1, relative=True) self.assertItemsEqual(cs.reference, self.fake_sets['C3'])
def testSetRange(self): rc = RangeCondition(data=self.table, attr='Information') self.assertItemsEqual(rc.included_items(), self.table.index_items()) rc.set_range(min=250000) self.assertEqual(set(rc.included_items()), set(['CA', 'NY'])) change = rc.set_range(max=250000) self.assertItemsEqual(rc.included_items(), []) self.assertEqual(change, {'included': [], 'excluded': [u'NY', u'CA']}) with self.assertRaises(ValueError): rc.set_range() change = rc.set_range(0,1, relative=True) self.assertItemsEqual(rc.included_items(), self.table.index_items()) self.assertItemsEqual(change['included'], rc.included_items()) self.assertItemsEqual(change['excluded'], []) rc.set_range(0.5, relative=True) self.assertEqual(set(rc.included_items()), set(['CA', 'NY'])) self.assertEqual(rc.range, {'max': 492737.0, 'min': 248347.0, 'relative_max': 1.0, 'relative_min': 0.5})