code: def test_done(self):
      ts = graphlib.TopologicalSorter()
      ts.add(1, 2, 3, 4)
      ts.add(2, 3)
      ts.prepare()
  
      self.assertEqual(ts.get_ready(), (3, 4))
      # If we don't mark anything as done, get_ready() returns nothing
      self.assertEqual(ts.get_ready(), ())
      ts.done(3)
      # Now 2 becomes available as 3 is done
      self.assertEqual(ts.get_ready(), (2,))
      self.assertEqual(ts.get_ready(), ())
      ts.done(4)
      ts.done(2)
      # Only 1 is missing
      self.assertEqual(ts.get_ready(), (1,))
      self.assertEqual(ts.get_ready(), ())
      ts.done(1)
      self.assertEqual(ts.get_ready(), ())
      self.assertFalse(ts.is_active())
  
imports: import graphlib
  import os
  import unittest
  from test.support.script_helper import assert_python_ok
label_desc: Use image node_id 13 for calling the TestTopologicalSort obj's underlying member method code with example usage: obj.test_done() without return types