Example #1
0
    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'])
Example #2
0
    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'])
Example #3
0
    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})