subroutine test_funcs()
character(len=iclen_calc) :: outlin0
doubleprecision :: outval
integer :: ierr, ilen
character(len=:),allocatable :: string
! call expression('A=3.4**5 ',outval,outlin0,ierr,ilen)
! write(*,*)'value of expression is ',outval
! write(*,*)'string representation of value is ',trim(outlin0)
! write(*,*)'error flag value is ',ierr
! write(*,*)'length of expression is ',ilen
call unit_test_start('funcs',msg='')
string='+10'
call expression('xstore(1,10,20,30)',outval,outlin0,ierr,ilen)
call unit_test('xstore',inum0('x(2)').eq.20)
call unit_test('max', inum0(' max(-100,0,20,40) ').eq.40)
call unit_test('min', inum0(' min(-100,0,20,40) ').eq.-100)
call unit_test('sqrt', inum0(' sqrt(25) ').eq.5)
call unit_test('log10',inum0(' log10(1000) ').eq.3)
call unit_test('hypot',inum0(' hypot(3,4) ').eq.5)
call unit_test_end('funcs',msg='')
end subroutine test_funcs