Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /