test_065 Subroutine

subroutine test_065(id, nfail)

Uses

  • proc~~test_065~~UsesGraph proc~test_065 test_065 module~forcolormap forcolormap proc~test_065->module~forcolormap module~forcolormap_cm_matplotlib forcolormap_cm_matplotlib module~forcolormap->module~forcolormap_cm_matplotlib module~forcolormap_cm_miscellaneous forcolormap_cm_miscellaneous module~forcolormap->module~forcolormap_cm_miscellaneous module~forcolormap_cm_scientific forcolormap_cm_scientific module~forcolormap->module~forcolormap_cm_scientific module~forcolormap_info forcolormap_info module~forcolormap->module~forcolormap_info module~forcolormap_parameters forcolormap_parameters module~forcolormap->module~forcolormap_parameters module~forcolormap_utils forcolormap_utils module~forcolormap->module~forcolormap_utils module~forcolormap_cm_matplotlib->module~forcolormap_parameters module~forcolormap_cm_miscellaneous->module~forcolormap_parameters module~forcolormap_cm_scientific->module~forcolormap_parameters module~forcolormap_info->module~forcolormap_cm_matplotlib module~forcolormap_info->module~forcolormap_cm_miscellaneous module~forcolormap_info->module~forcolormap_cm_scientific module~forcolormap_info->module~forcolormap_parameters iso_fortran_env iso_fortran_env module~forcolormap_parameters->iso_fortran_env module~forcolormap_utils->module~forcolormap_parameters

Reversing twice should restore the original map (reverse is an involution).

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: id
integer, intent(inout) :: nfail

Calls

proc~~test_065~~CallsGraph proc~test_065 test_065 proc~create Colormap%create proc~test_065->proc~create proc~get_levels Colormap%get_levels proc~test_065->proc~get_levels proc~get_rgb Colormap%get_RGB proc~test_065->proc~get_rgb proc~report_test report_test proc~test_065->proc~report_test proc~reverse Colormap%reverse proc~test_065->proc~reverse proc~create->proc~reverse proc~assign_map Colormap%assign_map proc~create->proc~assign_map proc~check Colormap%check proc~create->proc~check proc~find_index Colormaps_info%find_index proc~check->proc~find_index proc~get_levels~2 Colormaps_info%get_levels proc~check->proc~get_levels~2

Called by

proc~~test_065~~CalledByGraph proc~test_065 test_065 program~check check program~check->proc~test_065

Source Code

   subroutine test_065(id, nfail)
      use forcolormap, only: Colormap, wp
      integer, intent(inout) :: id, nfail
      character(len=*), parameter :: name = "reverse(reverse(cm)) == cm (map restored)"
      logical :: ok
      type(Colormap) :: cm
      integer :: map(5,3)
      integer :: ref(0:4,3)
      integer :: i, r, g, b

      map(1,:) = [  1,  2,  3 ]
      map(2,:) = [  4,  5,  6 ]
      map(3,:) = [  7,  8,  9 ]
      map(4,:) = [ 10, 11, 12 ]
      map(5,:) = [ 13, 14, 15 ]

      call cm%create("custom", 0.0_wp, 1.0_wp, map)

      do i = 0, cm%get_levels()-1
         call cm%get_RGB(i, r, g, b)
         ref(i,1) = r; ref(i,2) = g; ref(i,3) = b
      end do

      call cm%reverse()
      call cm%reverse()

      ok = .true.
      do i = 0, cm%get_levels()-1
         call cm%get_RGB(i, r, g, b)
         ok = ok .and. (r == ref(i,1)) .and. (g == ref(i,2)) .and. (b == ref(i,3))
      end do

      call report_test(name, ok, id, nfail)
   end subroutine test_065