code: def test_liftover_strand():
      grch37 = hl.get_reference("GRCh37")
      grch37.add_liftover(
          resource("grch37_to_grch38_chr20.over.chain.gz"), "GRCh38"
      )
  
      try:
          actual = hl.eval(
              hl.liftover(
                  hl.locus("20", 60001, "GRCh37"),
                  "GRCh38",
                  include_strand=True,
              )
          )
          expected = hl.Struct(
              result=hl.Locus("chr20", 79360, "GRCh38"),
              is_negative_strand=False,
          )
          assert actual == expected
  
          actual = hl.eval(
              hl.liftover(
                  hl.locus_interval(
                      "20", 37007582, 37007586, True, True, "GRCh37"
                  ),
                  "GRCh38",
                  include_strand=True,
              )
          )
          expected = hl.Struct(
              result=hl.Interval(
                  hl.Locus("chr12", 32563117, "GRCh38"),
                  hl.Locus("chr12", 32563121, "GRCh38"),
                  includes_start=True,
                  includes_end=True,
              ),
              is_negative_strand=True,
          )
          assert actual == expected
  
          with pytest.raises(FatalError):
              hl.eval(
                  hl.liftover(
                      hl.parse_locus_interval(
                          "1:10000-10000", reference_genome="GRCh37"
                      ),
                      "GRCh38",
                  )
              )
      finally:
          grch37.remove_liftover("GRCh38")
  
file_path: hail/hail/python/test/hail/genetics/test_reference_genome.py
imports: import pytest
  from random import randint
  import hail
  from hail.genetics import *
  from ..helpers import *
  from hail.utils import FatalError
label_desc: Use image node_id 4 for calling a global function with example usage: test_liftover_strand() without return types