---
test case: 'empty input parameters'
in:
  xml: ''
  xpath: ''
out:
  result: ''
  return: 'FAIL'
---
test case: 'single start tag'
in:
  xml: '<a>'
  xpath: ''
out:
  result: ''
  return: 'FAIL'
---
test case: 'single end tag'
in:
  xml: '<a/>'
  xpath: ''
out:
  result: ''
  return: 'FAIL'
---
test case: 'wrong operation format'
in:
  xml: '<a/>'
  xpath: '/a[\'
out:
  result: ''
  return: 'FAIL'
---
test case: 'wrong operation expression'
in:
  xml: '<a/>'
  xpath: '1 div 0'
out:
  result: ''
  return: 'FAIL'
---
test case: 'wrong operation format 2'
in:
  xml: '<a/>'
  xpath: '-a'
out:
  result: ''
  return: 'FAIL'
---
test case: 'empty output'
in:
  xml: '<a/>'
  xpath: '/b'
out:
  result: ''
  return: 'SUCCEED'
---
test case: 'successful expression'
in:
  xml: '<a/>'
  xpath: '3 div 2'
out:
  result: '1.5'
  return: 'SUCCEED'
---
test case: 'return end tag'
in:
  xml: '<a/>'
  xpath: '/a'
out:
  result: '<a/>'
  return: 'SUCCEED'
---
test case: 'return text'
in:
  xml: '<a>1</a>'
  xpath: '/a/text()'
out:
  result: '1'
  return: 'SUCCEED'
---
test case: 'return string'
in:
  xml: '<a>1</a>'
  xpath: 'string(/a)'
out:
  result: '1'
  return: 'SUCCEED'
---
test case: 'return attribute'
in:
  xml: '<a b="10">1</a>'
  xpath: 'string(/a/@b)'
out:
  result: '10'
  return: 'SUCCEED'
---
test case: 'return pattern'
in:
  xml: '<a><b x="1"/><c x="2"/><d x="1"/></a>'
  xpath: '//*[@x="1"]'
out:
  result: '<b x="1"/><d x="1"/>'
  return: 'SUCCEED'
...