Ejemplo n.º 1
0
 def test_get_4th_then_previous_page(self):
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     predicate.page = 4
     self.map.values(predicate)
     predicate.previous_page()
     self.assertEqual(self.map.values(predicate), [46, 47])
Ejemplo n.º 2
0
 def test_get_3rd_then_next_page(self):
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     predicate.page = 3
     self.map.values(predicate)
     predicate.next_page()
     self.assertEqual(self.map.values(predicate), [48, 49])
Ejemplo n.º 3
0
 def test_nonexistent_next_page(self):
     # Trying to get next page while already at last page should return empty list.
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     predicate.page = 4
     predicate.next_page()
     self.assertEqual(self.map.values(predicate), [])
Ejemplo n.º 4
0
 def test_paging(self):
     self.fill_map_numeric()
     predicate = paging(less("this", 4), 2)
     self.assertCountEqual([0, 1], self.map.key_set(predicate))
     predicate.next_page()
     self.assertCountEqual([2, 3], self.map.key_set(predicate))
     predicate.next_page()
     self.assertCountEqual([], self.map.key_set(predicate))
Ejemplo n.º 5
0
 def test_reset(self):
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     self.assertEqual(self.map.values(predicate), [40, 41])
     predicate.next_page()
     self.assertEqual(self.map.values(predicate), [42, 43])
     predicate.reset()
     self.assertEqual(self.map.values(predicate), [40, 41])
Ejemplo n.º 6
0
    def test_values_with_custom_comparator(self):
        m = self.fill_map()
        predicate = paging(less("this", 10), 5, CustomComparator(1, IterationType.KEY))

        values = list(sorted(m.values()))

        self.assertEqual(values[9:4:-1], self.map.values(predicate))
        predicate.next_page()
        self.assertEqual(values[4::-1], self.map.values(predicate))
        predicate.next_page()
        self.assertEqual([], self.map.values(predicate))
Ejemplo n.º 7
0
    def test_key_set_with_custom_comparator(self):
        m = self.fill_map()
        predicate = paging(less("this", 10), 5, CustomComparator(1, IterationType.KEY))

        keys = list(sorted(m.keys(), key=lambda k: m[k]))

        self.assertEqual(keys[9:4:-1], self.map.key_set(predicate))
        predicate.next_page()
        self.assertEqual(keys[4::-1], self.map.key_set(predicate))
        predicate.next_page()
        self.assertEqual([], self.map.key_set(predicate))
Ejemplo n.º 8
0
    def test_equal_values_paging(self):
        self.fill_map()
        # keys[50 - 99], values[0 - 49]:
        m = {"key-%d" % i: i - 50 for i in range(50, 100)}
        self.map.put_all(m)

        predicate = paging(less_or_equal("this", 8), 5)

        self.assertEqual(self.map.values(predicate), [0, 0, 1, 1, 2])
        predicate.next_page()
        self.assertEqual(self.map.values(predicate), [2, 3, 3, 4, 4])
        predicate.next_page()
        self.assertEqual(self.map.values(predicate), [5, 5, 6, 6, 7])
        predicate.next_page()
        self.assertEqual(self.map.values(predicate), [7, 8, 8])
    def test_entry_set_with_custom_comparator(self):
        m = self.fill_map()
        predicate = paging(less("this", 10), 5,
                           CustomComparator(1, IterationType.KEY))

        def entries(start, end):
            return list(
                sorted(map(lambda k: (k, m[k]),
                           filter(lambda k: start <= m[k] < end, m)),
                       key=lambda e: e[1],
                       reverse=True))

        self.assertEqual(entries(5, 10), self.map.entry_set(predicate))
        predicate.next_page()
        self.assertEqual(entries(0, 5), self.map.entry_set(predicate))
        predicate.next_page()
        self.assertEqual([], self.map.entry_set(predicate))
Ejemplo n.º 10
0
 def test_set_nonexistent_page(self):
     # Trying to get page 10, which is out of range, should return empty list.
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     predicate.page = 10
     self.assertEqual(self.map.values(predicate), [])
Ejemplo n.º 11
0
    students.set(
        i,
        HazelcastJsonValue({
            "student_id": i,
            "age": random.randrange(8, 24),
        }),
    )

# Use the paging predicate with true predicate
# to get all students with the page size of 10.
# It also uses the custom comparator we have
# written and sorts the values in ascending
# order of age.
paging_predicate = predicate.paging(
    predicate=predicate.true(),
    page_size=10,
    comparator=AgeComparator(),
)
print(students.values(paging_predicate))

# Set up the next page and fetch it.
paging_predicate.next_page()
print(students.values(paging_predicate))

# This time, we will fetch students with the
# student_id between 10 to 40 with the page size
# of 5. We will also make use of the custom comparator
# and sort the results in descending order of age.
paging_predicate = predicate.paging(
    predicate=predicate.between("student_id", 10, 40),
    page_size=5,
Ejemplo n.º 12
0
 def test_paging(self):
     predicate = paging(true(), 5)
     self.assertEqual(
         str(predicate),
         "PagingPredicate(predicate=TruePredicate(), page_size=5, comparator=None)",
     )
Ejemplo n.º 13
0
 def test_page_size(self):
     predicate = paging(greater_or_equal("this", 40), 2)
     self.assertEqual(predicate.page_size, 2)
Ejemplo n.º 14
0
 def test_get_page(self):
     predicate = paging(greater_or_equal("this", 40), 2)
     predicate.page = 4
     self.assertEqual(predicate.page, 4)
Ejemplo n.º 15
0
 def test_project_with_paging_predicate(self):
     with self.assertRaises(AssertionError):
         self.map.project(single_attribute("foo"), paging(true(), 10))
Ejemplo n.º 16
0
 def test_get_half_full_last_page(self):
     # Page size set to 2, but last page only has 1 element.
     self.fill_map()
     predicate = paging(greater_or_equal("this", 41), 2)
     predicate.page = 4
     self.assertEqual(self.map.values(predicate), [49])
Ejemplo n.º 17
0
 def test_with_none_inner_predicate(self):
     self.fill_map(3)
     predicate = paging(None, 10)
     self.assertEqual(self.map.values(predicate), [0, 1, 2])
 def test_previous_page(self):
     self.fill_map()
     predicate = paging(greater_or_equal('this', 40), 2)
     predicate.page = 4
     predicate.previous_page()
     self.assertEqual(self.map.values(predicate), [46, 47])
Ejemplo n.º 19
0
 def test_empty_map(self):
     # Empty map should return empty list.
     predicate = paging(greater_or_equal("this", 30), 2)
     self.assertEqual(self.map.values(predicate), [])
Ejemplo n.º 20
0
 def test_entry_set_with_paging_predicate(self):
     self.fill_map(3)
     entry_set = self.map.entry_set(paging(greater_or_equal("this", 2), 1))
     self.assertEqual(len(entry_set), 1)
     self.assertEqual(entry_set[0], ("key-2", 2))
Ejemplo n.º 21
0
 def test_previous_page_when_index_is_zero(self):
     predicate = paging(true(), 2)
     self.assertEqual(0, predicate.previous_page())
     self.assertEqual(0, predicate.previous_page())
Ejemplo n.º 22
0
    def test_with_non_positive_page_size(self):
        with self.assertRaises(ValueError):
            paging(true(), 0)

        with self.assertRaises(ValueError):
            paging(true(), -1)
Ejemplo n.º 23
0
    def test_with_inner_paging_predicate(self):
        predicate = paging(true(), 1)

        with self.assertRaises(TypeError):
            paging(predicate, 1)
Ejemplo n.º 24
0
 def test_nonexistent_previous_page(self):
     # Trying to get previous page while already at first page should return first page.
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     predicate.previous_page()
     self.assertEqual(self.map.values(predicate), [40, 41])
Ejemplo n.º 25
0
 def test_first_page(self):
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     self.assertEqual(self.map.values(predicate), [40, 41])
Ejemplo n.º 26
0
 def test_set_page(self):
     self.fill_map()
     predicate = paging(greater_or_equal("this", 40), 2)
     predicate.page = 4
     self.assertEqual(self.map.values(predicate), [48, 49])
Ejemplo n.º 27
0
 def test_key_set_with_paging_predicate(self):
     self.fill_map(3)
     key_set = self.map.key_set(paging(greater_or_equal("this", 2), 1))
     self.assertEqual(len(key_set), 1)
     self.assertEqual(key_set[0], "key-2")
Ejemplo n.º 28
0
 def test_aggregate_with_paging_predicate(self):
     with self.assertRaises(AssertionError):
         self.map.aggregate(int_avg("foo"), paging(true(), 10))
Ejemplo n.º 29
0
 def test_values_with_paging_predicate(self):
     self.fill_map(3)
     values = self.map.values(paging(greater_or_equal("this", 2), 1))
     self.assertEqual(len(values), 1)
     self.assertEqual(values[0], 2)
 def test_next_page(self):
     self.fill_map()
     predicate = paging(greater_or_equal('this', 40), 2)
     predicate.next_page()
     self.assertEqual(self.map.values(predicate), [42, 43])