Assess your Swift skills

I estimate it would take you 38 steps in 16 minutes to Assess your Swift skills.
What does the following code print to the console and why?

protocol Shape {}
class Triangle: Shape {}
class Circle {}
class Rectangle: Shape {}
var count = 0
[Circle(), Rectangle(), Triangle()].forEach { (item) in
if item is Shape {
count += 1
}
}
print(count)
1. It will print: 1, because the three objects are identical

2. It will print: 2, because not all types conform to Shape

3. It will print: 3, since we’ve got an array of three shape instances

4. It will print: 0, none of the instances are of type Shape
    Get Started   

    Or consider 25 other intentions.