module test_type_conversion_m !! Tests of type conversion module use pfunit use MPI implicit none contains @test(npes = [1]) subroutine convert_logical_integer(this) !! Tests logical <-> integer conversion use precision_grillix_m, only : GP use type_conversion_m, only : logical_to_integer, integer_to_logical implicit none class (MpiTestMethod), intent(inout) :: this integer :: comm_world, rank, ierr logical :: test_logical, lret integer :: test_integer, iret comm_world = this%getMpiCommunicator() call MPI_COMM_RANK(comm_world, rank, ierr) if (rank == 0) then write(*,*)'' write(*,*)'' write(*,'(A80)')'test_type_conversion ------------------------------------------------' endif ! Integer to logical test_integer = 0 lret = integer_to_logical(test_integer) @assertFalse(lret) test_integer = 1 lret = integer_to_logical(test_integer) @assertTrue(lret) ! Test invalid inputs (should always return false) test_integer = 2 lret = integer_to_logical(test_integer) @assertFalse(lret) test_integer = -1 lret = integer_to_logical(test_integer) @assertFalse(lret) ! Logical to integer test_logical = .false. iret = logical_to_integer(test_logical) @assertEqual(iret, 0) test_logical = .true. iret = logical_to_integer(test_logical) @assertEqual(iret, 1) if (rank == 0) then write(*,'(A80)')'test_type_conversion complete ---------------------------------------' write(*,*)'' write(*,*)'' endif end subroutine end module