Example #1
0
    def test_modify_element(self):
        '''
        case11:测试modify_element函数

        1、当链表为空时,调用modify_element函数,抛出指定异常        
        2、原链表存在4个元素[1,2,'a','b'],指定索引index=-1或4元素,抛出指定异常
                        
        3、原链表存在4个元素[1,2,'a','b'],修改索引index=0元素为'aa'
        4、原链表存在4个元素[1,2,'a','b'],修改索引index=3元素为'cc'     
        '''
        '''step 1'''
        temp_list = Llist()
        with self.assertRaisesRegexp(LinkedListOperateError, 'list is empty'):
            temp_list.modify_element(1, 'aa')
        '''step 2'''
        temp_list.append(1)
        temp_list.append(2)
        temp_list.append('a')
        temp_list.append('b')
        with self.assertRaisesRegexp(LinkedListOperateError,
                                     'list index out of range'):
            temp_list.modify_element(-1, 'aa')

        with self.assertRaisesRegexp(LinkedListOperateError,
                                     'list index out of range'):
            temp_list.modify_element(4, 'aa')
        '''step 3'''
        temp_list.modify_element(0, 'aa')
        value = temp_list.index(0)
        self.assertEqual(value, 'aa', "value_info " + str(value))
        '''step 4'''
        temp_list.modify_element(3, 'cc')
        value = temp_list.index(3)
        self.assertEqual(value, 'cc', "value_info " + str(value))
Example #2
0
    def test_index(self):
        '''
        case10:测试index函数

        1、当链表为空时,调用index函数,抛出指定异常        
        2、原链表存在4个元素[1,2,'a','b'],指定索引index=-1或4元素,抛出指定异常                
        3、原链表存在4个元素[1,2,'a','b'],指定索引index=0,找到节点0
        4、原链表存在4个元素[1,2,'a','b'],指定索引index=3,找到节点3        
        '''
        '''step 1'''
        temp_list = Llist()
        with self.assertRaisesRegexp(LinkedListOperateError, 'list is empty'):
            temp_list.index(1)
        '''step 2'''
        temp_list.append(1)
        temp_list.append(2)
        temp_list.append('a')
        temp_list.append('b')
        with self.assertRaisesRegexp(LinkedListOperateError,
                                     'list index out of range'):
            temp_list.index(-1)

        with self.assertRaisesRegexp(LinkedListOperateError,
                                     'list index out of range'):
            temp_list.index(4)
        '''step 3'''
        value = temp_list.index(0)
        self.assertEqual(value, 1, "value_info " + str(value))
        '''step 4'''
        value = temp_list.index(3)
        self.assertEqual(value, 'b', "value_info " + str(value))
Example #3
0
    def test_prepend(self):
        '''
        case3:测试prepend函数
        
        1、使用prepend添加1个元素'a',索引0为元素'a'
        2、使用prepend再添加1个元素'b',索引0为元素'b';索引1为元素'a'      
        '''
        temp_list = Llist()
        temp_list.prepend('a')
        value = temp_list.index(0)
        self.assertEqual(value, 'a', "value_info " + str(value))

        temp_list.prepend('b')
        value = temp_list.index(0)
        self.assertEqual(value, 'b', "value_info " + str(value))

        value = temp_list.index(1)
        self.assertEqual(value, 'a', "value_info " + str(value))
Example #4
0
    def test_index_insert(self):
        '''
        case13:测试index_insert函数

        1、当链表为空时,在索引0插入元素'a',索引index=0元素为'a'       
        2、当链表为['a']时,在索引1插入元素'b',索引index=1元素为'b'
        3、当链表为['a','b']时,在索引1插入元素'c',索引index=1元素为'c',索引index=2元素为'b'
        4、当链表为['a','c','b']时,传入索引>=4或<=-1或非数字,抛出指定异常
        '''
        '''step 1'''
        temp_list = Llist()
        temp_list.index_insert(0, 'a')
        value = temp_list.index(0)
        self.assertEqual(value, 'a', "value_info " + str(value))
        '''step 2'''
        temp_list.index_insert(1, 'b')
        value = temp_list.index(1)
        self.assertEqual(value, 'b', "value_info " + str(value))
        '''step 3'''
        temp_list.index_insert(1, 'c')
        value = temp_list.index(1)
        self.assertEqual(value, 'c', "value_info " + str(value))

        value = temp_list.index(2)
        self.assertEqual(value, 'b', "value_info " + str(value))
        '''step 4'''
        with self.assertRaisesRegexp(
                LinkedListOperateError,
                'index is out of range or index not a integer'):
            temp_list.index_insert(4, 'ccc')
        with self.assertRaisesRegexp(
                LinkedListOperateError,
                'index is out of range or index not a integer'):
            temp_list.index_insert(-1, 'ccc')
        with self.assertRaisesRegexp(
                LinkedListOperateError,
                'index is out of range or index not a integer'):
            temp_list.index_insert('aaa', 'ccc')
Example #5
0
    def test_append(self):
        '''
        case4:测试append函数

        1、使用append添加1个元素'a',索引0为元素'a'
        2、使用append再添加1个元素'b',索引0为元素'a';索引1为元素'b'
        3、使用append再添加1个元素'c',索引2为元素'c'        
        '''
        temp_list = Llist()
        temp_list.append('a')
        value = temp_list.index(0)
        self.assertEqual(value, 'a', "value_info " + str(value))

        temp_list.append('b')
        value = temp_list.index(0)
        self.assertEqual(value, 'a', "value_info " + str(value))

        value = temp_list.index(1)
        self.assertEqual(value, 'b', "value_info " + str(value))

        temp_list.append('c')
        value = temp_list.index(2)
        self.assertEqual(value, 'c', "value_info " + str(value))
Example #6
0
    def test_middle_pend(self):
        '''
        case5:测试middle_pend函数
        
        1、当被插入元素链表length<2,抛出指定异常
        2、原链表存在2个元素[1,2],使用middle_pend在索引1添加元素'a',索引1为元素'a',索引0为元素1,索引2为元素2
        3、原链表存在3个元素[1,'a',2] , 使用middle_pend在索引2添加元素'b',索引1为元素'a',索引2为元素'b',索引3为元素2
        4、原链表存在4个元素[1,'a','b',2],指定插入index=0或4,抛出指定异常
        '''
        '''step 1'''
        temp_list = Llist()
        temp_list.append(1)
        with self.assertRaisesRegexp(
                LinkedListOperateError,
                'the length of list is less than 2,can not execute middle_pend'
        ):
            temp_list.middle_pend(0, 'aaa')
        '''step 2'''
        temp_list.append(2)
        temp_list.middle_pend(1, 'a')
        value = temp_list.index(1)
        self.assertEqual(value, 'a', "value_info " + str(value))

        value = temp_list.index(0)
        self.assertEqual(value, 1, "value_info " + str(value))

        value = temp_list.index(2)
        self.assertEqual(value, 2, "value_info " + str(value))
        '''step 3'''
        temp_list.middle_pend(2, 'b')
        value = temp_list.index(1)
        self.assertEqual(value, 'a', "value_info " + str(value))

        value = temp_list.index(2)
        self.assertEqual(value, 'b', "value_info " + str(value))

        value = temp_list.index(3)
        self.assertEqual(value, 2, "value_info " + str(value))
        '''step 4'''
        with self.assertRaisesRegexp(
                LinkedListOperateError,
                'the input index can not execute middle_pend'):
            temp_list.middle_pend(0, 'aaa')

        with self.assertRaisesRegexp(
                LinkedListOperateError,
                'the input index can not execute middle_pend'):
            temp_list.middle_pend(4, 'aaa')