aboutsummaryrefslogtreecommitdiff
path: root/velocity-engine-core/src/test/resources/templates/math.vm
diff options
context:
space:
mode:
Diffstat (limited to 'velocity-engine-core/src/test/resources/templates/math.vm')
-rw-r--r--velocity-engine-core/src/test/resources/templates/math.vm71
1 files changed, 71 insertions, 0 deletions
diff --git a/velocity-engine-core/src/test/resources/templates/math.vm b/velocity-engine-core/src/test/resources/templates/math.vm
new file mode 100644
index 00000000..e0e8e816
--- /dev/null
+++ b/velocity-engine-core/src/test/resources/templates/math.vm
@@ -0,0 +1,71 @@
+#*
+
+@test escape.vm
+
+This template is used for Velocity regression testing.
+If you alter this template make sure you change the
+corresponding comparison file so that the regression
+test doesn't fail incorrectly.
+
+Tests the basic integer math capabilities.
+
+*#
+
+Addition and subtraction :
+#set($foo = 1)
+#set($foo = $foo + 1)
+1 + 1 = $foo
+$foo - 1 = #set($foo = $foo - 1 )$foo
+
+Multiplication, division, and modulus :
+#set($bar = 5)
+#set($rem = $bar % 2)
+#set($rem2 = $bar % 0)
+#set($rem3 = 7%2)
+$bar % 2 = $rem
+$bar % 0 = $rem2
+7 % 2 = $rem3
+$bar / 2 = #set($rem = $bar / 2 )$rem
+$bar / 0 = #set($rem4 = $bar / 0 )$rem4
+$bar * 2 = #set($rem = $bar * 2 )$rem
+
+$bar * -1 = #set($rem = $bar * -1)$rem
+$bar * -2 = #set($rem = $bar *-2)$rem
+$bar * -2 = #set($rem = -2*$bar)$rem
+
+And now null nodes to make sure it doesn't throw an NPE :
+#set($flargh=$woogie + $wabbie)
+
+Some test for the new number-handling
+$int1 + $long1 = #set ($rem = $int1 + $long1)$rem
+$int1 - $long1 = #set ($rem = $int1 - $long1)$rem
+$int1 * $long1 = #set ($rem = $int1 * $long1)$rem
+$int1 / $long1 = #set ($rem = $int1 / $long1)$rem
+$int1 % $long1 = #set ($rem = $int1 % $long1)$rem
+
+$int1 + $float1 = #set ($rem = $int1 + $float1)$rem
+$int1 - $float1 = #set ($rem = $int1 - $float1)$rem
+$int1 * $float1 = #set ($rem = $int1 * $float1)$rem
+$int1 / $float1 = #set ($rem = $int1 / $float1)$rem
+
+This checks that an object implementing TemplateNumber can be used in arithmetic
+$int1 + $templatenumber1.AsNumber = #set ($rem = $int1 + $templatenumber1)$rem
+$int1 - $templatenumber1.AsNumber = #set ($rem = $int1 - $templatenumber1)$rem
+$int1 * $templatenumber1.AsNumber = #set ($rem = $int1 * $templatenumber1)$rem
+$int1 / $templatenumber1.AsNumber = #set ($rem = $int1 / $templatenumber1)$rem
+
+Test integer division
+5 / 2 = #set($result = 5 / 2)$result
+
+Test decimal division
+5 / 2.0 = #set($result = 5 / 2.0)$result
+5.0 / 2 = #set($result = 5.0 / 2)$result
+
+Unary negate
+#set($five = 5)
+#set($a = 0 - $five)
+#set($b = 0-$five)
+#set($c = - $five)
+#set($d = -$five)
+#set($e =-$five)
+-5 = $a = $b = $c = $d = $e