code: def test_extract_range_list_from_comparison_expr(self):
      expr_types = [
          ExpressionType.COMPARE_NEQ,
          ExpressionType.COMPARE_EQUAL,
          ExpressionType.COMPARE_GREATER,
          ExpressionType.COMPARE_LESSER,
          ExpressionType.COMPARE_GEQ,
          ExpressionType.COMPARE_LEQ,
      ]
      results = []
      for expr_type in expr_types:
          cmpr_exp = self.gen_cmp_expr(10, expr_type, const_first=True)
          results.append(
              extract_range_list_from_comparison_expr(cmpr_exp, 0, 100)
          )
      expected = [
          [(0, 9), (11, 100)],
          [(10, 10)],
          [(0, 9)],
          [(11, 100)],
          [(0, 10)],
          [(10, 100)],
      ]
      self.assertEqual(results, expected)
  
      results = []
      for expr_type in expr_types:
          cmpr_exp = self.gen_cmp_expr(10, expr_type)
          results.append(
              extract_range_list_from_comparison_expr(cmpr_exp, 0, 100)
          )
      expected = [
          [(0, 9), (11, 100)],
          [(10, 10)],
          [(11, 100)],
          [(0, 9)],
          [(10, 100)],
          [(0, 10)],
      ]
      self.assertEqual(results, expected)
  
      with self.assertRaises(RuntimeError):
          cmpr_exp = LogicalExpression(
              ExpressionType.LOGICAL_AND, Mock(), Mock()
          )
          extract_range_list_from_comparison_expr(cmpr_exp, 0, 100)
  
      with self.assertRaises(RuntimeError):
          cmpr_exp = self.gen_cmp_expr(
              10, ExpressionType.COMPARE_CONTAINS
          )
          extract_range_list_from_comparison_expr(cmpr_exp, 0, 100)
      with self.assertRaises(RuntimeError):
          cmpr_exp = self.gen_cmp_expr(
              10, ExpressionType.COMPARE_IS_CONTAINED
          )
          extract_range_list_from_comparison_expr(cmpr_exp, 0, 100)
  
file_path: evadb/test/unit_tests/expression/test_expression_utils.py
imports: import unittest
  from unittest.mock import Mock
  from evadb.expression.abstract_expression import ExpressionType
  from evadb.expression.arithmetic_expression import ArithmeticExpression
  from evadb.expression.comparison_expression import ComparisonExpression
  from evadb.expression.constant_value_expression import ConstantValueExpression
  from evadb.expression.expression_utils import conjunction_list_to_expression_tree, contains_single_column, extract_range_list_from_comparison_expr, extract_range_list_from_predicate, is_simple_predicate
  from evadb.expression.logical_expression import LogicalExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
label_desc: Use image node_id 2 for calling the ExpressionUtilsTest obj's underlying member method code with example usage: obj.test_extract_range_list_from_comparison_expr() without return types