<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def runBasic(noiseLevel=None, profile=False):
 """ Runs a basic experiment on continuous locations, learning a few locations on four basic objects, and inferring one of them. This experiment is mostly used for testing the pipeline, as the learned locations are too random and sparse to actually perform inference. Parameters: @param noiseLevel (float) Noise level to add to the locations and features during inference @param profile (bool) If True, the network will be profiled after learning and inference """

  exp = L4L2Experiment(
    "basic_continuous",
    numCorticalColumns=2
  )

  objects = createObjectMachine(
    machineType="continuous",
    numInputBits=21,
    sensorInputSize=1024,
    externalInputSize=1024,
    numCorticalColumns=2,
  )

  objects.addObject(Sphere(radius=20), name="sphere")
  objects.addObject(Cylinder(height=50, radius=20), name="cylinder")
  objects.addObject(Box(dimensions=[10, 20, 30,]), name="box")
  objects.addObject(Cube(width=20), name="cube")

  learnConfig = {
    "sphere": [("surface", 10)],
    # the two learning config below will be exactly the same
    "box": [("face", 5), ("edge", 5), ("vertex", 5)],
    "cube": [(feature, 5) for feature in objects["cube"].getFeatures()],
    "cylinder": [(feature, 5) for feature in objects["cylinder"].getFeatures()]
  }

  exp.learnObjects(
    objects.provideObjectsToLearn(learnConfig, plot=True),
    reset=True
  )
  if profile:
    exp.printProfile()

  inferConfig = {
    "numSteps": 4,
    "noiseLevel": noiseLevel,
    "objectName": "cube",
    "pairs": {
      0: ["face", "face", "edge", "edge"],
      1: ["edge", "face", "face", "edge"]
    }
  }

  exp.infer(
    objects.provideObjectToInfer(inferConfig, plot=True),
    objectName="cube",
    reset=True
  )
  if profile:
    exp.printProfile()

  exp.plotInferenceStats(
    fields=["L2 Representation",
            "Overlap L2 with object",
            "L4 Representation"],
  )