title: Double Factorial
signature: double_factorial <- function(n) {
test_code: 
  
  
  # SOLUTION CODE
  # ============================================
  PLACEHOLDER_CODE_BODY
  
  # TESTING CODE 
  # ============================================
  validate_solution <- function(actual, expected) {
      toString(actual)==toString(expected)
  }
  
  driver <- function(n, expected){
      if (validate_solution(PLACEHOLDER_FN_NAME(n), expected)){
          "PASSED"
      } else{
          "FAILED"
      }
  }
  
  main <- function() {
      cat(sprintf("TEST-0...%s\n",driver(
          15L, 
          2027025L
      )))
  
      cat(sprintf("TEST-1...%s\n",driver(
          21L, 
          13749310575L
      )))
  
  }
  
  main()
source_py: def double_factorial(n):
      if ((n == 0) or (n == 1)):
          return 1
      return (n * double_factorial((n - 2)))
source_cpp: unsigned int double_factorial(unsigned int n) {
    if ( n == 0 || n == 1 ) return 1;
    return n * double_factorial ( n - 2 );
  }