Loops/Wrong ranges

You are encouraged to solve this task according to the task description, using any language you may know.
Some languages have syntax or function(s) to generate a range of numeric values from a start value, a stop value, and an increment.

The purpose of this task is to select the range syntax/function that would generate at least two increasing numbers when given a stop value more than the start value and a positive increment of less than half the difference.   You are then to use that same syntax/function but with different parameters; and show, here, what would happen.

Use these values if possible:



start 
stop 
increment 
Comment


 -2
2
1
Normal


 -2
2
0
Zero increment


 -2
2
-1
Increments away from stop value


 -2
2
10
First increment is beyond stop value


2
-2
1
Start more than stop: positive increment


2
2
1
Start equal stop: positive increment


2
2
-1
Start equal stop: negative increment


2
2
0
Start equal stop: zero increment


0
0
0
Start equal stop equal zero: zero increment

Related tasks

   Loop over multiple arrays simultaneously
   Loops/Break
   Loops/Continue
   Loops/Do-while
   Loops/Downward for
   Loops/For
   Loops/For with a specified step
   Loops/Foreach
   Loops/Increment loop index within loop body
   Loops/Infinite
   Loops/N plus one half
   Loops/Nested
   Loops/While
   Loops/with multiple ranges
   Loops/Wrong ranges


$ include "seed7_05.s7i";
 
const proc: testLoop (in integer: start, in integer: stop, in integer: incr, in string: comment) is func
  local
    const integer: limit is 10;
    var integer: number is 0;
    var integer: count is 0;
  begin
    writeln(comment);
    write("Range(" <& start <& ", " <& stop <& ", " <& incr <& ") -> [ ");
    block
      for number range start to stop step incr do
        write(number <& " ");
        incr(count);
        if count >= limit then
          raise RANGE_ERROR;
        end if;
      end for;
    exception
      catch RANGE_ERROR: noop;
    end block;
    writeln("]");
    writeln;
  end func;
 
const proc: main is func
  begin
    testLoop(-2,  2,  1, "Normal");
    testLoop(-2,  2,  0, "Zero increment");
    testLoop(-2,  2, -1, "Increments away from stop value");
    testLoop(-2,  2, 10, "First increment is beyond stop value");
    testLoop( 2, -2,  1, "Start more than stop: positive increment");
    testLoop( 2,  2,  1, "Start equal stop: positive increment");
    testLoop( 2,  2, -1, "Start equal stop: negative increment");
    testLoop( 2,  2,  0, "Start equal stop: zero increment");
    testLoop( 0,  0,  0, "Start equal stop equal zero: zero increment");
  end func;