Expand All
Collapse All
FitNesse
SuiteAcceptanceTests
SuiteWidgetTests
TestEvaluator
Evaluator of expressions: ${= =}
Syntax
${= [format:] expression =} Expression
An expression may be a combination of constants, variables, and opertors. All internal calculations use the Java double numeric type.Format
A format is a specifier that describes the rendering of the numeric result. The format specifier is described by the Java 5 String class's .format() method: %[flags][width][.precision]conversion *!note N.B., The [argument_index$] specifier is not permitted. Additionally, a formatting locale can be defined by setting the variable FORMAT_LOCALE to override the default JVM locale.Links
Examples
${= 12 + 23 =} renders (sand brackets) as [35]
${=%5.4f:1.414=} : [1.4140]
${=%05X:14+14=} : [0001C]
${= %-10s : 123 =} : [123 ] And when specifying a formatting locale: !define FORMAT_LOCALE {fr}
${=%5.4f:1.414=} : [1,4140] Operators supported
Comment
Spaces between items are optional
Operator
Argument
Description
arg
constant or variable
Examples: 3, 12.4, 4E+8, ${VALUE}, ${some.var}
expr
expression
Any valid combination of arguments and optional operations and parentheses
+
expr + expr
Addition
-
-expr
Unary negation
-
expr - expr
Subtraction
*
expr * expr
Multiplication
/
expr / expr
Division
^
expr ^ expr
Exponentiation
sin
sin expr
Radian Sine of expr
cos
cos expr
Radian Cosine of expr
tan
cos expr
Radian Tangent of expr
( )
( expr )
Parenthetical grouping of an expression
Test Blank Expressions
Build blank expression page
script
start
Page Builder
line
~1a:${==}~
line
~1b:${= =}~
line
~1c:${= =}~
page
ExpressionPage
Render it
Response Requester
uri
valid?
ExpressionPage
true
Contents
Response Examiner
type
string?
contents
Response Examiner
type
wrapped html?
contents
Verify results
Response Examiner
type
pattern
matches?
contents
~1a:~
true
contents
~1b:~
true
contents
~1c:~
true
Test Single Argument Expressions
Build expression page
script
start
Page Builder
line
~2a:${=3=}~
line
~2b:${= 4.2 =}~
line
~2c:${= 2E+1 =}~
line
~2d:${= 2.3E+42 =}~
line
~2e:${= 4.2E + 24 =}~
page
ExpressionPage
Render it
Response Requester
uri
valid?
ExpressionPage
true
Contents
Response Examiner
type
string?
contents
Response Examiner
type
wrapped html?
contents
Verify results
Response Examiner
type
pattern
matches?
contents
~2a:3~
true
contents
~2b:4.2~
true
contents
~2c:20~
true
contents
~2d:2.3E+42~
true
contents
~2e:4.2E+24~
true
Test spaces around experssions
Build expression page
script
start
Page Builder
line
~3a:${=1+1=}~
line
~3b:${=2 + 2=}~
line
~3c:${= 3 + 3=}~
line
~3d:${=4 + 4 =}~
line
~3e:${=5 +5 =}~
page
ExpressionPage
Render it
Response Requester
uri
valid?
ExpressionPage
true
Contents
Response Examiner
type
string?
contents
Response Examiner
type
wrapped html?
contents
Verify results
Response Examiner
type
pattern
matches?
contents
~3a:2~
true
contents
~3b:4~
true
contents
~3c:6~
true
contents
~3d:8~
true
contents
~3e:10~
true
Test each operator
Build expression page
script
start
Page Builder
line
~4plus:${= 1 + 2 =}~
line
~4minus:${= 2 - 3 =}~
line
~4unary:${= -12 =}~
line
~4mult:${= 3 * 4 =}~
line
~4div:${= 4 / 5 =}~
line
~4exp:${=%2d: 5 ^ 6 =}~
line
~4sin1:${=%5.4f: sin0.39269875 =}~
line
~4sin2:${=%5.4f: sin 0.39269875 =}~
line
~4sin3:${=%5.4f: sin(0.39269875) =}~
line
~4sin4:${=%5.4f: sin(3.14159/8) =}~
line
~4sin5:${=%5.4f: sin (3.14159/8) =}~
line
~4cos:${=%5.4f: cos(3.14159 / 8) =}~
line
~4tan:${=%5.4f: tan(3.14159 / 8) =}~
page
ExpressionPage
Render it
Response Requester
uri
valid?
ExpressionPage
true
Contents
Response Examiner
type
string?
contents
Response Examiner
type
wrapped html?
contents
Verify results
Response Examiner
type
pattern
matches?
contents
~4plus:3~
true
contents
~4minus:-1~
true
contents
~4unary:-12~
true
contents
~4mult:12~
true
contents
~4div:0.8~
true
contents
~4exp:15625~
true
contents
~4sin1:0.3827~
true
contents
~4sin2:0.3827~
true
contents
~4sin3:0.3827~
true
contents
~4sin4:0.3827~
true
contents
~4sin5:0.3827~
true
contents
~4cos:0.9239~
true
contents
~4tan:0.4142~
true
Test parentheses
Build expression page
script
start
Page Builder
line
~5a:${= 2 * 3 + 4 / 2 - 3 =}~
line
~5b:${= 2 * ( 3 + 4 ) / 2 - 3 =}~
line
~5c:${= 2 * ( 3 + 4 ) / ( 2 - 3 ) =}~
line
~5d:${= 2 * ( 3 + ( 4 / ( 2 - 3 ) ) ) =}~
page
ExpressionPage
Render it
Response Requester
uri
valid?
ExpressionPage
true
Contents
Response Examiner
type
string?
contents
Response Examiner
type
wrapped html?
contents
Verify results
Response Examiner
type
pattern
matches?
contents
~5a:5~
true
contents
~5b:4~
true
contents
~5c:-14~
true
contents
~5d:-2~
true
Test formatting
Build expression page
script
start
Page Builder
line
~6a:${=%d:2 =}~
line
~6b:${= %d : 3.2 =}~
line
~6c:${=%02d: 2 + 1 =}~
line
~6d:${= %4.4f: 2.2 / 3.4 =}~
line
~6e:${=%03o: 16 =}~
line
~6f:${= %03o : 18 =}~
line
~6g:${=%03x: 26 =}~
line
~6h:${=%03X: 27 =}~
line
~6i:${= %-12s : 123 =}~
line
~6j:${=%TY: 73422123127 =}~
line
~6k:${=%b: 27 =}~
line
~6l:${=%b: 0 =}~
line
~6m:${=%B: 27 =}~
line
~6n:${=%B: 0 =}~
line
~6o:${= % d : 3.2 =}~
page
ExpressionPage
Render it
Response Requester
uri
valid?
ExpressionPage
true
Contents
Response Examiner
type
string?
contents
Response Examiner
type
wrapped html?
contents
Verify results
Response Examiner
type
pattern
matches?
contents
~6a:2~
true
contents
~6b:3~
true
contents
~6c:03~
true
contents
~6d:0.6471~
true
contents
~6e:020~
true
contents
~6f:022~
true
contents
~6g:01a~
true
contents
~6h:01B~
true
contents
~6i:123 ~
true
contents
~6j:1972~
true
contents
~6k:true~
true
contents
~6l:false~
true
contents
~6m:true~
true
contents
~6n:false~
true
contents
~6o: 3~
true
Test formatting with specific locale
Build expression page
script
start
Page Builder
line
!define FORMAT_LOCALE {fr}
line
~7a:${= %4.4f: 2.2 / 3.4 =}~
page
ExpressionPage
Render it
Response Requester
uri
valid?
ExpressionPage
true
Contents
Response Examiner
type
string?
contents
Response Examiner
type
wrapped html?
contents
Verify results
Response Examiner
type
pattern
matches?
contents
~7a:0,6471~
true