def test_unit_types(self):
     protocol_info = ProtocolInfo({
         "name": "Test Basic Types",
         "inputs": {
             "volume": "volume",
             "time": "time",
             "temperature": "temperature",
         },
     })
     parsed = protocol_info.parse(
         self.protocol,
         {
             "refs": {},
             "parameters": {
                 "volume": "3:microliter",
                 "time": "30:second",
                 "temperature": "25:celsius",
             },
         },
     )
     assert {
         "volume": Unit.fromstring("3:microliter"),
         "time": Unit.fromstring("30:second"),
         "temperature": Unit.fromstring("25:celsius"),
     } == parsed
     with pytest.raises(RuntimeError):
         parsed = protocol_info.parse(
             self.protocol,
             {
                 "refs": {},
                 "parameters": {
                     "volume": 3,
                     "time": "30:second",
                     "temperature": "25:celsius",
                 },
             },
         )
         parsed = protocol_info.parse(
             self.protocol,
             {
                 "refs": {},
                 "parameters": {
                     "volume": "3:microliter",
                     "time": "hello",
                     "temperature": "25:celsius",
                 },
             },
         )
         parsed = protocol_info.parse(
             self.protocol,
             {
                 "refs": {},
                 "parameters": {
                     "volume": "3:microliter",
                     "time": "30:second",
                     "temperature": 25,
                 },
             },
         )
 def test_unit_types(self):
     protocol_info = ProtocolInfo({
         'name': 'Test Basic Types',
         'inputs': {
             'volume': 'volume',
             'time': 'time',
             'temperature': 'temperature'
         }
     })
     parsed = protocol_info.parse(
         self.protocol, {
             'refs': {},
             'parameters': {
                 'volume': '3:microliter',
                 'time': '30:second',
                 'temperature': '25:celsius'
             }
         })
     self.assertEqual(
         {
             'volume': Unit.fromstring('3:microliter'),
             'time': Unit.fromstring('30:second'),
             'temperature': Unit.fromstring('25:celsius')
         }, parsed)
     with self.assertRaises(RuntimeError):
         parsed = protocol_info.parse(
             self.protocol, {
                 'refs': {},
                 'parameters': {
                     'volume': 3,
                     'time': '30:second',
                     'temperature': '25:celsius'
                 }
             })
         parsed = protocol_info.parse(
             self.protocol, {
                 'refs': {},
                 'parameters': {
                     'volume': "3:microliter",
                     'time': "hello",
                     'temperature': '25:celsius'
                 }
             })
         parsed = protocol_info.parse(
             self.protocol, {
                 'refs': {},
                 'parameters': {
                     'volume': "3:microliter",
                     'time': "30:second",
                     'temperature': 25
                 }
             })
 def test_unit_types(self):
     protocol_info = ProtocolInfo(
         {"name": "Test Basic Types", "inputs": {"volume": "volume", "time": "time", "temperature": "temperature"}}
     )
     parsed = protocol_info.parse(
         self.protocol,
         {"refs": {}, "parameters": {"volume": "3:microliter", "time": "30:second", "temperature": "25:celsius"}},
     )
     self.assertEqual(
         {
             "volume": Unit.fromstring("3:microliter"),
             "time": Unit.fromstring("30:second"),
             "temperature": Unit.fromstring("25:celsius"),
         },
         parsed,
     )
 def test_unit_types(self):
     protocol_info = ProtocolInfo({
         'name': 'Test Basic Types',
         'inputs': {
             'volume': 'volume',
             'time': 'time',
             'temperature': 'temperature'
         }
     })
     parsed = protocol_info.parse(self.protocol, {
         'refs': {},
         'parameters': {
             'volume': '3:microliter',
             'time': '30:second',
             'temperature': '25:celsius'
         }
     })
     self.assertEqual({
         'volume': Unit.fromstring('3:microliter'),
         'time': Unit.fromstring('30:second'),
         'temperature': Unit.fromstring('25:celsius')
     }, parsed)
     with self.assertRaises(RuntimeError):
         parsed = protocol_info.parse(self.protocol, {
             'refs': {},
             'parameters': {
                 'volume': 3,
                 'time': '30:second',
                 'temperature': '25:celsius'
             }
         })
         parsed = protocol_info.parse(self.protocol, {
             'refs': {},
             'parameters': {
                 'volume': "3:microliter",
                 'time': "hello",
                 'temperature': '25:celsius'
             }
         })
         parsed = protocol_info.parse(self.protocol, {
             'refs': {},
             'parameters': {
                 'volume': "3:microliter",
                 'time': "30:second",
                 'temperature': 25
             }
         })