Skip to content

Instantly share code, notes, and snippets.

@miquelbeltran
Last active December 18, 2019 08:42
Show Gist options
  • Save miquelbeltran/f9fe58bad32355350900d5343fdb8fd4 to your computer and use it in GitHub Desktop.
Save miquelbeltran/f9fe58bad32355350900d5343fdb8fd4 to your computer and use it in GitHub Desktop.
Use the methods `any` and `every` to compare the user age.
bool anyUserUnder18(Iterable<User> users) {
// Implement this method
}
bool everyUserOver13(Iterable<User> users) {
// Implement this method
}
class User {
String name;
int age;
User(
this.name,
this.age,
);
}
bool anyUserUnder18(Iterable<User> users) {
return users.any((user) => user.age < 18);
}
bool everyUserOver13(Iterable<User> users) {
return users.every((user) => user.age > 13);
}
var users = [
User('Alice', 21),
User('Bob', 17),
User('Claire', 52),
];
void main() {
try {
var out = anyUserUnder18(users);
if (out == null) {
_result(false, [
'Tried running `anyUserUnder18`, but received a null value. '
'Did you implement the method?'
]);
return;
}
if (!out) {
_result(false, ['Looks like `anyUserUnder18` is wrong. Keep trying!']);
return;
}
} catch (e) {
_result(false,
['Tried running `anyUserUnder18`, but received an exception: $e']);
return;
}
try {
// with only one user older than 18, should be false
var out = anyUserUnder18([User('Alice', 21)]);
if (out) {
_result(false, [
'Looks like `anyUserUnder18` is wrong. What if all users are over 18?'
]);
return;
}
} catch (e) {
_result(false, [
'Tried running `anyUserUnder18([User("Alice", 21)])`, but received an exception: $e'
]);
return;
}
try {
var out = everyUserOver13(users);
if (out == null) {
_result(false, [
'Tried running `everyUserOver13`, but received a null value. '
'Did you implement the method?'
]);
return;
}
if (!out) {
_result(false, [
'Looks like `everyUserOver13` is wrong. There are no users under 13!'
]);
return;
}
} catch (e) {
_result(false, [
'Tried running `everyUserOver13`, but received an exception: $e'
]);
return;
}
try {
var out = everyUserOver13([User('Dan', 12)]);
if (out) {
_result(false, [
'Looks like `everyUserOver13` is wrong. There is at least one user under 13!'
]);
return;
}
} catch (e) {
_result(false, [
'Tried running `everyUserOver13([User(\'Dan\', 12)])`, but received an exception: $e'
]);
return;
}
_result(true);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment