Beispiel #1
0
    def test_lister_mismatch_condition_counts(self):
        items = lister.graceful_read_items('tests/test_lister_items-4.txt')
        self.assertEqual(len(items), 5)

        exp = lister.Experiment(items)
        self.assertEqual(len(exp.section_names), 1)
        self.assertEqual(exp.section_names[0], 'filler')
        sec = exp.section('filler')

        # condition count is three
        self.assertEqual(sec.condition_count, 3)
        cnames = sec.condition_sets
        # two different sets of condition names
        self.assertEqual(len(cnames), 2)
        # five actual distinct conditions
        self.assertEqual(len([cond for set in cnames for cond in set]), 5)

        silence = Silence()
        sys.stdout = silence

        excepted = False
        try:
            exp.verify()
        except SystemExit:
            excepted = True
        self.assertTrue(excepted)

        sys.stdout = sys.__stdout__
Beispiel #2
0
    def test_items_experiments_only_filler(self):
        items = lister.graceful_read_items('tests/test_lister_items-3.txt')
        exp = lister.Experiment(items)
        self.assertEqual(exp.field_count, 1)
        self.assertEqual(set(exp.field_count_counts), set([(1, 4)]))
        self.assertEqual(set(exp.items_by_field_count(1)), set(items))

        silence = Silence()
        sys.stdout = silence

        exp.filler_sections = ['filler']
        # there's only one section, so...
        self.assertEqual(exp.filler_sections, [])
        self.assertFalse(exp.has_fillers)
        self.assertEqual(exp.target_count, 2)
        self.assertEqual(exp.filler_count, 0)

        exp.filler_sections = ['target']
        # now nothing's a filler, so...
        self.assertEqual(exp.filler_sections, [])
        self.assertFalse(exp.has_fillers)
        self.assertEqual(exp.target_count, 2)
        self.assertEqual(exp.filler_count, 0)
        sys.stdout = sys.__stdout__

        # let's make sure that the field_count_report() doesn't give us a warning
        silence = Silence()
        sys.stdout = silence
        exp.field_count_report()
        sys.stdout = sys.__stdout__
        found_warning = False
        for line in silence():
            if line.find('WARNING') > -1:
                found_warning = True
        self.assertFalse(found_warning)
Beispiel #3
0
    def test_items_experiments_basic(self):
        items = lister.graceful_read_items('tests/test_lister_items-1.txt')
        exp = lister.Experiment(items)
        self.assertEqual(exp.field_count, 2)
        self.assertEqual(set(exp.field_count_counts), set([(2, 1), (1, 1)]))
        self.assertEqual(exp.items_by_field_count(1), [items[0]])
        self.assertEqual(exp.items_by_field_count(2), [items[1]])

        self.assertFalse(exp.has_fillers)
        self.assertEqual(exp.target_count, 2)
        self.assertEqual(exp.filler_count, 0)
Beispiel #4
0
    def test_lister_trivial_latin_square_lists(self):
        items = lister.graceful_read_items('tests/test_lister_items-1.txt')
        self.assertEqual(len(items), 2)

        exp = lister.Experiment(items)
        self.assertEqual(len(exp.section_names), 1)
        self.assertEqual(exp.section_names[0], 'test')
        sec = exp.section('test')

        list0 = sec.latin_square_list(0)
        self.assertEqual(len(list0), 2)
        list1 = sec.latin_square_list(1)
        self.assertEqual(len(list1), 2)
        self.assertEqual(list0, list1)
Beispiel #5
0
    def test_lister_different_condition_names(self):
        items = lister.graceful_read_items('tests/test_lister_items-3.txt')
        self.assertEqual(len(items), 4)

        exp = lister.Experiment(items)
        self.assertEqual(len(exp.section_names), 1)
        self.assertEqual(exp.section_names[0], 'filler')
        sec = exp.section('filler')

        # two conditions at a time
        self.assertEqual(sec.condition_count, 2)
        cnames = sec.condition_sets
        # two different sets of condition names
        self.assertEqual(len(cnames), 2)
        # four actual distinct conditions
        self.assertEqual(len([cond for set in cnames for cond in set]), 4)

        excepted = False
        try:
            exp.verify()
        except SystemExit:
            excepted = True
        self.assertFalse(excepted)
Beispiel #6
0
def sample_experiment(item_specs):
    item_list = []
    for i in range(len(item_specs)):
        # the section specification could be a number or a dict
        spec = item_specs[i]
        if type(spec) is not dict:
            spec = {}
            spec.update(items=int(item_specs[i]))
        spec.setdefault('fields', 1)
        spec.setdefault('conditions', 1)

        for j in range(spec.get('items')):
            if spec.get('conditions') > 1:
                for k in range(spec.get('conditions')):
                    item_list.append(
                        lister.Item('section' + str(i), j,
                                    'condition' + str(k),
                                    ['test'] * spec.get('fields')))
            else:
                item_list.append(
                    lister.Item('section' + str(i), j, 'condition',
                                ['test'] * spec.get('fields')))
    return lister.Experiment(item_list)