def test_mag_mix(self): """ Desired Output: 1. Magnetically release pcr_0 beads for 30.0 seconds at an amplitude of 0 2. Distribute from test/1 into wells test/7, test/8, test/9 3. Distribute from test/2 into wells test/10 4. Distribute from test/0 into wells test/1 5. Magnetically mix pcr_0 beads for 30.0 seconds at an amplitude of 0 """ p = Protocol() pcrs = [p.ref("pcr_%s" % i, None, "96-pcr", storage="cold_20") for i in range(7)] pcr = pcrs[0] p.mag_release("96-pcr", pcr, "30:second", "1:hertz", center=float(5) / 100, amplitude=0) c = p.ref("test", None, "96-flat", discard=True) srcs = c.wells_from(1, 2).set_volume("100:microliter") dests = c.wells_from(7, 4) p.distribute(srcs, dests, "30:microliter", allow_carryover=True) p.distribute(c.well("A1").set_volume( "20:microliter"), c.well("A2"), "5:microliter") p.mag_mix("96-pcr", pcr, "30:second", "60:hertz", center=float(100) / 100, amplitude=0) pjsonString = json.dumps(p.as_dict(), indent=2) pjson = json.loads(pjsonString) parser_instance = english.AutoprotocolParser(pjson) parser_instance.job_tree() parsed_output = parser_instance.parsed_output steps = parser_instance.object_list forest = parser_instance.forest_list self.assertEqual( parsed_output, ["Magnetically release pcr_0 beads for 30.0 seconds at an amplitude of 0", "Distribute from test/1 into wells test/7, test/8, test/9", "Distribute from test/2 into wells test/10", "Distribute from test/0 into wells test/1", "Magnetically mix pcr_0 beads for 30.0 seconds at an amplitude of 0"]) self.assertEqual(forest, [[1, [5]], [2, [4]], [3]])