예제 #1
0
    def test_run_vizrank_interrupt(self):
        scores, task = [], Mock()
        # interrupt calculation in third iteration
        task.is_interruption_requested.side_effect = lambda: \
            True if task.is_interruption_requested.call_count > 2 else False
        states = [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]
        res = run_vizrank(compute_score, chain(states), scores, task)

        next_state = self.assertQueueEqual(
            res.queue, [0, 0], compute_score, states[:2], states[1:3])
        self.assertEqual(next_state, (0, 3))
        res_scores = sorted([compute_score(x) for x in states[:2]])
        self.assertListEqual(res.scores, res_scores)
        self.assertIsNot(scores, res.scores)
        self.assertEqual(task.set_partial_result.call_count, 2)

        # continue calculation through all states
        task.is_interruption_requested.side_effect = lambda: False
        i = states.index(next_state)
        res = run_vizrank(compute_score, chain(states[i:]), res_scores, task)

        next_state = self.assertQueueEqual(
            res.queue, [0, 3, 2, 5], compute_score, states[2:],
            states[3:] + [None])
        self.assertIsNone(next_state)
        res_scores = sorted([compute_score(x) for x in states])
        self.assertListEqual(res.scores, res_scores)
        self.assertIsNot(scores, res.scores)
        self.assertEqual(task.set_partial_result.call_count, 6)
예제 #2
0
    def test_run_vizrank_interrupt(self):
        scores, task = [], Mock()
        # interrupt calculation in third iteration
        task.is_interruption_requested.side_effect = lambda: \
            True if task.is_interruption_requested.call_count > 2 else False
        states = [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]
        res = run_vizrank(compute_score, chain(states), scores, task)

        next_state = self.assertQueueEqual(res.queue, [0, 0], compute_score,
                                           states[:2], states[1:3])
        self.assertEqual(next_state, (0, 3))
        res_scores = sorted([compute_score(x) for x in states[:2]])
        self.assertListEqual(res.scores, res_scores)
        self.assertIsNot(scores, res.scores)
        self.assertEqual(task.set_partial_result.call_count, 2)

        # continue calculation through all states
        task.is_interruption_requested.side_effect = lambda: False
        i = states.index(next_state)
        res = run_vizrank(compute_score, chain(states[i:]), res_scores, task)

        next_state = self.assertQueueEqual(res.queue, [0, 3, 2, 5],
                                           compute_score, states[2:],
                                           states[3:] + [None])
        self.assertIsNone(next_state)
        res_scores = sorted([compute_score(x) for x in states])
        self.assertListEqual(res.scores, res_scores)
        self.assertIsNot(scores, res.scores)
        self.assertEqual(task.set_partial_result.call_count, 6)
예제 #3
0
    def test_run_vizrank(self):
        scores, task = [], Mock()
        # run through all states
        task.is_interruption_requested.return_value = False
        states = [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]
        res = run_vizrank(compute_score, chain(states), scores, task)

        next_state = self.assertQueueEqual(
            res.queue, [0, 0, 0, 3, 2, 5], compute_score,
            states, states[1:] + [None])
        self.assertIsNone(next_state)
        res_scores = sorted([compute_score(x) for x in states])
        self.assertListEqual(res.scores, res_scores)
        self.assertIsNot(scores, res.scores)
        self.assertEqual(task.set_partial_result.call_count, 6)
예제 #4
0
    def test_run_vizrank(self):
        scores, task = [], Mock()
        # run through all states
        task.is_interruption_requested.return_value = False
        states = [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]
        res = run_vizrank(compute_score, chain(states), scores, task)

        next_state = self.assertQueueEqual(res.queue, [0, 0, 0, 3, 2, 5],
                                           compute_score, states,
                                           states[1:] + [None])
        self.assertIsNone(next_state)
        res_scores = sorted([compute_score(x) for x in states])
        self.assertListEqual(res.scores, res_scores)
        self.assertIsNot(scores, res.scores)
        self.assertEqual(task.set_partial_result.call_count, 6)
예제 #5
0
 def test_continuous_class(self):
     data = Table("housing")[::100]
     self.send_signal(self.widget.Inputs.data, data)
     run_vizrank(self.vizrank.compute_score, self.vizrank.iterate_states,
                 None, [], 0, self.vizrank.state_count(), Mock())
예제 #6
0
 def test_discrete_class(self):
     self.send_signal(self.widget.Inputs.data, self.data)
     run_vizrank(self.vizrank.compute_score, self.vizrank.iterate_states,
                 None, [], 0, self.vizrank.state_count(), Mock())
예제 #7
0
 def invoke_on_partial_result():
     widget.on_partial_result(run_vizrank(
         widget.compute_score,
         widget.iterate_states(widget.saved_state),
         widget.scores, task
     ))
 def test_continuous_class(self):
     data = Table("housing")[::100]
     self.send_signal(self.widget.Inputs.data, data)
     run_vizrank(self.vizrank.compute_score,
                 self.vizrank.iterate_states(None), [], Mock())
 def test_discrete_class(self):
     self.send_signal(self.widget.Inputs.data, self.data)
     run_vizrank(self.vizrank.compute_score,
                 self.vizrank.iterate_states(None), [], Mock())
예제 #10
0
 def invoke_on_partial_result():
     widget.on_partial_result(
         run_vizrank(widget.compute_score,
                     widget.iterate_states(widget.saved_state),
                     widget.scores, task))
예제 #11
0
 def invoke_on_partial_result():
     widget.on_partial_result(
         run_vizrank(widget.compute_score, widget.iterate_states,
                     widget.saved_state, widget.scores,
                     widget.saved_progress, widget.state_count(), task))