docs: def simplex_mark_st_arcs(self, t):
          '''
          API:
              simplex_mark_st_arcs(self, t)
          Description:
              Marks spanning tree arcs.
              Case 1, Blue: Arcs that are at lower bound and in tree.
              Case 2, Red: Arcs that are at upper bound and in tree.
              Case 3, Green: Arcs that are between bounds are green.
              Case 4, Brown: Non-tree arcs at lower bound.
              Case 5, Violet: Non-tree arcs at upper bound.
          Input:
              t: t is the current spanning tree
          Post:
              (1) color attribute of edges.
          '''
          tel = list(t.edge_attr.keys())
          for e in self.get_edge_list():
              flow_e = self.edge_attr[e]['flow']
              capacity_e = self.edge_attr[e]['capacity']
              if e in tel:
                  if flow_e == 0:
                      self.edge_attr[e]['color'] = 'blue'
                  elif flow_e == capacity_e:
                      self.edge_attr[e]['color'] = 'blue'
                  else:
                      self.edge_attr[e]['color'] = 'blue'
              else:
                  if flow_e == 0:
                      self.edge_attr[e]['color'] = 'black'
                  elif flow_e == capacity_e:
                      self.edge_attr[e]['color'] = 'black'
                  else:
                      msg = "Arc is not in ST but has flow between bounds."
                      raise Exception(msg)