text: # Licensed under a 3-clause BSD style license - see LICENSE.rst
  """
  A set of tests for the util.py module
  """
  import pytest
  
  from astropy.io.votable import util
  
  
  def test_range_list():
      assert util.coerce_range_list_param((5,)) == ("5.0", 1)
  
  
  def test_range_list2():
      assert util.coerce_range_list_param((5e-7, 8e-7)) == ("5e-07,8e-07", 2)
  
  
  def test_range_list3():
      assert util.coerce_range_list_param((5e-7, 8e-7, "FOO")) == (
          "5e-07,8e-07;FOO", 3)
  
  
  def test_range_list4a():
      with pytest.raises(ValueError):
          util.coerce_range_list_param(
              (5e-7, (None, 8e-7), (4, None), (4, 5), "J", "FOO"))
  
  
  def test_range_list4():
      assert (util.coerce_range_list_param(
          (5e-7, (None, 8e-7), (4, None), (4, 5), "J", "FOO"), numeric=False) ==
              ("5e-07,/8e-07,4/,4/5,J;FOO", 6))
  
  
  def test_range_list5():
      with pytest.raises(ValueError):
          util.coerce_range_list_param(('FOO', ))
  
  
  def test_range_list6():
      with pytest.raises(ValueError):
          print(util.coerce_range_list_param((5, 'FOO'), util.stc_reference_frames))
  
  
  def test_range_list7():
      assert util.coerce_range_list_param(("J",), numeric=False) == ("J", 1)
  
  
  def test_range_list8():
      for s in ["5.0",
                "5e-07,8e-07",
                "5e-07,8e-07;FOO",
                "5e-07,/8e-07,4.0/,4.0/5.0;FOO",
                "J"]:
          assert util.coerce_range_list_param(s, numeric=False)[0] == s
  
  
  def test_range_list9a():
      with pytest.raises(ValueError):
          util.coerce_range_list_param("52,-27.8;FOO", util.stc_reference_frames)
  
  
  def test_range_list9():
      assert util.coerce_range_list_param(
          "52,-27.8;GALACTIC", util.stc_reference_frames)
  