text: """Tests Open Peer Power location helpers."""
  from openpeerpower.const import ATTR_LATITUDE, ATTR_LONGITUDE
  from openpeerpower.core import State
  from openpeerpower.helpers import location
  
  
  def test_has_location_with_invalid_states():
      """Set up the tests."""
      for state in (None, 1, "hello", object):
          assert not location.has_location(state)
  
  
  def test_has_location_with_states_with_invalid_locations():
      """Set up the tests."""
      state = State(
          "hello.world", "invalid", {ATTR_LATITUDE: "no number", ATTR_LONGITUDE: 123.12}
      )
      assert not location.has_location(state)
  
  
  def test_has_location_with_states_with_valid_location():
      """Set up the tests."""
      state = State(
          "hello.world", "invalid", {ATTR_LATITUDE: 123.12, ATTR_LONGITUDE: 123.12}
      )
      assert location.has_location(state)
  
  
  def test_closest_with_no_states_with_location():
      """Set up the tests."""
      state = State("light.test", "on")
      state2 = State(
          "light.test", "on", {ATTR_LATITUDE: "invalid", ATTR_LONGITUDE: 123.45}
      )
      state3 = State("light.test", "on", {ATTR_LONGITUDE: 123.45})
  
      assert location.closest(123.45, 123.45, [state, state2, state3]) is None
  
  
  def test_closest_returns_closest():
      """Test ."""
      state = State("light.test", "on", {ATTR_LATITUDE: 124.45, ATTR_LONGITUDE: 124.45})
      state2 = State("light.test", "on", {ATTR_LATITUDE: 125.45, ATTR_LONGITUDE: 125.45})
  
      assert state == location.closest(123.45, 123.45, [state, state2])
  
  
  async def test_coordinates_function_as_attributes(opp):
      """Test coordinates function."""
      opp.states.async_set(
          "test.object", "happy", {"latitude": 32.87336, "longitude": -117.22943}
      )
      assert location.find_coordinates(opp, "test.object") == "32.87336,-117.22943"
  
  
  async def test_coordinates_function_as_state(opp):
      """Test coordinates function."""
      opp.states.async_set("test.object", "32.87336,-117.22943")
      assert location.find_coordinates(opp, "test.object") == "32.87336,-117.22943"
  
  
  async def test_coordinates_function_device_tracker_in_zone(opp):
      """Test coordinates function."""
      opp.states.async_set(
          "zone.home",
          "zoning",
          {"latitude": 32.87336, "longitude": -117.22943},
      )
      opp.states.async_set("device_tracker.device", "home")
      assert (
          location.find_coordinates(opp, "device_tracker.device") == "32.87336,-117.22943"
      )
  
  
  async def test_coordinates_function_device_tracker_from_input_select(opp):
      """Test coordinates function."""
      opp.states.async_set(
          "input_select.select",
          "device_tracker.device",
          {"options": "device_tracker.device"},
      )
      opp.states.async_set("device_tracker.device", "32.87336,-117.22943")
      assert (
          location.find_coordinates(opp, "input_select.select") == "32.87336,-117.22943"
      )
  
  
  def test_coordinates_function_returns_none_on_recursion(opp):
      """Test coordinates function."""
      opp.states.async_set(
          "test.first",
          "test.second",
      )
      opp.states.async_set("test.second", "test.first")
      assert location.find_coordinates(opp, "test.first") is None
  
  
  async def test_coordinates_function_returns_none_if_invalid_coord(opp):
      """Test test_coordinates function."""
      opp.states.async_set(
          "test.object",
          "abc",
      )
      assert location.find_coordinates(opp, "test.object") is None
  
  
  def test_coordinates_function_returns_none_if_invalid_input(opp):
      """Test test_coordinates function."""
      assert location.find_coordinates(opp, "test.abc") is None
  