text: /*
  
    _   _   _                    _____                           _                       
   | \ | | (_)                  |  __ \                         | |                      
   |  \| |  _    ___    ___     | |__) |   ___   _ __     __ _  | |   ___    ____   __ _ 
   | . ` | | |  / __|  / _ \    |  ___/   / _ \ | '_ \   / _` | | |  / _ \  |_  /  / _` |
   | |\  | | | | (__  | (_) |   | |      |  __/ | | | | | (_| | | | | (_) |  / /  | (_| |
   |_| \_| |_|  \___|  \___/    |_|       \___| |_| |_|  \__,_| |_|  \___/  /___|  \__,_|
                                                                                         
   instagram: nikoo_penaloza
   github: nicopenaloza                                                                                    
  
  */
  const TypeOfArray = (arr) => {
      let res = [];
      arr.forEach(element => {
          res.push(typeof(element));
      });
      return res;
  }
  
  const resToText = (res, expe, parms) => {
      return `Input: \x1b[33m${parms}\x1b[0m Type: \x1b[33m${TypeOfArray(parms)}\n \x1b[0m   Expected result: \x1b[33m${expe}\x1b[0m Type: \x1b[33m${typeof(expe)}\n \x1b[0m   Output: \x1b[33m${res}\x1b[0m Type: \x1b[33m${typeof(res)}`;
  }
  
  module.exports = {
      test: async function test(func, expe, ...parms){
  
          try {
              var res = await func(...parms);
              if (res === expe){
                  console.log(`\x1b[32m Your function seems to be ok:\n \x1b[37m   ${resToText(res, expe, parms)} \x1b[0m`);
              } else {
                  console.log(`\x1b[31m Couldnt reach expected result:\n \x1b[37m   ${resToText(res, expe, parms)} \x1b[0m`);
              }
          } catch (error){
              console.info("Error:\n \x1b[0m", error);
          }
      
      
      } // Func = Func to test, Expe = Expected result, parms = Parameters from your function
      
  }