def METHOD_NAME(self):
    # First, extract the time step from the script file
    tree = et.parse(self.script_path)
    dt = float(tree.getroot().find("run").attrib["dt"])
    # The aircraft c172x does not contain an <input> tag so we need
    # to add one.
    tree, aircraft_name, b = CopyAircraftDef(self.script_path, self.sandbox)
    root = tree.getroot()
    input_tag = et.SubElement(root, "input")
    input_tag.attrib["port"] = "1137"
    tree.write(self.sandbox("aircraft", aircraft_name, aircraft_name + ".xml"))
    fdm = self.create_fdm()
    fdm.set_aircraft_path("aircraft")
    fdm.load_script(self.script_path)
    fdm.run_ic()
    fdm.hold()
    tn = TelnetInterface(fdm, 1137)
    self.sanityCheck(tn)
    # Check the aircraft name and its version
    msg = tn.sendCommand("info").split("\n")
    self.assertEqual(msg[2].split(":")[1].strip(), root.attrib["name"].strip())
    self.assertEqual(msg[1].split(":")[1].strip(), root.attrib["version"].strip())
    # Check that the simulation time is 0.0
    self.assertEqual(float(msg[3].split(":")[1].strip()), 0.0)
    self.assertEqual(fdm.get_sim_time(), 0.0)
    self.assertEqual(tn.getPropertyValue("simulation/sim-time-sec"), 0.0)
    # Check that 'iterate' iterates the correct number of times
    tn.sendCommand("iterate 19")
    self.assertEqual(fdm.get_sim_time(), 19.0 * dt)
    self.assertAlmostEqual(
        tn.getPropertyValue("simulation/sim-time-sec"),
        fdm.get_sim_time(),
        delta=1e-5,
    )
    self.assertTrue(fdm.holding())
    # Wait a little bit and make sure that the simulation time has not
    # changed meanwhile thus confirming that the simulation is on hold.
    for _ in range(40):
        fdm.run()
    self.assertEqual(fdm.get_sim_time(), 19.0 * dt)
    self.assertAlmostEqual(
        tn.getPropertyValue("simulation/sim-time-sec"),
        fdm.get_sim_time(),
        delta=1e-5,
    )
    # Modify the tank[0] contents via the "send" command
    half_contents = 0.5 * tn.getPropertyValue("propulsion/tank/contents-lbs")
    tn.sendCommand("set propulsion/tank/contents-lbs " + str(half_contents))
    self.assertEqual(
        tn.getPropertyValue("propulsion/tank/contents-lbs"), half_contents
    )
    # Check the resume/hold commands
    t = fdm.get_sim_time()
    tn.sendCommand("resume")
    self.assertNotEqual(fdm.get_sim_time(), t)
    self.assertFalse(fdm.holding())
    tn.sendCommand("hold")
    t = fdm.get_sim_time()
    self.assertTrue(fdm.holding())
    self.assertAlmostEqual(
        tn.getPropertyValue("simulation/sim-time-sec"), t, delta=1e-5
    )
    # Wait a little bit and make sure that the simulation time has not
    # changed meanwhile thus confirming that the simulation is on hold.
    for _ in range(40):
        fdm.run()
    self.assertEqual(fdm.get_sim_time(), t)
    self.assertAlmostEqual(
        tn.getPropertyValue("simulation/sim-time-sec"), t, delta=1e-5
    )