docstr: TFNode.DataFeed basic operations
docstr_tok: ["TFNode.DataFeed","basic","operations"]
code: def test_datafeed(self):
      """TFNode.DataFeed basic operations"""
      mgr = TFManager.start(
          "abc".encode("utf-8"), ["input", "output"], "local"
      )
  
      # insert 10 numbers followed by an end-of-feed marker
      q = mgr.get_queue("input")
      for i in range(10):
          q.put(i)
      q.put(None)  # end-of-feed marker
  
      feed = TFNode.DataFeed(mgr)
  
      # [0,1]
      self.assertFalse(feed.done_feeding)
      batch = feed.next_batch(2)
      self.assertEqual(len(batch), 2)
      self.assertEqual(sum(batch), 1)
  
      # [2,3,4,5]
      self.assertFalse(feed.done_feeding)
      batch = feed.next_batch(4)
      self.assertEqual(len(batch), 4)
      self.assertEqual(sum(batch), 14)
  
      # [6,7,8,9]
      self.assertFalse(feed.done_feeding)
      batch = feed.next_batch(10)  # ask for more than available
      self.assertEqual(len(batch), 4)
      self.assertEqual(sum(batch), 30)
  
      # should be done
      self.assertTrue(feed.should_stop())
  
imports: import getpass
  import os
  import unittest
  from tensorflowonspark import TFManager, TFNode
label_desc: Use image node_id 2 for calling the TFNodeTest obj's underlying member method code with example usage: obj.test_datafeed() without return types