1#* 2 3@test logical.vm 4 5This template is used for Velocity regression testing. 6If you alter this template make sure you change the 7corresponding comparison file so that the regression 8test doesn't fail incorrectly. 9 10*# 11 12#set($foo = 5) 13 14#if ($foo gt 1) 15 \$foo is greater then 1 16#end 17 18#if ($foo lt 10) 19 \$foo is less than 10 20#end 21 22#if ($foo ge 5) 23 \$foo is great than or equal to 5 24#end 25 26#if ($foo le 5) 27 \$foo is less than or equal to 5 28#end 29 30#set($foo = false) 31 32#if ( not ($foo eq true)) 33 foo is false 34#end 35 36-- 37 38#set($t = true) 39#set($f = false) 40 41Logical OR : 42 43#if($t or $f) 44 right 45#else 46 wrong 47#end 48 49#if( not ($f or $t) ) 50 wrong 51#else 52 right 53#end 54 55#if( $null or $t ) 56 right 57#else 58 wrong 59#end 60 61#if( $t or $null ) 62 right 63#else 64 wrong 65#end 66 67#if( $f or $null) 68 wrong 69#else 70 right 71#end 72 73#if( $null or $null ) 74 wrong 75#else 76 right 77#end 78 79Logical AND : 80 81#if( $t and $t) 82 right 83#else 84 wrong 85#end 86 87#if( $f and $f ) 88 wrong 89#else 90 right 91#end 92 93#if( not ($f and $f) ) 94 right 95#else 96 wrong 97#end 98 99#if( $t and $f ) 100 wrong 101#else 102 right 103#end 104 105#if( $t and $null ) 106 wrong 107#else 108 right 109#end 110 111#if( $null and $t ) 112 wrong 113#else 114 right 115#end 116 117#if( $f and $null ) 118 wrong 119#else 120 right 121#end 122 123#if( not ($null and $null) ) 124 right 125#else 126 wrong 127#end 128 129---------- 130equivalence 131----------- 132 133#set($int = 1) 134#set($str = "str") 135#set($bool = true) 136 137#if( $int eq $str) 138wrong 139#else 140right 141#end 142 143#if( $int eq 1 ) 144right 145#else 146wrong 147#end 148 149#if ( $int eq 2 ) 150wrong 151#else 152right 153#end 154 155#if( $str eq 2 ) 156wrong 157#else 158right 159#end 160 161#if( $str eq "str") 162right 163#else 164wrong 165#end 166 167#if( $str eq $nonexistantreference ) 168wrong 169#else 170right 171#end 172 173#if( $str eq $bool ) 174wrong 175#else 176right 177#end 178 179#if ($bool eq true ) 180right 181#else 182wrong 183#end 184 185#if( $bool eq false ) 186wrong 187#else 188right 189#end 190 191----------- 192comparisons 193----------- 194#set($int = 1) 195#set($str = "str") 196#set($bool = true) 197 198#if( $int gt 0 ) 199right 200#else 201wrong 202#end 203 204#if( $str gt 0 ) 205wrong 206#else 207right 208#end 209 210#if( $nonexistant gt 0 ) 211wrong 212#else 213right 214#end 215 216#if( $int ge 0 ) 217right 218#else 219wrong 220#end 221 222#if( $str ge 0 ) 223wrong 224#else 225right 226#end 227 228#if( $nonexistant ge 0 ) 229wrong 230#else 231right 232#end 233 234#if( $int lt 10 ) 235right 236#else 237wrong 238#end 239 240#if( $str lt 10 ) 241wrong 242#else 243right 244#end 245 246#if( $nonexistant lt 10 ) 247wrong 248#else 249right 250#end 251 252#if( $int le 10 ) 253right 254#else 255wrong 256#end 257 258#if( $str le 10 ) 259wrong 260#else 261right 262#end 263 264#if( $nonexistant le 10 ) 265wrong 266#else 267right 268#end 269 270---------------------- 271goofy but legal stuff 272---------------------- 273#set($lala = ( false or true ) ) 274Should equal true : $lala 275 276#set($fofo = ( true and true ) ) 277Should equal true : $fofo 278 279#set($fofo = ( true and ( false or true ) ) ) 280Should equal true : $fofo 281 282#set($fofo = ( ($t or $f) and $t)) 283Should equal true : $fofo 284 285 286#set($x = not true) 287 288#if($x eq false) 289right 290#else 291wrong 292#end 293 294#set($y = not $x) 295 296#if($y eq true) 297right 298#else 299wrong 300#end 301 302Test to see if we can do logical assignment from any expression 303 304#set($val = (3 eq 3)) 305#if($val eq true) 306right 307#else 308wrong 309#end 310 311#set($val = (1 lt 2)) 312#if( $val eq true) 313right 314#else 315wrong 316#end 317 318 319#set($val = (1 le 2)) 320#if( $val eq true) 321right 322#else 323wrong 324#end 325 326 327#set($val = (7 gt 2)) 328#if( $val eq true) 329right 330#else 331wrong 332#end 333 334#set($val = (7 ge 2)) 335#if( $val eq true) 336right 337#else 338wrong 339#end 340 341#set($val = ( 1 ne 2)) 342#if( $val eq true) 343right 344#else 345wrong 346#end 347