Improve punctuation in Structs koans
This commit is contained in:
@@ -5,12 +5,12 @@ defmodule Structs do
|
|||||||
defstruct [:name, :age ]
|
defstruct [:name, :age ]
|
||||||
end
|
end
|
||||||
|
|
||||||
koan "structs are defined and named after a module" do
|
koan "Structs are defined and named after a module" do
|
||||||
person = %Person{}
|
person = %Person{}
|
||||||
assert person == :__
|
assert person == :__
|
||||||
end
|
end
|
||||||
|
|
||||||
koan "you can access the fields of a struct" do
|
koan "You can access the fields of a struct" do
|
||||||
nobody = %Person{}
|
nobody = %Person{}
|
||||||
assert nobody.age == :__
|
assert nobody.age == :__
|
||||||
end
|
end
|
||||||
@@ -20,19 +20,19 @@ defmodule Structs do
|
|||||||
assert joe.name == :__
|
assert joe.name == :__
|
||||||
end
|
end
|
||||||
|
|
||||||
koan "update fields with the pipe '|' operator" do
|
koan "Update fields with the pipe '|' operator" do
|
||||||
joe = %Person{name: "Joe", age: 23}
|
joe = %Person{name: "Joe", age: 23}
|
||||||
older = %{ joe | age: joe.age + 10}
|
older = %{ joe | age: joe.age + 10}
|
||||||
assert older.age == :__
|
assert older.age == :__
|
||||||
end
|
end
|
||||||
|
|
||||||
koan "the original struct is not affected by updates" do
|
koan "The original struct is not affected by updates" do
|
||||||
joe = %Person{name: "Joe", age: 23}
|
joe = %Person{name: "Joe", age: 23}
|
||||||
assert %{ joe | age: joe.age + 10}.age == 33
|
assert %{ joe | age: joe.age + 10}.age == :__
|
||||||
assert joe.age == :__
|
assert joe.age == :__
|
||||||
end
|
end
|
||||||
|
|
||||||
koan "you can pattern match into the fields of a struct" do
|
koan "You can pattern match into the fields of a struct" do
|
||||||
%Person{age: age} = %Person{age: 22, name: "Silvia"}
|
%Person{age: age} = %Person{age: 22, name: "Silvia"}
|
||||||
assert age == :__
|
assert age == :__
|
||||||
end
|
end
|
||||||
@@ -41,13 +41,16 @@ defmodule Structs do
|
|||||||
defstruct passengers: 0, maker: :boeing
|
defstruct passengers: 0, maker: :boeing
|
||||||
end
|
end
|
||||||
|
|
||||||
koan "or onto the type of the struct itself" do
|
def plane?(%Plane{}), do: true
|
||||||
assert is_a_plane(%Plane{passengers: 417, maker: :boeing}) == :__
|
def plane?(_), do: false
|
||||||
|
|
||||||
|
koan "Or onto the type of the struct itself" do
|
||||||
|
assert plane?(%Plane{passengers: 417, maker: :boeing}) == :__
|
||||||
|
assert plane?(%Person{}) == :__
|
||||||
end
|
end
|
||||||
|
|
||||||
def is_a_plane(%Plane{}), do: true
|
|
||||||
|
|
||||||
koan "are basically maps" do
|
koan "Are basically maps" do
|
||||||
silvia = %Person{age: 22, name: "Silvia"}
|
silvia = %Person{age: 22, name: "Silvia"}
|
||||||
|
|
||||||
assert Map.fetch!(silvia, :age) == :__
|
assert Map.fetch!(silvia, :age) == :__
|
||||||
|
|||||||
@@ -110,9 +110,9 @@ defmodule KoansHarnessTest do
|
|||||||
nil,
|
nil,
|
||||||
"Joe",
|
"Joe",
|
||||||
33,
|
33,
|
||||||
23,
|
{:multiple, [33, 23]},
|
||||||
22,
|
22,
|
||||||
true,
|
{:multiple, [true, false]},
|
||||||
22,
|
22,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user