add double_factorial function, add tests for