Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Researchers are preparing a simulation of an ecosystem, consisted of foxes evolving in an environment. To initialize the system, a population of foxes with randomly

Researchers are preparing a simulation of an ecosystem, consisted of foxes evolving in an environment. To initialize the system, a population of foxes with randomly generated attributes must be created. You have been tasked with outputting such a population sample, where foxes have unique ids, starting from 0 and incrementing by 1, x and y coordinates, age, health (1-10), and gender. Furthermore, the population must follow the constraints of the environment, which will have a grid size (x and y scalars) which will be determined by the user.

The environment will also have one of the following climate types: tropical, temperate, or tundra. The health of the foxes will depend on age and climate. All foxes younger than 3 must have health from 7 to 10. Alternatively, the climate becomes the principal factor.

For tundra climates, extreme conditions persist on the northern-most part of the grid (top 20% of y coordinates) resulting in health ratings ranging from 1 to 4. For foxes older than 3 that live on other parts of the grid, health ranges from 4 to 7.

For tropical climates, the same applies but for the southern-most part of the grid(lower 20% of y coordinates).

For temperate climates, there are no extremes, but the animals health tends to deteriorate after 5 years, resulting to health ratings ranging from 1 to 4. Otherwise, 4 to 7 is the standard range.

User must input the following:

Environment: tundra, temperate, or tropical

Grid size x:

Grid size: y

Population size:

Maximum animal age:

Age, gender (50/50 chance split), coordinates, health must be randomly generated without violating any conditions specified above.

Use this information, to create a Black-Box testing plan for the program.

  • Your file must include the following four sections with test data for each:
  1. Test data that covers representative inputs
  2. Test data that provides functional coverage
  3. Test data that provides for boundary-values testing
  4. Test data that implements special-values testing

#include  #include  #include  #include  #include  #include  using namespace std; struct Animal { int x; int y; int age; int health; int id; string gender; }; struct Environment { string climate; int num_foxes; int grid_size_x; int grid_size_y; Animal *foxes; }; int GetRandomBetween(int floor, int ceiling); Animal CreateAnimal(int min_age, int max_age, int id, int gridx, int gridy, string climate); string GetGender(); void GeneratePopulations(Environment& env); Environment GenerateEnvironment(); int GetHealth(string climate, int age, int grid_x, int grid_y, int x, int y); void PrintAnimals(Animal *animals, int size); int main() { srand (time(NULL)); Environment env = GenerateEnvironment(); GeneratePopulations(env); return 0; } int GetRandomBetween(int floor, int ceiling) { return floor + (rand() % static_cast(ceiling - floor + 1)); } Animal CreateAnimal(int max_age, int id, int gridx, int gridy, string climate) { Animal animal; animal.age = GetRandomBetween(1, max_age); animal.x = GetRandomBetween(0, gridx); animal.y = GetRandomBetween(0, gridy); animal.health = GetHealth(climate, animal.age, gridx, gridy, animal.x, animal.y); animal.id = id; animal.gender = GetGender(); return animal; } string GetGender() { int g = GetRandomBetween(0,10); if(g>5) return "f"; else return "m"; } void GeneratePopulations(Environment& env) { int max_age; pop_size: cout<>env.num_foxes; if(cin.fail()==true || env.num_foxes<0) { cout<<"Error Enter Value Again"<>max_age; if(cin.fail()==true || max_age<1) { cout<<"Error Enter Value Again"<>env.climate; if(env.climate == " " || (env.climate !="temperate" && env.climate !="TEMPERATE" && env.climate !="Temperate" && env.climate !="Tundra" && env.climate !="tundra" && env.climate !="TUNDRA" && env.climate != "TROPICAL" && env.climate != "tropical" && env.climate !="Tropical" )){ cout<<"Please select from among specified options"<>env.grid_size_x; if(env.grid_size_x<1) { cin.clear(); cin.ignore(10000, ' '); goto gr_x; } gr_y: cout<>env.grid_size_y; if(env.grid_size_y<1) { cin.clear(); cin.ignore(10000, ' '); goto gr_y; } return env; } //health ranges from 0 to 10 int GetHealth(string climate, int age, int grid_x, int grid_y, int x, int y) { if(age<=3) //young ones will always have good health return GetRandomBetween(7,10); if(climate == "tundra" || climate == "TUNDRA") { if(y/grid_y >=.8) //for tundra the extremes are in the far north so that's where lowest health will be return GetRandomBetween(1,4); else //rest is average health return GetRandomBetween(4, 7); } else if(climate == "temperate" || climate == "TEMPERATE") { //extremes are non-existent but older generations are not resilient and will always have good health if(age>5) return GetRandomBetween(1,4); else GetRandomBetween(4,7); } else if(climate == "tropical" || climate == "TROPICAL") { if(y/grid_y <=.2) //extremes are in the south return GetRandomBetween(1,4); else //rest is average health return GetRandomBetween(4, 7); } } void PrintAnimals(Animal *animals, int size) { cout< 

Document the following data for each test: number, description, data, expected result, actual result, and pass/fail. Test representative input, functional coverage, boundary values, and special values.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Deductive And Object Oriented Databases Second International Conference Dood 91 Munich Germany December 18 1991 Proceedings Lncs 566

Authors: Claude Delobel ,Michael Kifer ,Yoshifumi Masunaga

1st Edition

3540550151, 978-3540550150

More Books

Students also viewed these Databases questions