@@ -47,6 +47,7 @@ function translate(io, dectest_path)
4747
4848 test = parse_test(line)
4949 any(isspecial, test. operands) && continue
50+ isspecial(test. result) && continue
5051
5152 dectest = decimal_test(test, directives)
5253 println(io, dectest)
@@ -60,7 +61,7 @@ function isspecial(value)
6061end
6162
6263function parse_precision(line)
63- m = match(r" ^precision:\s *(\d +)$" , line)
64+ m = match(r" ^precision:\s *(\d +).* $" , line)
6465 isnothing(m) && throw(ArgumentError(line))
6566 return parse(Int, m[1 ])
6667end
@@ -187,6 +188,8 @@ function decimal_operation(operation, operands)
187188 return decimal_reduce(operands... )
188189 elseif operation == " subtract"
189190 return decimal_subtract(operands... )
191+ elseif operation == " squareroot"
192+ return decimal_sqrt(operands... )
190193 else
191194 throw(ArgumentError(operation))
192195 end
@@ -204,4 +207,5 @@ decimal_multiply(x, y) = :($(dec(x)) * $(dec(y)))
204207decimal_plus(x) = :(+ ($ (dec(x))))
205208decimal_reduce(x) = :(normalize($ (dec(x))))
206209decimal_subtract(x, y) = :($ (dec(x)) - $ (dec(y)))
210+ decimal_sqrt(x) = :(sqrt($ (dec(x))))
207211
0 commit comments