Tests for Task 4: Is transmission possible¶
This page describes the tests for Task 4. For each task, we provide a short description of the test, information about how to recreate the test in ipython3
, and the expected result.
To run the tasks for Task 4, run the following command at the Linux command-line:
$ py.test -xvk possible
When you run this command, you’ll see that some tests are labelled as SKIPPED
. You can ignore these tests for now,we’ll come back to them later when we introduce vaccines into our simulation.
Test 0¶
Description: Small city where everyone is susceptible.
To run this test in ipython3
:
city = [('S', 0), # loc: 0
('S', 0), # loc: 1
('S', 0), # loc: 2
('S', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: False
Test 1¶
Description: Small city where everyone is recovered
To run this test in ipython3
:
city = [('R', 0), # loc: 0
('R', 0), # loc: 1
('R', 0), # loc: 2
('R', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: False
Test 2¶
Description: Small city here everyone is infected
To run this test in ipython3
:
city = [('I', 0), # loc: 0
('I', 0), # loc: 1
('I', 0), # loc: 2
('I', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: False
Test 3¶
Description: Larger city with mix of susceptible and recovered people
To run this test in ipython3
:
city = [('R', 0), # loc: 0
('S', 0), # loc: 1
('R', 0), # loc: 2
('S', 0), # loc: 3
('R', 0), # loc: 4
('S', 0), # loc: 5
('R', 0), # loc: 6
('S', 0), # loc: 7
('R', 0), # loc: 8
('S', 0), # loc: 9
('R', 0), # loc: 10
('S', 0), # loc: 11
('R', 0), # loc: 12
('S', 0), # loc: 13
('R', 0), # loc: 14
('S', 0), # loc: 15
('R', 0), # loc: 16
('S', 0), # loc: 17
('R', 0), # loc: 18
('S', 0)] # loc: 19
sir.is_transmission_possible(city)
Expected result: False
Test 4¶
Description: Small city: susceptible person in location 1 has an infected neighbor
To run this test in ipython3
:
city = [('I', 1), # loc: 0
('S', 0), # loc: 1
('S', 0), # loc: 2
('S', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: True
Test 5¶
Description: Small city: susceptible people in locations 0 and 2 have infected neighbors
To run this test in ipython3
:
city = [('S', 0), # loc: 0
('I', 1), # loc: 1
('S', 0), # loc: 2
('S', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: True
Test 6¶
Description: Small city: susceptible people in locations 1 and 3 have infected neighbors
To run this test in ipython3
:
city = [('S', 0), # loc: 0
('S', 0), # loc: 1
('I', 1), # loc: 2
('S', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: True
Test 7¶
Description: Small city: susceptible people in locations 0 and 2 have infected neighbors
To run this test in ipython3
:
city = [('S', 0), # loc: 0
('S', 0), # loc: 1
('S', 0), # loc: 2
('I', 1)] # loc: 3
sir.is_transmission_possible(city)
Expected result: True
Test 8¶
Description: Small city with one infected in slot 0, rest recovered
To run this test in ipython3
:
city = [('I', 1), # loc: 0
('R', 0), # loc: 1
('R', 0), # loc: 2
('R', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: False
Test 9¶
Description: Larger city with a mix of infected and recovered people.
To run this test in ipython3
:
city = [('I', 0), # loc: 0
('I', 1), # loc: 1
('I', 0), # loc: 2
('I', 1), # loc: 3
('I', 0), # loc: 4
('I', 1), # loc: 5
('I', 0), # loc: 6
('R', 1), # loc: 7
('I', 0), # loc: 8
('I', 1), # loc: 9
('I', 0), # loc: 10
('R', 1), # loc: 11
('I', 0), # loc: 12
('I', 1), # loc: 13
('R', 2), # loc: 14
('I', 1), # loc: 15
('I', 0), # loc: 16
('I', 1), # loc: 17
('I', 3), # loc: 18
('I', 1)] # loc: 19
sir.is_transmission_possible(city)
Expected result: False
Test 10¶
Description: Larger city with one susceptible person who has an infected neighbor.
To run this test in ipython3
:
city = [('I', 0), # loc: 0
('I', 1), # loc: 1
('I', 0), # loc: 2
('I', 1), # loc: 3
('I', 0), # loc: 4
('I', 1), # loc: 5
('I', 0), # loc: 6
('R', 1), # loc: 7
('I', 0), # loc: 8
('S', 1), # loc: 9
('I', 0), # loc: 10
('I', 1), # loc: 11
('R', 0), # loc: 12
('I', 1), # loc: 13
('I', 2), # loc: 14
('I', 1), # loc: 15
('I', 0), # loc: 16
('R', 1), # loc: 17
('I', 3), # loc: 18
('R', 1)] # loc: 19
sir.is_transmission_possible(city)
Expected result: True
Test 11¶
Description: Larger city, more than one susceptible person with an infected neighbor.
To run this test in ipython3
:
city = [('I', 0), # loc: 0
('I', 1), # loc: 1
('I', 0), # loc: 2
('I', 1), # loc: 3
('I', 0), # loc: 4
('I', 1), # loc: 5
('I', 0), # loc: 6
('R', 1), # loc: 7
('I', 0), # loc: 8
('S', 1), # loc: 9
('I', 0), # loc: 10
('I', 1), # loc: 11
('R', 0), # loc: 12
('I', 1), # loc: 13
('I', 2), # loc: 14
('I', 1), # loc: 15
('I', 0), # loc: 16
('S', 1), # loc: 17
('I', 3), # loc: 18
('R', 1)] # loc: 19
sir.is_transmission_possible(city)
Expected result: True
Test 12¶
Description: Larger city, all susceptible people are protected by recovered people
To run this test in ipython3
:
city = [('I', 0), # loc: 0
('I', 1), # loc: 1
('I', 0), # loc: 2
('I', 1), # loc: 3
('I', 0), # loc: 4
('I', 1), # loc: 5
('I', 0), # loc: 6
('R', 1), # loc: 7
('R', 0), # loc: 8
('S', 1), # loc: 9
('S', 0), # loc: 10
('S', 1), # loc: 11
('R', 0), # loc: 12
('I', 1), # loc: 13
('I', 2), # loc: 14
('I', 1), # loc: 15
('I', 0), # loc: 16
('I', 1), # loc: 17
('I', 3), # loc: 18
('R', 1)] # loc: 19
sir.is_transmission_possible(city)
Expected result: False
Tests for Task 8, Part 2: Adding vaccinated people¶
This section describes tests for Part 2, Task 8, which includes vaccinated people. Work through these tests after you have completed Part 1 (Tasks 1-5).
To run the tasks for Part 2, Task 8, run the following command at the Linux command-line:
$ py.test -xvk possible --runvax
Test 0¶
Description: Small city with all vaxxed people
To run this test in ipython3
:
city = [('V', 0), # loc: 0
('V', 0), # loc: 1
('V', 0), # loc: 2
('V', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: False
Test 1¶
Description: Larger city with mix of susceptible, recovered, and vaxxed
To run this test in ipython3
:
city = [('R', 0), # loc: 0
('S', 0), # loc: 1
('R', 0), # loc: 2
('S', 0), # loc: 3
('R', 0), # loc: 4
('S', 0), # loc: 5
('R', 0), # loc: 6
('V', 0), # loc: 7
('R', 0), # loc: 8
('S', 0), # loc: 9
('R', 0), # loc: 10
('V', 0), # loc: 11
('R', 0), # loc: 12
('S', 0), # loc: 13
('R', 0), # loc: 14
('V', 0), # loc: 15
('R', 0), # loc: 16
('S', 0), # loc: 17
('R', 0), # loc: 18
('S', 0)] # loc: 19
sir.is_transmission_possible(city)
Expected result: False
Test 2¶
Description: Small city: infected followed by vaxxed
To run this test in ipython3
:
city = [('I', 1), # loc: 0
('V', 0), # loc: 1
('V', 0), # loc: 2
('V', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: True
Test 3¶
Description: Small city: susceptible and vaxxed vaxxed
To run this test in ipython3
:
city = [('V', 1), # loc: 0
('S', 0), # loc: 1
('V', 0), # loc: 2
('S', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: False
Test 4¶
Description: Small city: vaxxed person at location 1 has an infected neighbor.
To run this test in ipython3
:
city = [('V', 1), # loc: 0
('V', 0), # loc: 1
('I', 0), # loc: 2
('I', 0), # loc: 3
('R', 0)] # loc: 4
sir.is_transmission_possible(city)
Expected result: True
Test 5¶
Description: Small city: vaxxed person at location 1, susceptible person at location 3 have an infected neighbor.
To run this test in ipython3
:
city = [('V', 1), # loc: 0
('V', 0), # loc: 1
('I', 0), # loc: 2
('S', 0), # loc: 3
('R', 0)] # loc: 4
sir.is_transmission_possible(city)
Expected result: True
Test 6¶
Description: Small city: vaxxed person at location 1 has an infected neighbor.
To run this test in ipython3
:
city = [('I', 1), # loc: 0
('V', 0), # loc: 1
('S', 0), # loc: 2
('R', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: True
Test 7¶
Description: Small city: susceptible person at location 0 has an infected neighbor.
To run this test in ipython3
:
city = [('S', 1), # loc: 0
('V', 0), # loc: 1
('S', 0), # loc: 2
('I', 0)] # loc: 3
sir.is_transmission_possible(city)
Expected result: True
Test 8¶
Description: Larger city: several vaxxed and susceptible people have infected nighbors
To run this test in ipython3
:
city = [('I', 0), # loc: 0
('I', 1), # loc: 1
('V', 0), # loc: 2
('V', 1), # loc: 3
('V', 0), # loc: 4
('I', 1), # loc: 5
('I', 0), # loc: 6
('R', 1), # loc: 7
('I', 0), # loc: 8
('S', 1), # loc: 9
('I', 0), # loc: 10
('I', 1), # loc: 11
('R', 0), # loc: 12
('I', 1), # loc: 13
('I', 2), # loc: 14
('I', 1), # loc: 15
('I', 0), # loc: 16
('S', 1), # loc: 17
('I', 3), # loc: 18
('R', 1)] # loc: 19
sir.is_transmission_possible(city)
Expected result: True
Test 9¶
Description: Larger city: all vaxxed and susceptible people are protected by vaxed or recovered people
To run this test in ipython3
:
city = [('I', 0), # loc: 0
('I', 1), # loc: 1
('R', 0), # loc: 2
('V', 1), # loc: 3
('R', 0), # loc: 4
('I', 1), # loc: 5
('I', 0), # loc: 6
('R', 1), # loc: 7
('V', 0), # loc: 8
('S', 1), # loc: 9
('V', 0), # loc: 10
('R', 1), # loc: 11
('R', 0), # loc: 12
('I', 1), # loc: 13
('I', 2), # loc: 14
('I', 1), # loc: 15
('R', 0), # loc: 16
('S', 1), # loc: 17
('R', 3), # loc: 18
('R', 1)] # loc: 19
sir.is_transmission_possible(city)
Expected result: False