code: def test_edge_destination_query(self):
      g = chain_graph()
  
      g2 = g.chain([e_forward(destination_node_query='n == "b"')])
      assert g2._nodes.to_dict(orient="records") == [
          {"n": "a"},
          {"n": "b"},
      ]
      assert g2._edges.to_dict(orient="records") == [
          {"s": "a", "d": "b"}
      ]
  
imports: from functools import lru_cache
  from typing import Dict, List
  import logging
  import pandas
  from common import NoAuthTestCase
  from graphistry.compute.ast import n, e_forward, e_reverse, e_undirected, is_in
  from graphistry.tests.test_compute import CGFull
  from graphistry.tests.test_compute_hops import hops_graph
  from graphistry.util import setup_logger
label_desc: Use image node_id 4 for calling the TestComputeChainQuery obj's underlying member method code with example usage: obj.test_edge_destination_query() without return types