def testcalculate_composition(self): # Wildcard composition = Material.calculate_composition({29: 0.7, 30: '?'}) self.assertIn(29, composition) self.assertAlmostEqual(0.7, composition[29], 4) self.assertIn(30, composition) self.assertAlmostEqual(0.3, composition[30], 4) # Multiple wildcards composition = Material.calculate_composition({29: '?', 30: '?'}) self.assertIn(29, composition) self.assertAlmostEqual(0.5, composition[29], 4) self.assertIn(30, composition) self.assertAlmostEqual(0.5, composition[30], 4)