This exercise is intended to help you assess your progress with the concepts and techniques we've covered during the week.
When complete, fill out this form.
For these questions, write a short snippet of code that meets
the requirement. In cases where the question mentions a "given"
data value, use the variable given
to refer to it (instead of re-writing
the information).
2. Define a class called Student
which is instantiated with a "name" value and which has a method name
that returns this value
Given a hypothetical Pizza
class which has an instance method is_tasty?
that always
returns true, write a simple Minitest test that tests this behavior.
Suppose the Pizza
class also has a method style
which randomly returns one of:
"supreme"
, "mediterranean"
, or "cheese"
. Write a test that confirms that the
returned pizza style is within this list.
Define a Student
class which, when created, has an attitude
attribute.
attitude
should start out with the value "cheerful", and the Student
class should
provide a "reader" method that allows us to access the value of its attitude
.
Additionally, add an assign_homework
method to Student
. When assigned_homework
is
invoked, if the student's attitude
is "cheerful"
, it should become "dubious"
. If
the value is currently "dubious"
it should become "perturbed"
. If the value is currently
"perturbed"
, it should become "dazed"
. Assigning homework to a "dazed"
student has no
effect.
Building on the Student
class from the previous example, update the assign_homework
method
to accept an argument. The argument will be a String
containing a short description of the
assignment. For example we might use it like this:
s = Student.new
s.assign_homework("Write a linked list")
Then, add an assignments
method to Student
. assignments
should return a list of
all the assignments that have been given, separated by a comma and a space. For example:
s = Student.new
s.attitude
=> "cheerful"
s.assign_homework("write a linked list")
s.attitude
=> "dubious"
s.assign_homework("write a BST")
s.attitude
=> "perturbed"
s.assignments
=> "write a linked list, write a BST"
Create a new class SurlyStudent
which inherits from the Student
class above.
However, whenever you ask a SurlyStudent
for their attitude, they always respond
with "disgruntled"
For example:
s1 = Student.new
s2 = Student.new
s3 = Student.new
s1.assign_homework("linked list")
s1.assign_homework("sorting algos")
s2.assign_homework("write a c compiler")
s2.assign_homework("write a pacman game")
s3.assign_homework("headcount")
s3.assign_homework("sales engine")
students = [s1,s2,s3]
# YOUR CODE HERE
=> "linked list, sorting algos, write a c compiler, write a pacman game, headcount, sales engine"