[Templates-cvs] cvs commit: TT3/t/parser expr.t

cvs@template-toolkit.org cvs@template-toolkit.org
Thu, 02 Dec 2004 17:03:22 +0000


cvs         04/12/02 17:03:22

  Modified:    t/parser expr.t
  Log:
  * added a couple more tests
  
  Revision  Changes    Path
  1.7       +146 -7    TT3/t/parser/expr.t
  
  Index: expr.t
  ===================================================================
  RCS file: /template-toolkit/TT3/t/parser/expr.t,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- expr.t	2004/11/26 12:33:34	1.6
  +++ expr.t	2004/12/02 17:03:18	1.7
  @@ -10,7 +10,7 @@
   # This is free software; you can redistribute it and/or modify it
   # under the same terms as Perl itself.
   #
  -# $Id: expr.t,v 1.6 2004/11/26 12:33:34 abw Exp $
  +# $Id: expr.t,v 1.7 2004/12/02 17:03:18 abw Exp $
   #
   #========================================================================
   
  @@ -20,7 +20,7 @@
   use lib qw( ./lib ../lib ../../lib );
   use Template::Parser;
   use Template::Generator::Debug;
  -use Template::Test tests => 22, import => ':all';
  +use Template::Test tests => 25, import => ':all';
   
   our $DEBUG = 
   $Template::Parser::DEBUG =
  @@ -47,6 +47,14 @@
       my @lines  = split(/\n/, $test->{ input });
       my $result = '';
   
  +    # -- block -- flag indicates one single test, otherwise we 
  +    # split the block into separate lines
  +    if ($test->{ inflag }->{ block }) {
  +        @lines = $test->{ input };
  +    }
  +    else {
  +        @lines  = split(/\n/, $test->{ input });
  +    }
   
       foreach my $line (@lines) {
           my $out = eval {
  @@ -123,6 +131,11 @@
   # unary operators
   #------------------------------------------------------------------------
   
  +-- test unary no term error --
  +-
  +-- expect --
  +<ERROR:unexpected end of statement after '-' where expression expected>
  +
   -- test unary minus  --
   -a
   - b
  @@ -341,8 +354,45 @@
   >
   
   
  --- test TODO: more tests for binary operators --
  --- skip --
  +-- test binary no term error --
  +a - 
  +-- expect --
  +<ERROR:unexpected end of statement after '-' where expression expected>
  +
  +-- test complex binary operators --
  +10 + 20 < 30 ? 40 / 50 : 60 * (70 + 80)
  +-- expect --
  +<tertiary:
  +  <expression:
  +    <binary:
  +      <number:10>
  +      <op:+>
  +      <number:20>
  +      <op:<>
  +      <number:30>
  +    >
  +  >
  +  <true:
  +    <binary:
  +      <number:40>
  +      <op:/>
  +      <number:50>
  +    >
  +  >
  +  <false:
  +    <binary:
  +      <number:60>
  +      <op:*>
  +      <parens:
  +        <binary:
  +          <number:70>
  +          <op:+>
  +          <number:80>
  +        >
  +      >
  +    >
  +  >
  +>
   
   
   #------------------------------------------------------------------------
  @@ -469,10 +519,29 @@
     >
   >
   
  +-- test parens with comments --
  +-- block --
  +(      # this is a comment
  +  10   # so is this
  +   +   # I'm getting bored
  +  20   # of writing all these 
  +   *   # comments
  +  30   # so I'll stop
  +)
  +-- expect --
  +<parens:
  +  <binary:
  +    <number:10>
  +    <op:+>
  +    <number:20>
  +    <op:*>
  +    <number:30>
  +  >
  +>
   
   
   #------------------------------------------------------------------------
  -# tertiary operators
  +# tertiary operator
   #------------------------------------------------------------------------
   
   -- test tertiary --
  @@ -489,9 +558,79 @@
       <number:30>
     >
   >
  +
  +
  +-- test tertiary complex --
  +-- block --
  +1 + 2 
  +    ? 3 + 4 
  +          ? 5 + 6 
  +          : 7 + 8 
  +                ?  9 + 10
  +                : 11 + 12
  +    : 13 + 14
  +
  +-- expect --
  +<tertiary:
  +  <expression:
  +    <binary:
  +      <number:1>
  +      <op:+>
  +      <number:2>
  +    >
  +  >
  +  <true:
  +    <tertiary:
  +      <expression:
  +        <binary:
  +          <number:3>
  +          <op:+>
  +          <number:4>
  +        >
  +      >
  +      <true:
  +        <binary:
  +          <number:5>
  +          <op:+>
  +          <number:6>
  +        >
  +      >
  +      <false:
  +        <tertiary:
  +          <expression:
  +            <binary:
  +              <number:7>
  +              <op:+>
  +              <number:8>
  +            >
  +          >
  +          <true:
  +            <binary:
  +              <number:9>
  +              <op:+>
  +              <number:10>
  +            >
  +          >
  +          <false:
  +            <binary:
  +              <number:11>
  +              <op:+>
  +              <number:12>
  +            >
  +          >
  +        >
  +      >
  +    >
  +  >
  +  <false:
  +    <binary:
  +      <number:13>
  +      <op:+>
  +      <number:14>
  +    >
  +  >
  +>
   
  --- test TODO: more tests for tertiary operators --
  --- skip --
   
   
   __END__