");    assertPrototypes(prototype.getOriginalParameterTypes(),      InferredStandardParameter.class,      "java.lang.String",      "firstarg",      InferredStandardParameter.class,      "int",      "secondarg",      InferredStandardParameter.class,      "float",      "thirdarg",      InferredStandardParameter.class,      "java.lang.Object",      "fourtharg");    assertPrototypes(prototype.getInferredParameterTypes(),      new Object[] {        InferredStandardParameter.class,        "java.lang.String",        "firstarg",        InferredStandardParameter.class,        "int",        "secondarg",        InferredValuedParameter.class,        "float",        "thirdarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "java.lang.Object",        "fourtharg",    },      new Object[] {        InferredValuedParameter.class,        "java.lang.String",        "firstarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "int",        "secondarg",        InferredStandardParameter.class,        "float",        "thirdarg",        InferredStandardParameter.class,        "java.lang.Object",        "fourtharg",    },      new Object[] {        InferredValuedParameter.class,        "java.lang.String",        "firstarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "int",        "secondarg",        InferredValuedParameter.class,        "float",        "thirdarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "java.lang.Object",        "fourtharg",    });   }    @Test   public void createPrototypeFromSarlModel_varArg() {    JvmIdentifiableElement container = createJvmIdentifiableElementStub();    QualifiedActionName qn = this.provider.createQualifiedActionName(container, "myfct");    //    InferredPrototype prototype = this.provider.createPrototypeFromSarlModel(this.context, qn, true, this.sarlParameters);    assertNotNull(prototype);    assertEquals("myfct", prototype.getActionName().getActionName());    assertSameFormalParameters(this.sarlParameters, prototype.getFormalParameters());    assertEquals("java.lang.String,int,float,java.lang.Object*", prototype.getFormalParameterTypes().toString());    assertContainsStrings(      prototype.getParameterTypeAlternatives(),      "java.lang.String,int,float,java.lang.Object*",      "java.lang.String,int,java.lang.Object*",      "int,float,java.lang.Object*",      "int,java.lang.Object*");    assertPrototypes(prototype.getOriginalParameterTypes(),      InferredStandardParameter.class,      "java.lang.String",      "firstarg",      InferredStandardParameter.class,      "int",      "secondarg",      InferredStandardParameter.class,      "float",      "thirdarg",      InferredStandardParameter.class,      "java.lang.Object[]",      "fourtharg");    assertPrototypes(prototype.getInferredParameterTypes(),      new Object[] {        InferredStandardParameter.class,        "java.lang.String",        "firstarg",        InferredStandardParameter.class,        "int",        "secondarg",        InferredValuedParameter.class,        "float",        "thirdarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "java.lang.Object[]",        "fourtharg",    },      new Object[] {        InferredValuedParameter.class,        "java.lang.String",        "firstarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "int",        "secondarg",        InferredStandardParameter.class,        "float",        "thirdarg",        InferredStandardParameter.class,        "java.lang.Object[]",        "fourtharg",    },      new Object[] {        InferredValuedParameter.class,        "java.lang.String",        "firstarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "int",        "secondarg",        InferredValuedParameter.class,        "float",        "thirdarg",        "io.sarl.tests.Stub" + index + "#MYFCT_0",        InferredStandardParameter.class,        "java.lang.Object[]",        "fourtharg",    });   }    @Test   public void createPrototypeFromJvmModel_void() {    JvmIdentifiableElement container = createJvmIdentifiableElementStub();    QualifiedActionName qn = this.provider.createQualifiedActionName(container, "myfct");    EList<JvmFormalParameter> params = new BasicEList<>();    //    InferredPrototype prototype = this.provider.createPrototypeFromJvmModel(this.context, qn, false, params);    assertNotNull(prototype);    assertEquals("myfct", prototype.getActionName().getActionName());    assertSameJvmFormalParameters(params, prototype.getFormalParameters());    assertEquals("", prototype.getFormalParameterTypes().toString());    assertContainsStrings(      prototype.getParameterTypeAlternatives(),      "");    assertTrue(prototype.getInferredParameterTypes().isEmpty());   }    @Test   public void createPrototypeFromJvmModel_noVarArg() {    JvmIdentifiableElement container = createJvmIdentifiableElementStub();    QualifiedActionName qn = this.provider.createQualifiedActionName(container, "myfct");    //    InferredPrototype prototype = this.provider.createPrototypeFromJvmModel(this.context, qn, false, this.jvmParameters);    assertNotNull(prototype);    assertEquals("myfct", prototype.getActionName().getActionName());    assertSameJvmFormalParameters(this.jvmParameters, prototype.getFormalParameters());    assertEquals(      "java.lang.String,int,float,java.lang.Object[]",      prototype.getFormalParameterTypes().toString());    assertContainsStrings(      prototype.getParameterTypeAlternatives(),      "java.lang.String,int,float,java.lang.Object[]",      