test_085 Subroutine

subroutine test_085(id, nfail)

Uses

  • proc~~test_085~~UsesGraph proc~test_085 test_085 module~forcolormap forcolormap proc~test_085->module~forcolormap module~forcolormap_info forcolormap_info proc~test_085->module~forcolormap_info module~forcolormap->module~forcolormap_info 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_parameters forcolormap_parameters module~forcolormap->module~forcolormap_parameters module~forcolormap_utils forcolormap_utils module~forcolormap->module~forcolormap_utils 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 module~forcolormap_cm_matplotlib->module~forcolormap_parameters module~forcolormap_cm_miscellaneous->module~forcolormap_parameters module~forcolormap_cm_scientific->module~forcolormap_parameters iso_fortran_env iso_fortran_env module~forcolormap_parameters->iso_fortran_env module~forcolormap_utils->module~forcolormap_parameters

Smoke test: set() should succeed for every name reported by cmap_info.

Arguments

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

Calls

proc~~test_085~~CallsGraph proc~test_085 test_085 proc~compute_rgb Colormap%compute_RGB proc~test_085->proc~compute_rgb proc~get_levels~2 Colormaps_info%get_levels proc~test_085->proc~get_levels~2 proc~get_name~2 Colormaps_info%get_name proc~test_085->proc~get_name~2 proc~get_ncolormaps Colormaps_info%get_ncolormaps proc~test_085->proc~get_ncolormaps proc~report_test report_test proc~test_085->proc~report_test proc~set Colormap%set proc~test_085->proc~set proc~get_rgb Colormap%get_RGB proc~compute_rgb->proc~get_rgb proc~assign_map Colormap%assign_map proc~set->proc~assign_map proc~check Colormap%check proc~set->proc~check proc~cubehelix_colormap cubehelix_colormap proc~set->proc~cubehelix_colormap proc~fire_colormap fire_colormap proc~set->proc~fire_colormap proc~inv_rainbow_colormap inv_rainbow_colormap proc~set->proc~inv_rainbow_colormap proc~rainbow_colormap rainbow_colormap proc~set->proc~rainbow_colormap proc~reverse Colormap%reverse proc~set->proc~reverse proc~zebra_colormap zebra_colormap proc~set->proc~zebra_colormap proc~check->proc~get_levels~2 proc~find_index Colormaps_info%find_index proc~check->proc~find_index local local proc~cubehelix_colormap->local

Called by

proc~~test_085~~CalledByGraph proc~test_085 test_085 program~check check program~check->proc~test_085

Source Code

   subroutine test_085(id, nfail)
      use forcolormap,      only: Colormap, wp
      use forcolormap_info, only: cmap_info
      integer, intent(inout) :: id, nfail
      character(len=*), parameter :: name = "set() covers all cmap_info names (smoke test)"
      logical :: ok
      type(Colormap) :: cm
      integer :: i, n, lev_expected, lev_got
      character(len=:), allocatable :: nm
      integer :: r, g, b

      n  = cmap_info%get_ncolormaps()
      ok = .true.

      do i = 1, n
         nm = trim(cmap_info%get_name(i))
         lev_expected = cmap_info%get_levels(i)

         call cm%set(nm, 0.0_wp, 1.0_wp)

         ! Minimal correctness: known names should not fall back to the default.
         ok = ok .and. (trim(cm%get_name()) == nm)

         ! Enforce levels when cmap_info provides a concrete value; otherwise just require positivity.
         lev_got = cm%get_levels()
         if (lev_expected > 0) then
            ok = ok .and. (lev_got == lev_expected)
         else
            ok = ok .and. (lev_got > 0)
         end if

         ! Touch the RGB table path at both ends.
         call cm%compute_RGB(0.0_wp, r, g, b)
         call cm%compute_RGB(1.0_wp, r, g, b)
      end do

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