Пример #1
0
        internal static int GetRandomNumberAdults(ITashaHousehold household, Activity activity, int min, int max, Random random)
        {
            int distID = 0;

            switch (activity)
            {
            case Activity.JointOther:
                if (household.NumberOfChildren > 0)
                {
                    if (household.NumberOfAdults == 2)
                    {
                        distID = 0;
                    }
                    else
                    {
                        if (household.NumberOfAdults >= 3)
                        {
                            distID = 1;
                        }
                        else
                        {
                            //error
                            throw new XTMFRuntimeException("One adult, at least one child.");
                        }
                    }
                }
                else     //no children
                {
                    if (household.NumberOfAdults >= 3)
                    {
                        distID = 2;
                    }
                    else
                    {
                        //error
                        throw new XTMFRuntimeException("error");
                    }
                }
                break;

            case Activity.JointMarket:
                if (household.NumberOfChildren > 0)
                {
                    if (household.NumberOfAdults == 2)
                    {
                        distID = 3;
                    }
                    else
                    {
                        if (household.NumberOfAdults >= 3)
                        {
                            distID = 4;
                        }
                        else
                        {
                            //error
                            throw new XTMFRuntimeException("error");
                        }
                    }
                }
                else     //no children
                {
                    if (household.NumberOfAdults >= 3)
                    {
                        distID = 5;
                    }
                    else
                    {
                        //error
                        throw new XTMFRuntimeException("error");
                    }
                }
                break;

            default:
                return(0);
            }
            return(Distribution.GetRandomAdultFrequency(distID, min, max, random));
        }