<#--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<#-- A version of "?join" that fails at null-s in the sequence: -->
<#function join seq sep=''>
  <#local r = "">
  <#list seq as i>
    <#local r = r + i>
    <#if i_has_next>
      <#local r = r + sep>
    </#if>
  </#list>
  <#return r>
</#function>

<#----------------------->
<#-- Range expressions -->

<@assertEquals actual=join(1..2, ' ') expected="1 2" />
<@assertEquals actual=join(1..1, ' ') expected="1" />
<@assertEquals actual=join(1..0, ' ') expected="1 0" />
<@assertEquals actual=join(1..-1, ' ') expected="1 0 -1" />
<@assertEquals actual=join(-1..-1, ' ') expected="-1" />
<@assertEquals actual=join(-1..1, ' ') expected="-1 0 1" />

<@assertEquals actual=join(1..<3, ' ') expected="1 2" />
<@assertEquals actual=join(1..<2, ' ') expected="1" />
<@assertEquals actual=join(1..<1, ' ') expected="" />
<@assertEquals actual=join(1..<0, ' ') expected="1" />
<@assertEquals actual=join(1..<-1, ' ') expected="1 0" />
<@assertEquals actual=join(1..<-2, ' ') expected="1 0 -1" />
<@assertEquals actual=join(-1..<0, ' ') expected="-1" />
<@assertEquals actual=join(-1..<2, ' ') expected="-1 0 1" />

<@assertEquals actual=join(1..!3, ' ') expected="1 2" />
<@assertEquals actual=join(1..!2, ' ') expected="1" />
<@assertEquals actual=join(1..!1, ' ') expected="" />
<@assertEquals actual=join(1..!0, ' ') expected="1" />
<@assertEquals actual=join(1..!-1, ' ') expected="1 0" />
<@assertEquals actual=join(1..!-2, ' ') expected="1 0 -1" />
<@assertEquals actual=join(-1..!0, ' ') expected="-1" />
<@assertEquals actual=join(-1..!2, ' ') expected="-1 0 1" />

<@assertEquals actual=join(1..*2, ' ') expected="1 2" />
<@assertEquals actual=join(1..*1, ' ') expected="1" />
<@assertEquals actual=join(1..*0, ' ') expected="" />
<@assertEquals actual=join(1..*-1, ' ') expected="1" />
<@assertEquals actual=join(1..*-2, ' ') expected="1 0" />
<@assertEquals actual=join(1..*-3, ' ') expected="1 0 -1" />
<@assertEquals actual=join(-1..*1, ' ') expected="-1" />
<@assertEquals actual=join(-1..*3, ' ') expected="-1 0 1" />

<@assertEquals actual=1 expected=(0..0)?size />
<@assertEquals actual=1 expected=(1..1)?size />
<@assertEquals actual=1 expected=(2..2)?size />
<@assertEquals actual=2 expected=(0..1)?size />
<@assertEquals actual=2 expected=(1..2)?size />
<@assertEquals actual=2 expected=(2..3)?size />
<@assertEquals actual=3 expected=(2..4)?size />
<@assertEquals actual=2 expected=(1..0)?size />
<@assertEquals actual=2 expected=(2..1)?size />
<@assertEquals actual=2 expected=(3..2)?size />
<@assertEquals actual=3 expected=(4..2)?size />

<@assertEquals actual=0 expected=(0..<0)?size />
<@assertEquals actual=0 expected=(1..<1)?size />
<@assertEquals actual=0 expected=(2..<2)?size />
<@assertEquals actual=1 expected=(0..<1)?size />
<@assertEquals actual=1 expected=(1..<2)?size />
<@assertEquals actual=1 expected=(2..<3)?size />
<@assertEquals actual=2 expected=(2..<4)?size />
<@assertEquals actual=1 expected=(1..<0)?size />
<@assertEquals actual=1 expected=(2..<1)?size />
<@assertEquals actual=1 expected=(3..<2)?size />
<@assertEquals actual=2 expected=(4..<2)?size />

<@assertEquals actual=0 expected=(0..*0)?size />
<@assertEquals actual=0 expected=(1..*0)?size />
<@assertEquals actual=0 expected=(2..*0)?size />
<@assertEquals actual=1 expected=(0..*1)?size />
<@assertEquals actual=1 expected=(1..*1)?size />
<@assertEquals actual=1 expected=(2..*1)?size />
<@assertEquals actual=2 expected=(2..*2)?size />
<@assertEquals actual=1 expected=(0..*-1)?size />
<@assertEquals actual=1 expected=(1..*-1)?size />
<@assertEquals actual=1 expected=(2..*-1)?size />
<@assertEquals actual=2 expected=(0..*-2)?size />
<@assertEquals actual=2 expected=(1..*-2)?size />
<@assertEquals actual=2 expected=(2..*-2)?size />


<#--------------------->
<#-- String slicing: -->

<#assign s = 'abcd'>

<@assertEquals actual=s[0..] expected="abcd" />
<@assertEquals actual=s[1..] expected="bcd" />
<@assertEquals actual=s[2..] expected="cd" />
<@assertEquals actual=s[3..] expected="d" />
<@assertEquals actual=s[4..] expected="" />
<@assertFails message="5 is out of bounds">
  <#assign _ = s[5..] />
</@assertFails>
<@assertFails message="6 is out of bounds">
  <#assign _ = s[6..] />
</@assertFails>

<@assertEquals actual=s[1..2] expected="bc" />
<@assertEquals actual=s[1..1] expected="b" />
<@assertEquals actual=s[0..1] expected="ab" />
<@assertEquals actual=s[0..0] expected="a" />
<@assertFails message="4 is out of bounds">
  <#assign _ = s[1..4] />
</@assertFails>
<@assertFails message="5 is out of bounds">
  <#assign _ = s[1..5] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[-1..1] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[-2..1] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[0..-1] />
</@assertFails>

<@assertEquals actual=s[1..<3] expected="bc" />
<@assertEquals actual=s[1..!3] expected="bc" />
<@assertEquals actual=s[1..<2] expected="b" />
<@assertEquals actual=s[1..<0] expected="b" />
<@assertEquals actual=s[1..<1] expected="" />
<@assertEquals actual=s[0..<0] expected="" />
<@assertEquals actual=s[5..<5] expected="" />
<@assertEquals actual=s[6..<6] expected="" />
<@assertEquals actual=s[-5..<-5] expected="" />
<@assertFails message="negative">
  <#assign _ = s[-5..<1] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[2..<-4] />
</@assertFails>
<@assertFails message="decreasing">
  <#assign _ = s[2..<0] />
</@assertFails>

<@assertEquals actual=s[1..*-1] expected="b" />
<@assertEquals actual=s[1..*0] expected="" />
<@assertEquals actual=s[1..*1] expected="b" />
<@assertEquals actual=s[1..*2] expected="bc" />
<@assertEquals actual=s[1..*3] expected="bcd" />
<@assertEquals actual=s[1..*4] expected="bcd" />
<@assertEquals actual=s[1..*5] expected="bcd" />
<@assertEquals actual=s[4..*1] expected="" />
<@assertEquals actual=s[5..*0] expected="" />
<@assertEquals actual=s[6..*0] expected="" />
<@assertEquals actual=s[-5..*0] expected="" />
<@assertEquals actual=s[0..*0] expected="" />
<@assertEquals actual=s[0..*-1] expected="a" />
<@assertEquals actual=s[0..*-2] expected="a" />
<@assertEquals actual=s[0..*-3] expected="a" />
<@assertFails message="5 is out of bounds">
  <#assign _ = s[5..*1] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[-1..*1] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[-2..*1] />
</@assertFails>
<@assertFails message="decreasing">
  <#assign _ = s[1..*-2] />
</@assertFails>
<@assertFails message="decreasing">
  <#assign _ = s[1..*-3] />
</@assertFails>
<@assertFails message="4 is out of bounds">
  <#assign _ = s[4..*-1] />
</@assertFails>

<#-- Legacy string backward-range bug kept for compatibility: -->
<@assertEquals actual=s[1..0] expected="" />
<@assertEquals actual=s[2..1] expected="" />
<@assertFails message="negative">
  <@assertEquals actual=s[0..-1] expected="" />
</@assertFails>
<@assertFails message="decreasing">
  <@assertEquals actual=s[3..1] expected="" />
</@assertFails>
<#-- But it isn't emulated for operators introduced after 2.3.20: -->
<@assertFails message="decreasing">
  <@assertEquals actual=s[3..<1] expected="" />
</@assertFails>
<@assertFails message="decreasing">
  <@assertEquals actual=s[3..*-2] expected="" />
</@assertFails>

<#assign r = 1..2>
<@assertEquals actual=s[r] expected="bc" />
<#assign r = 2..1>
<@assertEquals actual=s[r] expected="" />
<#assign r = 1..<2>
<@assertEquals actual=s[r] expected="b" />
<#assign r = 2..<4>
<@assertEquals actual=s[r] expected="cd" />
<#assign r = 2..>
<@assertEquals actual=s[r] expected="cd" />
<#assign r = 1..*2>
<@assertEquals actual=s[r] expected="bc" />

<#----------------------->
<#-- Sequence slicing: -->

<#assign s = ['a', 'b', 'c', 'd']>

<@assertEquals actual=join(s[0..]) expected="abcd" />
<@assertEquals actual=join(s[1..]) expected="bcd" />
<@assertEquals actual=join(s[2..]) expected="cd" />
<@assertEquals actual=join(s[3..]) expected="d" />
<@assertEquals actual=join(s[4..]) expected="" />
<@assertFails message="5 is out of bounds">
  <#assign _ = s[5..] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[-1..] />
</@assertFails>

<@assertEquals actual=join(s[1..2]) expected="bc" />
<@assertEquals actual=join(s[1..1]) expected="b" />
<@assertEquals actual=join(s[0..1]) expected="ab" />
<@assertEquals actual=join(s[0..0]) expected="a" />
<@assertFails message="5 is out of bounds">
  <#assign _ = s[1..5] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[-1..0] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[0..-1] />
</@assertFails>

<@assertEquals actual=join(s[1..<3]) expected="bc" />
<@assertEquals actual=join(s[1..!3]) expected="bc" />
<@assertEquals actual=join(s[1..<2]) expected="b" />
<@assertEquals actual=join(s[1..<0]) expected="b" />
<@assertEquals actual=join(s[1..<1]) expected="" />
<@assertEquals actual=join(s[0..<0]) expected="" />

<@assertEquals actual=join(s[1..0]) expected="ba" />
<@assertEquals actual=join(s[2..1]) expected="cb" />
<@assertEquals actual=join(s[2..0]) expected="cba" />
<@assertEquals actual=join(s[2..<0]) expected="cb" />
<@assertEquals actual=join(s[1..<0]) expected="b" />
<@assertEquals actual=join(s[0..<0]) expected="" />
<@assertEquals actual=join(s[3..<1]) expected="dc" />
<@assertEquals actual=join(s[2..<1]) expected="c" />
<@assertEquals actual=join(s[1..<1]) expected="" />
<@assertEquals actual=join(s[0..<1]) expected="a" />
<@assertEquals actual=join(s[0..<0]) expected="" />
<@assertEquals actual=join(s[5..<5]) expected="" />
<@assertEquals actual=join(s[-5..<-5]) expected="" />

<@assertEquals actual=join(s[0..*-4]) expected="a" />
<@assertEquals actual=join(s[1..*-4]) expected="ba" />
<@assertEquals actual=join(s[1..*-3]) expected="ba" />
<@assertEquals actual=join(s[1..*-2]) expected="ba" />
<@assertEquals actual=join(s[1..*-1]) expected="b" />
<@assertEquals actual=join(s[1..*0]) expected="" />
<@assertEquals actual=join(s[1..*1]) expected="b" />
<@assertEquals actual=join(s[1..*2]) expected="bc" />
<@assertEquals actual=join(s[1..*3]) expected="bcd" />
<@assertEquals actual=join(s[1..*4]) expected="bcd" />
<@assertEquals actual=join(s[1..*5]) expected="bcd" />
<@assertEquals actual=join(s[0..*3]) expected="abc" />
<@assertEquals actual=join(s[2..*3]) expected="cd" />
<@assertEquals actual=join(s[3..*3]) expected="d" />
<@assertEquals actual=join(s[4..*3]) expected="" />
<@assertFails message="5 is out of bounds">
  <#assign _ = s[5..*3] />
</@assertFails>
<@assertFails message="negative">
  <#assign _ = s[-1..*2] />
</@assertFails>

<#assign r = 1..2>
<@assertEquals actual=join(s[r]) expected="bc" />
<#assign r = 2..0>
<@assertEquals actual=join(s[r]) expected="cba" />
<#assign r = 1..<2>
<@assertEquals actual=join(s[r]) expected="b" />
<#assign r = 2..<0>
<@assertEquals actual=join(s[r]) expected="cb" />
<#assign r = 2..>
<@assertEquals actual=join(s[r]) expected="cd" />
<#assign r = 1..*2>
<@assertEquals actual=join(s[r]) expected="bc" />
<#assign r = 1..*-9>
<@assertEquals actual=join(s[r]) expected="ba" />
