to_number.f90 Source File

StringiFor to_number test.

This File Depends On

sourcefile~~to_number.f90~~EfferentGraph sourcefile~to_number.f90 to_number.f90 sourcefile~stringifor.f90 stringifor.F90 sourcefile~stringifor.f90->sourcefile~to_number.f90 sourcefile~penf.f90 penf.F90 sourcefile~penf.f90->sourcefile~stringifor.f90 sourcefile~stringifor_string_t.f90 stringifor_string_t.F90 sourcefile~penf.f90->sourcefile~stringifor_string_t.f90 sourcefile~befor64.f90 befor64.F90 sourcefile~penf.f90->sourcefile~befor64.f90 sourcefile~befor64_pack_data_m.f90 befor64_pack_data_m.F90 sourcefile~penf.f90->sourcefile~befor64_pack_data_m.f90 sourcefile~stringifor_string_t.f90->sourcefile~stringifor.f90 sourcefile~penf_b_size.f90 penf_b_size.F90 sourcefile~penf_b_size.f90->sourcefile~penf.f90 sourcefile~penf_stringify.f90 penf_stringify.F90 sourcefile~penf_b_size.f90->sourcefile~penf_stringify.f90 sourcefile~penf_global_parameters_variables.f90 penf_global_parameters_variables.F90 sourcefile~penf_global_parameters_variables.f90->sourcefile~penf.f90 sourcefile~penf_global_parameters_variables.f90->sourcefile~penf_b_size.f90 sourcefile~penf_global_parameters_variables.f90->sourcefile~penf_stringify.f90 sourcefile~penf_stringify.f90->sourcefile~penf.f90 sourcefile~befor64.f90->sourcefile~stringifor_string_t.f90 sourcefile~befor64_pack_data_m.f90->sourcefile~befor64.f90
Help

Source Code


Source Code

!< StringiFor `to_number` test.
program to_number
!-----------------------------------------------------------------------------------------------------------------------------------
!< StringiFor `to_number` test.
!-----------------------------------------------------------------------------------------------------------------------------------
use, intrinsic :: iso_fortran_env, only : stdout => output_unit
use stringifor, only : string, I1P, I2P, I4P, I8P, R4P, R8P, R16P
!-----------------------------------------------------------------------------------------------------------------------------------

!-----------------------------------------------------------------------------------------------------------------------------------
implicit none
type(string) :: astring        !< A string.
integer(I1P) :: integer_I1P    !< A integer.
integer(I1P) :: integer_I1P_   !< A integer.
integer(I2P) :: integer_I2P    !< A integer.
integer(I2P) :: integer_I2P_   !< A integer.
integer(I4P) :: integer_I4P    !< A integer.
integer(I4P) :: integer_I4P_   !< A integer.
integer(I8P) :: integer_I8P    !< A integer.
integer(I8P) :: integer_I8P_   !< A integer.
real(R4P)    :: real_R4P       !< A real.
real(R4P)    :: real_R4P_      !< A real.
real(R8P)    :: real_R8P       !< A real.
real(R8P)    :: real_R8P_      !< A real.
real(R16P)   :: real_R16P      !< A real.
real(R16P)   :: real_R16P_     !< A real.
logical      :: test_passed(7) !< List of passed tests.
!-----------------------------------------------------------------------------------------------------------------------------------

!-----------------------------------------------------------------------------------------------------------------------------------
test_passed = .false.

astring = '127'
integer_I1P = astring%to_number(kind=1_I1P)
integer_I1P_ = 127_I1P
test_passed(1) = integer_I1P==integer_I1P_
write(stdout, "(A)") 'Original:  "'//astring//'"'
write(stdout, "(A,I4,A)") 'To number: "', integer_I1P, '"'

astring = '32767'
integer_I2P = astring%to_number(kind=1_I2P)
integer_I2P_ = 32767_I2P
test_passed(2) = integer_I2P==integer_I2P_
write(stdout, "(A)") 'Original:  "'//astring//'"'
write(stdout, "(A,I6,A)") 'To number: "', integer_I2P, '"'

astring = '2147483647'
integer_I4P = astring%to_number(kind=1_I4P)
integer_I4P_ = 2147483647_I4P
test_passed(3) = integer_I4P==integer_I4P_
write(stdout, "(A)") 'Original:  "'//astring//'"'
write(stdout, "(A,I11,A)") 'To number: "', integer_I4P, '"'

astring = '-9223372036854775807'
integer_I8P = astring%to_number(kind=1_I8P)
integer_I8P_ = -9223372036854775807_I8P
test_passed(4) = integer_I8P==integer_I8P_
write(stdout, "(A)") 'Original:  "'//astring//'"'
write(stdout, "(A,I20,A)") 'To number: "', integer_I8P, '"'

astring = '3.4e9'
real_R4P = astring%to_number(kind=1._R4P)
real_R4P_ = 3.4e9_R4P
test_passed(5) = real_R4P==real_R4P_
write(stdout, "(A)") 'Original:  "'//astring//'"'
write(stdout, "(A,E13.6,A)") 'To number: "', real_R4P, '"'

astring = '-13.4345345e21'
real_R8P = astring%to_number(kind=1._R8P)
real_R8P_ = -13.4345345e21_R8P
test_passed(6) = real_R8P==real_R8P_
write(stdout, "(A)") 'Original:  "'//astring//'"'
write(stdout, "(A,E23.15,A)") 'To number: "', real_R8P, '"'

astring = '1.1e200'
real_R16P = astring%to_number(kind=1._R16P)
real_R16P_ = 1.1e200_R16P
test_passed(7) = real_R16P==real_R16P_
write(stdout, "(A)") 'Original:  "'//astring//'"'
write(stdout, "(A,E42.33,A)") 'To number: "', real_R16P, '"'

write(stdout, "(A,L1)") new_line('a')//'Are all tests passed? ', all(test_passed)
stop
!-----------------------------------------------------------------------------------------------------------------------------------
endprogram to_number

assignments.f90 basename_dir.f90 befor64.F90 befor64.F90 befor64_pack_data_m.F90 befor64_pack_data_m.F90 camelcase.f90 capitalize.f90 compact_real.f90 compact_real.f90 compact_real.f90 concatenation.f90 csv_naive_parser.f90 decode.f90 encode.f90 equal.f90 escape.f90 extension.f90 fill.f90 free.f90 fury.f90 fury_mixed_kinds.F90 fury_qreal128.F90 fury_qreal32.F90 fury_qreal64.F90 fury_system_abstract128.F90 fury_system_abstract32.F90 fury_system_abstract64.F90 fury_system_si128.F90 fury_system_si32.F90 fury_system_si64.F90 fury_test_bolt32.f90 fury_test_bolt64.f90 fury_test_qreal_add.f90 fury_test_qreal_add_aliases_failure.f90 fury_test_qreal_add_failure.f90 fury_test_qreal_add_mixed.f90 fury_test_qreal_add_mixed_failure.f90 fury_test_qreal_aliases.f90 fury_test_qreal_assign.f90 fury_test_qreal_conversions_complex.f90 fury_test_qreal_conversions_si.f90 fury_test_qreal_conversions_simple.f90 fury_test_qreal_div.f90 fury_test_qreal_div_mixed.f90 fury_test_qreal_eq.f90 fury_test_qreal_eq_mixed.f90 fury_test_qreal_mul.f90 fury_test_qreal_mul_mixed.f90 fury_test_qreal_not_eq.f90 fury_test_qreal_not_eq_mixed.f90 fury_test_qreal_pow.f90 fury_test_qreal_sub.f90 fury_test_qreal_sub_failure.f90 fury_test_qreal_sub_mixed.f90 fury_test_qreal_sub_mixed_failure.f90 fury_test_system_si.f90 fury_test_uom_add.f90 fury_test_uom_add_failure.f90 fury_test_uom_aliases.f90 fury_test_uom_assign.f90 fury_test_uom_assign_failure.f90 fury_test_uom_div.f90 fury_test_uom_mul.f90 fury_test_uom_parse_failure.f90 fury_test_uom_pow.f90 fury_test_uom_sub.f90 fury_test_uom_sub_failure.f90 fury_uom128.F90 fury_uom32.F90 fury_uom64.F90 fury_uom_converter.F90 fury_uom_reference128.F90 fury_uom_reference32.F90 fury_uom_reference64.F90 fury_uom_symbol128.F90 fury_uom_symbol32.F90 fury_uom_symbol64.F90 greater_equal_than.f90 greater_than.f90 insert.f90 io_basic.F90 io_listdirected.F90 is_digit.f90 is_integer.f90 is_number.f90 is_real.f90 join.f90 lower_equal_than.f90 lower_than.f90 not_equal.f90 partition.f90 penf.F90 penf.F90 penf.F90 penf.F90 penf.F90 penf_b_size.F90 penf_global_parameters_variables.F90 penf_stringify.F90 read_file.f90 read_line.f90 read_lines.f90 replace.f90 reverse.f90 sadjustlr.f90 scount.f90 search.f90 sindex.f90 slen.f90 slice.f90 snakecase.f90 split.f90 srepeat.f90 sscan.f90 start_end.f90 startcase.f90 strim.f90 stringifor.F90 stringifor_string_t.F90 strip.f90 sverify.f90 swapcase.f90 test_all.F90 test_all.f90 test_all.f90 Test_Driver.f90 to_number.f90 unescape.f90 unique.f90 upper_lower.f90 write_file.f90 write_lines.f90