85
									
								
								libshlist/test/test.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								libshlist/test/test.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
. ./liblist.sh
 | 
			
		||||
 | 
			
		||||
print_list () {
 | 
			
		||||
    echo '==========List============'
 | 
			
		||||
    printf "%s\n" "$1"
 | 
			
		||||
    echo '--------------------------'
 | 
			
		||||
    printf "Size: %s\t\n\n" "$(list_size "$1")"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_Delete () {
 | 
			
		||||
    lst="$(list '1'     '12'    '23'    \
 | 
			
		||||
                '33'    '215'   '-456'  \
 | 
			
		||||
                '1236'  '1'     '12'    \
 | 
			
		||||
                '3'     '-3'    '33'    \
 | 
			
		||||
                '1'     '12'    '-55'   \
 | 
			
		||||
                '123'   '-1002' '-1'   )"
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Deletion\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list "$lst"
 | 
			
		||||
 | 
			
		||||
    lst="$(list_remove '1' "$lst")"         ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_erase '33' "$lst")"         ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_eraseat '3' "$lst")"        ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_pop_front "$lst")"          ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_pop_back "$lst")"           ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_erase_from '8' "$lst")"     ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_erase_range '1' '2' "$lst")"; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_erase_range '0' '0' "$lst")"; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_extract '1' '3' "$lst")"    ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_extract '1' '30' "$lst")"   ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_extract '1' '0' "$lst")"    ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_Addition () {
 | 
			
		||||
    lst=
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Addition\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list "$lst"
 | 
			
		||||
 | 
			
		||||
    lst="$(list_push_front '12' "$lst")"    ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_push_back '33' "$lst")"     ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_push_front '1' "$lst")"     ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_insert '23' '2' "$lst")"    ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_push_back '215' "$lst")"    ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inc () { i="$1"; i=$((i+1)); echo "${i}"; }
 | 
			
		||||
Test_Set() {
 | 
			
		||||
    lst="$(list '1'     '12'    '23'    \
 | 
			
		||||
                '33'    '215'   '-456'  \
 | 
			
		||||
                '1236'  '1'     '12'    )"
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Set\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list "$lst"
 | 
			
		||||
 | 
			
		||||
    lst="$(list_reverse "$lst")"            ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_sort "$lst")"               ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_sort_reverse "$lst")"       ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_map inc "$lst")"            ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_replace '2' '999' "$lst")"  ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_set '999' '3' "$lst")"      ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
    lst="$(list_set '999' '6' "$lst")"      ; echo 'test:' ; print_list "$lst"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_Get() {
 | 
			
		||||
    lst="$(list '1'     '12'    '23'    \
 | 
			
		||||
                '33'    '215'   '-456'  \
 | 
			
		||||
                '1236'  '1'     '12'    )"
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Get\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list "$lst"
 | 
			
		||||
 | 
			
		||||
    printf 'test: elt='     ; list_front "$lst"
 | 
			
		||||
    printf 'test: elt='     ; list_back "$lst"
 | 
			
		||||
    printf 'test: elt='     ; list_get '2' "$lst"
 | 
			
		||||
    printf 'test: index='   ; list_indexof '1' "$lst" | grep -E '^[0-9]+$' || echo
 | 
			
		||||
    printf 'test: index='   ; list_indexof '-456' "$lst" | grep -E '^[0-9]+$' || echo
 | 
			
		||||
    printf 'test: contains='; list_contains '1236' "$lst" && echo 'yes' || echo 'no'
 | 
			
		||||
    printf 'test: contains='; list_contains '999' "$lst" && echo 'yes' || echo 'no'
 | 
			
		||||
    printf 'test: count='   ; list_count '1' "$lst"
 | 
			
		||||
    printf 'test: count='   ; list_count '215' "$lst"
 | 
			
		||||
    printf 'test: empty='   ; list_empty "$lst" && echo 'yes' || echo 'no'
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										210
									
								
								libshlist/test/test_unsafe.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								libshlist/test/test_unsafe.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,210 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
. ./liblist_unsafe.sh
 | 
			
		||||
 | 
			
		||||
print_list () {
 | 
			
		||||
    echo '==========List============'
 | 
			
		||||
    eval "printf \"%s\\n\" \"\$$1\""
 | 
			
		||||
    echo '--------------------------'
 | 
			
		||||
    eval "printf \"Size: %s\t\n\n\" \"\$(list_size $1)\""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_Delete () {
 | 
			
		||||
    lst="$(list '1'     '12'    '23'    \
 | 
			
		||||
                '33'    '215'   '-456'  \
 | 
			
		||||
                '1236'  '1'     '12'    \
 | 
			
		||||
                '3'     '-3'    '33'    \
 | 
			
		||||
                '1'     '12'    '-55'   \
 | 
			
		||||
                '123'   '-1002' '-1'   )"
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Deletion\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_remove lst '1'         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase lst '33'         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_eraseat lst 3          ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_pop_front lst          ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_pop_back lst           ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_from lst 8       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_range lst 1 2    ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_range lst 0 0    ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst 1 3        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst 1 30       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst 1 0        ; echo 'test:' ; print_list lst
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_Addition () {
 | 
			
		||||
    lst=
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Addition\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_push_front lst '12'    ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_back lst '33'     ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_front lst '1'     ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_insert lst '23' 2      ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_back lst '215'    ; echo 'test:' ; print_list lst
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inc () { i="$1"; i=$((i+1)); echo "${i}"; }
 | 
			
		||||
Test_Set() {
 | 
			
		||||
    lst="$(list '1'     '12'    '23'    \
 | 
			
		||||
                '33'    '215'   '-456'  \
 | 
			
		||||
                '1236'  '1'     '12'    )"
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Set\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_reverse lst            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_sort lst               ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_sort_reverse lst       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_map lst inc            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_replace lst '2' '999'  ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_set lst '999' 3        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_set lst '999' 6        ; echo 'test:' ; print_list lst
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_Get() {
 | 
			
		||||
    lst="$(list '1'     '12'    '23'    \
 | 
			
		||||
                '33'    '215'   '-456'  \
 | 
			
		||||
                '1236'  '1'     '12'    )"
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Set\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list lst
 | 
			
		||||
 | 
			
		||||
    printf 'test: elt='     ; list_front lst
 | 
			
		||||
    printf 'test: elt='     ; list_back lst
 | 
			
		||||
    printf 'test: elt='     ; list_get lst 2
 | 
			
		||||
    printf 'test: index='   ; list_indexof lst '1'      | grep -E '^[0-9]+$' || echo
 | 
			
		||||
    printf 'test: index='   ; list_indexof lst '-456'   | grep -E '^[0-9]+$' || echo
 | 
			
		||||
    printf 'test: contains='; list_contains lst '1236'  && echo 'yes' || echo 'no'
 | 
			
		||||
    printf 'test: contains='; list_contains lst '2'   && echo 'yes' || echo 'no'
 | 
			
		||||
    printf 'test: count='   ; list_count lst '1'
 | 
			
		||||
    printf 'test: count='   ; list_count lst '215'
 | 
			
		||||
    printf 'test: empty='   ; list_empty lst && echo 'yes' || echo 'no'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_Void() {
 | 
			
		||||
    lst="$(list '' '' '')"
 | 
			
		||||
 | 
			
		||||
    printf "TEST: Void\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list lst
 | 
			
		||||
 | 
			
		||||
    printf 'test (void): empty=' ; list_empty lst && echo 'yes' || echo 'no'
 | 
			
		||||
    printf 'test (void): size='  ; list_size lst
 | 
			
		||||
 | 
			
		||||
    list_reverse lst            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_sort lst               ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_sort_reverse lst       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_replace lst '2' '999'  ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_set lst '999' 3        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_set lst '999' 6        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_map lst inc            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_remove lst '1'         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase lst '33'         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_eraseat lst 3          ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_pop_front lst          ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_pop_back lst           ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_from lst 8       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_range lst 1 2    ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_range lst 0 0    ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst 1 3        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst 1 30       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst 1 0        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_front lst '2'     ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_back lst '4'      ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_front lst '1'     ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_insert lst '3' 2       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_back lst '5'      ; echo 'test:' ; print_list lst
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_BadArg() {
 | 
			
		||||
    lst="$1"
 | 
			
		||||
    printf "TEST: BadArg\n\n"
 | 
			
		||||
    echo 'test: Initialization'; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_push_front lst     ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_front  ''     ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_front         ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_push_back lst      ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_back ''       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_push_back          ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_insert lst ''      ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_insert lst         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_insert 2           ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_reverse            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_sort               ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_sort_reverse       ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_replace lst '2'    ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_replace lst        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_replace            ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_set lst '999'      ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_set lst            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_set                ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_map lst            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_map inc            ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_map                ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_remove lst         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_remove '1'         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_remove             ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_erase lst          ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase '33'         ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase              ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_eraseat lst        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_eraseat 3          ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_eraseat            ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_pop_front          ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_pop_back           ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_erase_from lst     ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_from 8       ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_from         ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_erase_range lst 0  ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_range lst    ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_erase_range        ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    list_extract 0 1        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst 1      ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract lst        ; echo 'test:' ; print_list lst
 | 
			
		||||
    list_extract            ; echo 'test:' ; print_list lst
 | 
			
		||||
 | 
			
		||||
    printf 'test: elt='     ; list_front    || echo
 | 
			
		||||
    printf 'test: elt='     ; list_back     || echo
 | 
			
		||||
 | 
			
		||||
    printf 'test: elt='     ; list_get lst  || echo
 | 
			
		||||
    printf 'test: elt='     ; list_get 2    || echo
 | 
			
		||||
    printf 'test: elt='     ; list_get      || echo
 | 
			
		||||
 | 
			
		||||
    printf 'test: index='   ; list_indexof lst      | grep -E '^[0-9]+$' || echo
 | 
			
		||||
    printf 'test: index='   ; list_indexof '-456'   | grep -E '^[0-9]+$' || echo
 | 
			
		||||
    printf 'test: index='   ; list_indexof          | grep -E '^[0-9]+$' || echo
 | 
			
		||||
 | 
			
		||||
    printf 'test: contains='; list_contains lst && echo 'yes' || echo 'no'
 | 
			
		||||
    printf 'test: contains='; list_contains '2' && echo 'yes' || echo 'no'
 | 
			
		||||
    printf 'test: contains='; list_contains     && echo 'yes' || echo 'no'
 | 
			
		||||
 | 
			
		||||
    printf 'test: count='   ; list_count lst
 | 
			
		||||
    printf 'test: count='   ; list_count '215'
 | 
			
		||||
    printf 'test: count='   ; list_count
 | 
			
		||||
 | 
			
		||||
    printf 'test: empty='   ; list_empty && echo 'yes' || echo 'no'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_VoidBadArg() {
 | 
			
		||||
    Test_BadArg "$(list '' '' '' '')"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test_WithBadArg() {
 | 
			
		||||
    Test_BadArg "$(list 1 2 3)"
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user