title: Check Two Given Circles Touch Intersect
signature: function check_two_given_circles_touch_intersect(x1, y1, x2, y2, r1, r2)
test_code: 
  
  -- SOLUTION CODE
  -- ============================================
  PLACEHOLDER_CODE_BODY
  
  -- TESTING CODE 
  -- ============================================
  function isCorrect(actual, expected)
      if type(expected) ~= type(actual) then
          return false
      end
      
      if type(expected) == 'table' then
          for k,v_expected in pairs(expected) do
              
              if actual[k] == nil then
                  return false
              end
              local v_actual = actual[k]
              if not isCorrect(v_actual, v_expected) then
                  return false
              end
              actual[k]=nil
          end
      
          if next(actual) then 
              return false
          end
          return true
      else
          return actual == expected
      end
  end
  
  function validateSolution(actual, expected)
      return isCorrect(actual,expected)
  end
  
  function driver(x1, y1, x2, y2, r1, r2, expected)
      local exec_result;
      local status, error_msg = pcall(function () 
          exec_result=PLACEHOLDER_FN_NAME(x1, y1, x2, y2, r1, r2) 
      end)
      if status then
          if validateSolution(exec_result,expected) then
              return "PASSED"
          end
          return "FAILED"
      else
          return string.format("ERROR=%s",string.gsub(error_msg,".*:[%d]+: ",""))
      end
  end
      
  function main()
      result = driver(11, 36, 62, 64, 50, 4, -1)
      print(string.format("TEST-0...%s",result))
  
      result = driver(87, 1, 62, 64, 54, 41, 0)
      print(string.format("TEST-1...%s",result))
  
      result = driver(51, 1, 47, 90, 14, 71, -1)
      print(string.format("TEST-2...%s",result))
  
      result = driver(89, 67, 9, 52, 94, 21, 0)
      print(string.format("TEST-3...%s",result))
  
      result = driver(64, 10, 79, 45, 67, 78, 0)
      print(string.format("TEST-4...%s",result))
  
      result = driver(57, 86, 99, 43, 83, 63, 0)
      print(string.format("TEST-5...%s",result))
  
      result = driver(65, 90, 42, 82, 77, 32, 0)
      print(string.format("TEST-6...%s",result))
  
      result = driver(32, 23, 28, 26, 60, 45, 0)
      print(string.format("TEST-7...%s",result))
  
      result = driver(73, 61, 63, 77, 92, 76, 0)
      print(string.format("TEST-8...%s",result))
  
      result = driver(3, 99, 6, 19, 21, 28, -1)
      print(string.format("TEST-9...%s",result))
  
  end
  
  main()
source_py: def check_two_given_circles_touch_intersect(x1, y1, x2, y2, r1, r2):
      distSq = (((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)))
      radSumSq = ((r1 + r2) * (r1 + r2))
      if (distSq == radSumSq):
          return 1
      elif (distSq > radSumSq):
          return (- 1)
      else:
          return 0
source_cpp: int check_two_given_circles_touch_intersect(int x1, int y1, int x2, int y2, int r1, int r2) {
    int distSq = ( x1 - x2 ) * ( x1 - x2 ) + ( y1 - y2 ) * ( y1 - y2 );
    int radSumSq = ( r1 + r2 ) * ( r1 + r2 );
    if ( distSq == radSumSq ) return 1;
    else if ( distSq > radSumSq ) return - 1;
    else return 0;
  }