コード例 #1
0
    def test_row_block_recalculate_bounds(self):
        rb = RowBlock([Change(5, pn) for pn in ['3', '1', '5']])

        self.assertRaises(IndexError, lambda: rb.recalculate(-1))
        rb.recalculate(0)
        rb.recalculate(3)
        self.assertRaises(IndexError, lambda: rb.recalculate(4))
コード例 #2
0
    def test_row_block_set_changes(self):
        rb = RowBlock([Change(5, pn) for pn in ['3', '1', '5']], '54321')

        new_changes = [Change(5, pn) for pn in ['5', '3']]
        rb.changes = new_changes

        self.assertEqual(rb.changes, new_changes)
        self.assertEqual(rb.size, 3)
        self.assertEqual(list(rb), ['54321', '45231', '54213'])
コード例 #3
0
    def test_row_block_set_changes(self):
        rb = RowBlock(*[Change(5, pn) for pn in ['3', '1', '5']],
                      starting_row='54321')

        new_changes = [Change(5, pn) for pn in ['5', '3']]
        rb.changes = new_changes

        self.assertEqual(rb.changes, new_changes)
        self.assertEqual(rb.size, 3)
        self.assertEqual(list(rb), ['54321', '45231', '54213'])
コード例 #4
0
    def test_row_block_set_start(self):
        changes = []
        changes.append(Change(5, '3'))
        changes.append(Change(5, '1'))
        changes.append(Change(5, '5'))

        rb = RowBlock(changes)
        rb.set_start('54321')
        rb.recalculate()

        self.assertEqual(rb[2], '43521')
コード例 #5
0
    def test_row_block_subscript_bounds(self):
        rb = RowBlock([Change(5, pn) for pn in ['3', '1', '5']])

        self.assertRaises(IndexError, lambda: rb[-1])
        self.assertEqual(rb[0], '12345')
        self.assertEqual(rb[3], '32415')
        self.assertRaises(IndexError, lambda: rb[4])

        self.assertRaises(IndexError, lambda: rb.__setitem__(-1, Row(5)))
        rb[0] = Row(5)  # Should succeed
        rb[3] = Row(5)
        self.assertRaises(IndexError, lambda: rb.__setitem__(4, Row(5)))
コード例 #6
0
    def test_row_block_subscript_bounds(self):
        rb = RowBlock(*[Change(5, pn) for pn in ['3', '1', '5']])

        self.assertRaises(IndexError, lambda: rb[-1])
        self.assertEqual(rb[0], '12345')
        self.assertEqual(rb[3], '32415')
        self.assertRaises(IndexError, lambda: rb[4])

        self.assertRaises(IndexError, lambda: rb.__setitem__(-1, Row(5)))
        rb[0] = Row(5)  # Should succeed
        rb[3] = Row(5)
        self.assertRaises(IndexError, lambda: rb.__setitem__(4, Row(5)))
コード例 #7
0
    def test_row_block_constructors(self):
        changes = []
        changes.append(Change(5, '3'))
        changes.append(Change(5, '1'))
        changes.append(Change(5, '5'))

        rb = RowBlock(*changes)
        self.assertEqual(rb.size, 4)
        self.assertEqual(rb[0], '12345')
        self.assertEqual(rb[1], '21354')
        self.assertEqual(rb[2], '23145')
        self.assertEqual(rb[3], '32415')

        rb = RowBlock(*changes, starting_row='54321')
        self.assertEqual(rb[2], '43521')
コード例 #8
0
    def test_row_block_recalculate(self):
        changes = []
        changes.append(Change(5, '3'))
        changes.append(Change(5, '1'))
        changes.append(Change(5, '5'))

        rb = RowBlock(*changes)
        rb[2] = '54321'
        rb.recalculate(2)

        self.assertEqual(rb.size, 4)
        self.assertEqual(rb[0], '12345')
        self.assertEqual(rb[1], '21354')
        self.assertEqual(rb[2], '54321')
        self.assertEqual(rb[3], '45231')
コード例 #9
0
    def test_row_block_recalculate(self):
        changes = []
        changes.append(Change(5, '3'))
        changes.append(Change(5, '1'))
        changes.append(Change(5, '5'))

        rb = RowBlock(changes)
        rb[2] = '54321'
        rb.recalculate(2)

        self.assertEqual(rb.size, 4)
        self.assertEqual(rb[0], '12345')
        self.assertEqual(rb[1], '21354')
        self.assertEqual(rb[2], '54321')
        self.assertEqual(rb[3], '45231')
コード例 #10
0
    def test_row_block_set_changes_exceptions(self):
        rb = RowBlock()

        def assign_changes(changes):
            rb.changes = changes

        self.assertRaises(TypeError, lambda: assign_changes(self))
        self.assertRaises(TypeError, lambda: assign_changes([self]))
コード例 #11
0
    def test_row_block_changes_not_directly_mutable(self):
        changes_in = [Change(5, pn) for pn in ['3', '1', '5']]
        rb = RowBlock(*changes_in)

        # Make a local reference to rb.changes, and modify it...
        changes_out = rb.changes
        changes_out.pop()

        # ... then make sure the original hasn't changed
        self.assertEqual(len(changes_in), 3)
        self.assertEqual(len(rb.changes), 3)
        self.assertEqual(rb.changes, changes_in)
コード例 #12
0
    def test_row_block_recalculate_bounds(self):
        rb = RowBlock(*[Change(5, pn) for pn in ['3', '1', '5']])

        self.assertRaises(IndexError, lambda: rb.recalculate(-1))
        rb.recalculate(0)
        rb.recalculate(3)
        self.assertRaises(IndexError, lambda: rb.recalculate(4))
コード例 #13
0
ファイル: __init__.py プロジェクト: simpleigh/method-lines
    def __init__(self, method_name, method_object, call_symbol, call_object,
                 starting_lead_head):

        self.method_name = method_name
        self.method_object = method_object
        self.call_symbol = call_symbol
        self.call_object = call_object

        places = list(method_object)
        if call_object is not None:
            places[-1] = call_object

        self.rows = RowBlock(places, starting_row=starting_lead_head)
        self.lead_head = self.rows[self.rows.size - 1]
コード例 #14
0
    def test_row_block_set_start(self):
        changes = []
        changes.append(Change(5, '3'))
        changes.append(Change(5, '1'))
        changes.append(Change(5, '5'))

        rb = RowBlock(*changes)
        rb.set_start('54321')
        rb.recalculate()

        self.assertEqual(rb[2], '43521')
コード例 #15
0
    def test_row_block_get_changes(self):
        changes = []
        rb = RowBlock(*changes)

        self.assertEqual(rb.changes, changes)
コード例 #16
0
    def test_row_block_iterator(self):
        rb = RowBlock(*[Change(5, pn) for pn in ['3', '1', '5']])

        self.assertEqual(list(rb), ['12345', '21354', '23145', '32415'])
コード例 #17
0
 def test_row_block_constructor_exceptions(self):
     self.assertRaises(TypeError, lambda: RowBlock(self))
     self.assertRaises(TypeError, lambda: RowBlock(starting_row=self))