def filter_tarif(self, tarif, queryset): """ Filter the queryset by the tarif. Compute the intersection of intervals. :param tarif: the tarif interval :param queryset: the initial queryset """ tarif = [int(v) for v in tarif] objects = [] for o in queryset: o_tarif = [int(v) for v in o.tarif.split(",")] if get_overlap(tarif, o_tarif) > 0: objects.append(o) return objects
def test_get_overlap(self): self.assertEqual(utils.get_overlap([1,2], [3,4]), 0) self.assertEqual(utils.get_overlap([1,2], [2,4]), 1) self.assertEqual(utils.get_overlap([1,2], [1,4]), 2) self.assertEqual(utils.get_overlap([1,4], [3,4]), 2)