コード例 #1
0
 new public static ModelTesterDiscrete GetInstance(string modelTesterNameAndArguments)
 {
     if (modelTesterNameAndArguments.StartsWith(ModelTesterDiscreteFisher.Name))
     {
         return(ModelTesterDiscreteFisher.GetInstance());
     }
     else if (modelTesterNameAndArguments.StartsWith(ModelTesterDiscreteConditional.Name))
     {
         string leafDistnName             = modelTesterNameAndArguments.Substring(ModelTesterDiscreteConditional.Name.Length);
         DistributionDiscreteBinary distn = DistributionDiscreteBinary.GetInstance(leafDistnName);
         return(ModelTesterDiscreteConditional.GetInstance(distn));
     }
     else if (modelTesterNameAndArguments.StartsWith(ModelTesterDiscreteJoint.Name))
     {
         string altDistnName = modelTesterNameAndArguments.Substring(ModelTesterDiscreteJoint.Name.Length);
         DistributionDiscreteBinary      nullDistn = DistributionDiscreteBinary.GetInstance("Repulsion"); // leafDistn doesn't matter
         DistributionDiscreteJointBinary altDistn  = DistributionDiscreteJointBinary.GetInstance(altDistnName);
         return(ModelTesterDiscreteJoint.GetInstance(nullDistn, altDistn));
     }
     else
     {
         throw new ArgumentException(String.Format("{0} does not start with a valid ModelTesterDiscrete name.", modelTesterNameAndArguments));
     }
 }