new public static ModelEvaluatorDiscreteConditionalCollection GetInstance(string collectionType, ModelScorer scorer) { collectionType = collectionType.ToLower(); SpecialFunctions.CheckCondition(collectionType.Equals("onedirection") || collectionType.Equals("bothdirections"), "ModelEvaluatorDiscreteConditionalCollection must be of type \"OneDirection\" or \"BothDirections\""); List <ModelEvaluator> models = new List <ModelEvaluator>(); models.Add(ModelEvaluatorDiscreteConditional.GetInstance("Attraction", scorer, true)); models.Add(ModelEvaluatorDiscreteConditional.GetInstance("Repulsion", scorer, true)); models.Add(ModelEvaluatorDiscreteConditional.GetInstance("Escape", scorer, true)); models.Add(ModelEvaluatorDiscreteConditional.GetInstance("Reversion", scorer, true)); if (collectionType.Equals("bothdirections")) { collectionType = "BothDirections"; models.Add(ModelEvaluatorReverse.GetInstance(ModelEvaluatorDiscreteConditional.GetInstance("Attraction", scorer, true))); models.Add(ModelEvaluatorReverse.GetInstance(ModelEvaluatorDiscreteConditional.GetInstance("Repulsion", scorer, true))); models.Add(ModelEvaluatorReverse.GetInstance(ModelEvaluatorDiscreteConditional.GetInstance("Escape", scorer, true))); models.Add(ModelEvaluatorReverse.GetInstance(ModelEvaluatorDiscreteConditional.GetInstance("Reversion", scorer, true))); } else { collectionType = "OneDirection"; } return(new ModelEvaluatorDiscreteConditionalCollection(models, collectionType)); }
new public static ModelEvaluatorDiscrete GetInstance(string nameAndParameters, ModelScorer scorer) { nameAndParameters = nameAndParameters.ToLower(); if (nameAndParameters.StartsWith(ModelEvaluatorDiscreteConditional.BaseName.ToLower())) { return(ModelEvaluatorDiscreteConditional.GetInstance(nameAndParameters.Substring(ModelEvaluatorDiscreteConditional.BaseName.Length), scorer)); } else if (nameAndParameters.StartsWith(ModelEvaluatorDiscreteJoint.BaseName.ToLower())) { return(ModelEvaluatorDiscreteJoint.GetInstance(nameAndParameters.Substring(ModelEvaluatorDiscreteJoint.BaseName.Length), scorer)); } else if (nameAndParameters.Equals(ModelEvaluatorDiscreteFisher.BaseName.ToLower())) { return(ModelEvaluatorDiscreteFisher.GetInstance(scorer.PhyloTree.LeafCollection)); } throw new ArgumentException("Cold not parse " + nameAndParameters + " into a ModelEvaluatorDiscrete."); }