These are all good tests, but lets fold them all into the ROUND function so we can expose them directly as a built-in function as well. Just have RoundFunction be an abstract function with the type specific ones being the concrete derived classes. All the better if you can fold the CEIL, FLOOR functions into this for consistency as well.