test_replace_delimiter Subroutine

public subroutine test_replace_delimiter()

Arguments

None

Calls

proc~~test_replace_delimiter~~CallsGraph proc~test_replace_delimiter test_replace_delimiter assertequal assertequal proc~test_replace_delimiter->assertequal proc~replace_delimiter replace_delimiter proc~test_replace_delimiter->proc~replace_delimiter

Source Code

   subroutine test_replace_delimiter()
      character(len=:), allocatable :: d, r
      character(len=*), parameter :: A = 'bread'
      character(len=*), parameter :: B = 'butter'

      d = '.'
      r = '/'
      @assertEqual(CAT(A,r,B), replace_delimiter(CAT(A,d,B), d, r), 'Default - ' // make_message(d, r)) 
      @assertEqual(CAT(A,r,B), replace_delimiter(CAT(A,d,B)), 'No args')

      d = '@'
      r = '*'
      @assertEqual(CAT(A,r,B), replace_delimiter(CAT(A,d,B), d, r), make_message(d, r))
      
      d = '::'
      r = '---'
      @assertEqual(CAT(A,r,B), replace_delimiter(CAT(A,d,B), d, r), make_message(d, r)) 
      
      d = ''
      @assertEqual(CAT(A,r,B), replace_delimiter(CAT(A,r,B), d, r), make_message(d, r)) 

      d = '.'
      r = ''
      @assertEqual(CAT(A,d,B), replace_delimiter(CAT(A,d,B), d, r), make_message(d, r)) 

      @assertEqual('', replace_delimiter('', d, r), make_message(d, r)) 

   contains

         function make_message(delimiter, replacement) result(message)
            character(len=:), allocatable :: message
            character(len=*), intent(in) :: delimiter, replacement

            message = 'Args: ("' // delimiter // '", "' // replacement // '") - '

         end function make_message

   end subroutine test_replace_delimiter