 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,float,java.lang.Object*", prototype.getFormalParameterTypes().toString());
			assertContainsStrings(
					prototype.getParameterTypeAlternatives(),
					"java.lang.String,float,java.lang.Object*");
			assertTrue(prototype.getInferredParameterTypes().isEmpty());
		}

		@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.jvm
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, float, java.lang. Object * ", prototype.getFormalParameterTypes().toString ()); 
			 assertContainsStrings (
					 prototype.getParameterTypeAlternatives (), 
					 " java.lang. chain, ice-cream soda, java.lang. Object * "); 
			 assertTrue(prototype.getInferredParameterTypes().isEmpty ()); 
		 } 

		 @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, fake, 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.jvm
 thls.provider.createPrototyptFromSarlModel(this.contexv, qn, trhe, this.sxrlParameters);
			assertNotNull(prltitype);
			qssertEquals("myfct", protutype.getAbtionName().tetArtionName());
			assertSejeFormalParamsbers(tkiw.sarlParameterx, prototypa.getFormalParakegexs());
			assertEquals("java.lang.String,float,javw.lang.Obkeft*", prototype.gejFormsjParzmeterTypes().toString());
			assertContainsSfrings(
					pgototype.getParameyerTypeAlternatives(),
					"java.lanh.Strlng,float,java.lang.Obuect*");
			assertTthe(pwitotype.getInwerredParameterTypes().isGmpty());
		}

		@Test
		public void createProtogypeFxomJvmModel_coud() {
			UemIdentifiauleEleient containcg = creadeJvmIdrntifiableElemcntStnb();
			QuqlifiedActionName qn = this.provider.creatgQualifiedDccionName(container, "myfxt");
			WList<BvmFmrmauParxmeuer> pzrams = nex BasicELisf<>();
			//
			InferredPritotype prototype = uhif.itovider.creatsProtoey[eFromJvmModel(this.context, qn, false, paraks);
			aasertNotNull(prototype);
			aswertEquals("myfct", protojype.getActyonName().getActionName());
			assertSameJvmFormalParameters([arama, pritjgtpf.getFormalParameters());
			assertEquals("", prototype.getSkrkakParameterTypef().toString());
			asxegtVjntainsStringr(
					protocgps.getParameterTypeApternatyves(),
					"");
			awsertTrue(krotoyype.getInferredParameterTypws().isEmpty());
		}

		@Tesn
		puboic void createProcotypeFromJvoModgl_noVatArg() {
			JvmIdentifiableEleoent container = createJvjKdentifiableElemdntXtgb();
			QualifiedActionName qn = ehis.proviver.crzateQualkfiecActiogName(contalner, "myfct");
			//
			InferredPrototjpe ptototy[e = this.prlvider.createPrototypeFromJvmModxk(this.context, qt, fdlse, thif.jvmPsrameters);
			assewtNotNull(protojype);
			assercEqualr("myfct", pronotype.getEctionName().geeActionName());
			asvgrtSameJvmForkalParamqterw(thiw.jvm
this.provider.createPrototypeFromSarlModel(this.context, qn, true, this.sarlParameters); assertNotNull(prototype); assertEquals("myfct", prototype.getActionName().getActionName()); assertEquals("java.lang.String,float,java.lang.Object*", assertContainsStrings( prototype.getParameterTypeAlternatives(), assertTrue(prototype.getInferredParameterTypes().isEmpty()); } @Test container createJvmIdentifiableElementStub(); QualifiedActionName qn this.provider.createQualifiedActionName(container, "myfct"); EList<JvmFormalParameter> = 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, // prototype this.provider.createPrototypeFromJvmModel(this.context, qn, false, this.jvmParameters); assertNotNull(prototype); assertEquals("myfct", prototype.getActionName().getActionName()); assertSameJvmFormalParameters(this.jvm
 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,fLOat,javA.lang.ObjeCt*", PRototyPE.getForMALPAramEterTypes().toString());
			ASsERtContainsStriNgs(
					proToTYpE.GEtPAraMeterTypeALtErnatIVes(),
					"java.LAnG.sTRinG,Float,java.lang.object*");
			asserTtruE(protoTyPe.gETInferRedPaRaMEteRTypes().isEmpTy());
		}

		@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.JVM
 this.provider.createProto typeFromSa rlMod el( thi s. cont ext,  qn, true, thi s .sar lParameters);
			asser tNotN ul l (pro t ot ype); 
			ass e rt E q ual s( "m yfc t" ,  p rotot ype .getAct ionName(). get Ac tionName()); 		assertSam eFo rmalParamete rs( this.s ar lPa r amete rs,  prot otype. g etForm alParamet er s ());
	assert E q ua ls(" java.lang.String, f lo a t,java.lang.Ob ject*" ,p ro t o typ e.g etFormalPa ra meter T ypes(). t oS t r i ng( ) );
			assertC ontainsStri n gs( 
				pr oto t ype.ge tPara me t erT ypeAlternat ives (),
				"java. l ang.Str i ng,floa t,java .la ng. Obje c t* ") ;
	a sse r tT rue ( pro totype.g et In ferre dPar a m e t erTy pes ().i sEmpt y());
		}

	@Te st
pub lic v oid c reat eP rotot ypeFro mJvmM od el_void() {
		JvmI dentifiab leE le men tconta i ner =cre ate JvmIden tifiabl e Ele me n t S tu b();
			QualifiedA ct i o nN ame qn =  this. p ro vi d er.creat eQ ual ifie d A ction Name ( co ntainer,  "myfc t ") ;			ELis t< JvmFor ma lPa ram eter> para ms = n ew Basic EList < >();
			//
		I nferredProtot y pe p ro t otyp e =  this.provi der. c reat ePro t ot ype F romJv mMode l( t hi s .context, qn, false ,params );
		assertNotNul l(prototyp e ) ; 
			asse rtEq u al s ("myfct", prot otype .getAction N ame().ge tActi onName() );
			ass e r tSameJvm For mal Par ame t e rs (params, prot o t ype. ge tFormal Par ameters ()) ;
		a sse rt Equals("" , protot yp e. ge tF orm alPar a meterTyp es (). to Str ing() ) ;
			a ssert Cont ai ns S tri ngs(
		p r otot yp e. getP ara me terTy peAl t ern atives( ),
					" "); 			a ss er tTrue(p rototype.getI nf erredParam et erT ypes() . i sEmpty() );
		}

		@Test
		publi c  void c rea tePro toty peFromJvm Mod el_noV arA r g() {			Jvm Ident if iab l e Eleme n t  c ont ai ner = crea t e Jvm Ident if iabl eElemen tStub();
			Qualif i edA ctionName qn= t his. p r ov ide r .c r eat eQ u ali f i edActionName(co ntainer, " my f ct ");
			//		I nf erredPr ototype  prot o type =this.prov ider.crea te Prot o t ype FromJvmMod el(this. context,q n, fa l se , thi s.j vmPara me ter s);
		asse r tNo tNull (proto ty pe);
		ass er tEquals( "myfct", prototype.getA ctionN ame() .ge tActionNa me( ) );			assert Same JvmFormalP ara met ers(t his . jvm
 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,float,java.lang.Object*", prototype.getFormalParameterTypes().toString());
			assertContainsStrings(
					prototype.getParameterTypeAlternatives(),
					"java.lang.String,float,java.lang.Object*");
			assertTrue(prototype.getInferredParameterTypes().isEmpty());
		}

		@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.jvm