class_docstr: Test ability to marshall metric protos and invalid input.
class_docstr_tok: ["Test","ability","to","marshall","metric","protos","and","invalid","input","."]
docstr: Test that metric can be called with label, value, delta, and delta
  colors passed in.
docstr_tok: ["Test","that","metric","can","be","called","with","label",",","value",",","delta",",","and","delta","colors","passed","in","."]
code: def test_label_and_value_and_delta_and_delta_color(self):
      """Test that metric can be called with label, value, delta, and delta
      colors passed in."""
      st.metric("label_test", "123", -321, "normal")
      c = self.get_delta_from_queue().new_element.metric
      self.assertEqual(c.label, "label_test")
      self.assertEqual(c.body, "123")
      self.assertEqual(c.delta, "-321")
      self.assertEqual(c.color, MetricProto.MetricColor.RED)
      self.assertEqual(c.direction, MetricProto.MetricDirection.DOWN)
  
imports: from parameterized import parameterized
  import streamlit
  from streamlit.errors import StreamlitAPIException
  from streamlit.proto.LabelVisibilityMessage_pb2 import LabelVisibilityMessage
  from streamlit.proto.Metric_pb2 import Metric
  from streamlit.type_util import _LOGGER
  from tests.delta_generator_test_case import DeltaGeneratorTestCase
label_desc: Use image node_id 4 for calling the MetricTest obj's underlying member method code with example usage: obj.test_label_and_value_and_delta_and_delta_color() without return types