Let's start by looking at the code for the previous example, shown in part again: |!-fitlibrary.eg.Discount-!| |''calculate''| |''$''||''discount''| |0.00||0.00| |1000.00||0.00| The code is as follows: ----{{{ public class Discount { public double discountDollar(double dollar) { if (dollar <= 1000) return 0; return dollar * 0.05; } } }}}----The method ''discountDollar()'' is called for each of the rows. The ${given} value is supplied as an argument to the method and the result is compared to the ${expected} value. The header ${label}s are used to determine the ${ruleMethod} name. Each of the ${given} column labels is appended to the ${expected} column label ("discount" + "$"). This name is converted into a valid Java method name based on ${extendedCamelCase}. While this can result in some weird method names, it does given the storytest writer considerable freedom of expression. Such weird names means that a ${domainAdapter} is usually needed with calculation rules.