Skip to content

Commit 7e44eea

Browse files
committed
add ascii_table to the tests
1 parent 32b7bf3 commit 7e44eea

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

test/ascii/test_ascii.f90

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ subroutine collect_ascii(testsuite)
5252
new_unittest("to_lower_long", test_to_lower_long), &
5353
new_unittest("to_upper_short", test_to_upper_short), &
5454
new_unittest("to_upper_long", test_to_upper_long), &
55+
new_unittest("ascii_table", test_ascii_table), &
5556
new_unittest("to_upper_string", test_to_upper_string), &
5657
new_unittest("to_lower_string", test_to_lower_string), &
5758
new_unittest("to_title_string", test_to_title_string), &
@@ -725,9 +726,9 @@ subroutine test_to_upper_long(error)
725726
! This test reproduces the true/false table found at
726727
! https://en.cppreference.com/w/cpp/string/byte
727728
!
728-
subroutine test_ascii_table
729+
subroutine ascii_table(table)
730+
logical, intent(out) :: table(15,12)
729731
integer :: i, j
730-
logical :: table(15,12)
731732

732733
! loop through functions
733734
do i = 1, 12
@@ -780,6 +781,34 @@ elemental logical function validate(ascii_code, func)
780781
end select
781782
end function validate
782783

784+
end subroutine ascii_table
785+
786+
subroutine test_ascii_table(error)
787+
type(error_type), allocatable, intent(out) :: error
788+
logical :: arr(15, 12)
789+
logical, parameter :: ascii_class_table(15,12) = transpose(reshape([ &
790+
! iscntrl isprint isspace isblank isgraph ispunct isalnum isalpha isupper islower isdigit isxdigit
791+
.true., .false., .false., .false., .false., .false., .false., .false., .false., .false., .false., .false., & ! 0–8
792+
.true., .false., .true., .true., .false., .false., .false., .false., .false., .false., .false., .false., & ! 9
793+
.true., .false., .true., .false., .false., .false., .false., .false., .false., .false., .false., .false., & ! 10–13
794+
.true., .false., .false., .false., .false., .false., .false., .false., .false., .false., .false., .false., & ! 14–31
795+
.false., .true., .true., .true., .false., .false., .false., .false., .false., .false., .false., .false., & ! 32 (space)
796+
.false., .true., .false., .false., .true., .true., .false., .false., .false., .false., .false., .false., & ! 33–47
797+
.false., .true., .false., .false., .true., .false., .true., .false., .false., .false., .true., .true., & ! 48–57
798+
.false., .true., .false., .false., .true., .true., .false., .false., .false., .false., .false., .false., & ! 58–64
799+
.false., .true., .false., .false., .true., .false., .true., .true., .true., .false., .false., .true., & ! 65–70
800+
.false., .true., .false., .false., .true., .false., .true., .true., .true., .false., .false., .false., & ! 71–90
801+
.false., .true., .false., .false., .true., .true., .false., .false., .false., .false., .false., .false., & ! 91–96
802+
.false., .true., .false., .false., .true., .false., .true., .true., .false., .true., .false., .true., & ! 97–102
803+
.false., .true., .false., .false., .true., .false., .true., .true., .false., .true., .false., .false., & ! 103–122
804+
.false., .true., .false., .false., .true., .true., .false., .false., .false., .false., .false., .false., & ! 123–126
805+
.true., .false., .false., .false., .false., .false., .false., .false., .false., .false., .false., .false. & ! 127
806+
], shape=[12,15]))
807+
808+
call ascii_table(arr)
809+
call check(error, all(arr .eqv. ascii_class_table), "ascii table was not accurately generated")
810+
811+
if (allocated(error)) return
783812
end subroutine test_ascii_table
784813

785814
subroutine test_to_lower_string(error)

0 commit comments

Comments
 (0)