# file      : tests/value/reverse.test
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

# Test reversal to canonical/original representation.
#

.include ../common.test

: name
:
{
  : dir
  :
  $* <<EOI >>EOO
  x = s/foo/bar/
  print ([string] $x)
  print "$x"
  print -e=$x
  EOI
  s/foo/bar/
  s/foo/bar/
  -e=s/foo/bar/
  EOO

  : proj
  :
  $* <<EOI >>EOO
  print ([strings] foo%bar foo% %bar)
  EOI
  foo%bar foo% %bar
  EOO

  : pair
  :
  $* <<EOI >>EOO
  print ([strings] foo@bar foo/@bar/ foo@ @bar @ "@@")
  EOI
  foo@bar foo/@bar/ foo@ @bar @ @@
  EOO

  : combined
  :
  $* <<EOI >>EOO
  print ([strings] x%foo@y%bar x%foo/@y%bar/)
  EOI
  x%foo@y%bar x%foo/@y%bar/
  EOO
}

: dir-path
:
{
  : rel
  :
  $* <<EOI >>"EOO"
  x = [dir_path] foo/bar/
  print ([string] $x)
  print "$x"
  print "-I$x"
  EOI
  foo/bar/
  foo/bar
  -Ifoo/bar
  EOO

  : root
  :
  if ($cxx.target.class != 'windows')
  {
    $* <<EOI >>EOO
    x = [dir_path] /
    print ([string] $x)
    print "$x"
    print "-I$x"
    EOI
    /
    /
    -I/
    EOO
  }
}