def test_setdef_getsets_brute(self):
     def same_cards(ca_1,ca_2,ca_3):
         return ca_1==ca_2 and ca_2==ca_3
     def different_cards(ca_1,ca_2,ca_3):
         return len({ca_1,ca_2,ca_3})==3
     set_object = Sets(dims=4, dim_size=3, n_cards=81)
     result = set_object.getsets_brute().values()
     setdef_flag = False
     for set_tuple in result:
         setdef_flag = all(same_cards(i, j ,k) or different_cards(i, j, k)
                           for i, j, k in zip(set_tuple[0],set_tuple[1],set_tuple[2]))
         if setdef_flag == False:
             break
     self.assertTrue(setdef_flag, msg="")
def index():
    form = InputForm(request.form)
    if request.method == 'POST' and form.validate():
        if form.dims.data < 3:
            raise ValueError("Dimensions should be greater than 2 for a three card SET game")
        if form.dim_size.data < 3:
            raise ValueError("Dimension size should be greater than 2 for a three card SET game")
        s = form.dims.data * [range(form.dim_size.data)]
        possible_cards = len(list(itertools.product(*s)))
        if form.n_cards.data > possible_cards:
            raise ValueError("Number of cards on the deck cannot be greater than %s" %possible_cards)
        game_set = Sets(form.dims.data, form.dim_size.data, form.n_cards.data)
        if form.dim_size.data == 3:
            result = game_set.get_sets()
        else:
            result = game_set.getsets_brute()
    else:
        result = None

    return render_template('view.html', form=form, result=result)
 def test_unique_getsets_brute(self):
     set_object = Sets(dims=4, dim_size=3, n_cards=81)
     result = set_object.getsets_brute()
     self.assertEqual(1080, unique_sets_length(result), msg="")
 def test_maximum_getsets_brute(self):
     set_object = Sets(dims=4, dim_size=3, n_cards=81)
     result = len(set_object.getsets_brute())
     self.assertEqual(1080, result, msg="")