递归幂函数健全性检查

这是一个不寻常的问题,但是我正在解决一个问题,而我的问题是它正在起作用。但是只有当我运行它时,才将其放入提交过程中。我编写了此函数以使用递归(问题的要求)处理指数。

double Pow(double num, int power) {  
   if (num == 1.0 || power == 0){
      return 1.0;
   } else if ( power > 0){
      return (num * Pow( num, power - 1 ) );
   } else{
      return ( (1.0/num) * Pow( num, power + 1 ) );
   } 
}

当我提交代码时,每个单元测试都会失败。当手动输入单元测试中使用的值时,它会产生正确的输出,因此我不知道需要解决什么。我在这里没有看到逻辑上的错误吗?

(失败的单元测试是-10 ^ -3和-10 ^ -4)