Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] authored Aug 18, 2024
1 parent b2c448b commit e95b407
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 2 deletions.
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Codewars Handbook ☕️🚀

[![Views statistics +1 👀](https://img.shields.io/badge/dynamic/xml?color=success&label=views&query=//*[name()=%27text%27][3]&url=https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FParanoidUser%2Fcodewars-handbook)](https://hits.seeyoufarm.com/api/count/graph/dailyhits.svg?url=https://github.com/ParanoidUser/codewars-handbook)
[![Completed kata 👌](https://img.shields.io/badge/completed%20kata-68.5%25-red.svg)](https://www.codewars.com/kata/search/java?xids=completed)
[![Completed kata 👌](https://img.shields.io/badge/completed%20kata-68.6%25-red.svg)](https://www.codewars.com/kata/search/java?xids=completed)
[![CI pipeline 🛠](https://img.shields.io/github/actions/workflow/status/ParanoidUser/codewars-handbook/build.yml?branch=main)](https://github.com/ParanoidUser/codewars-handbook/actions/workflows/build.yml)
[![Quality gate 🔎](https://img.shields.io/sonar/alert_status/codewars-handbook?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/dashboard?id=codewars-handbook)
[![Let's have a chat! 📞](https://img.shields.io/gitter/room/ParanoidUser/codewars-handbook?color=49c39e)](https://gitter.im/ParanoidUser/codewars-handbook)
Expand All @@ -25,7 +25,7 @@ slug.

| [1 kyu](/kata/1-kyu/index.md) | [2 kyu](/kata/2-kyu/index.md) | [3 kyu](/kata/3-kyu/index.md) | [4 kyu](/kata/4-kyu/index.md) | [5 kyu](/kata/5-kyu/index.md) | [6 kyu](/kata/6-kyu/index.md) | [7 kyu](/kata/7-kyu/index.md) | [8 kyu](/kata/8-kyu/index.md) | [beta](/kata/beta/index.md) | [retired](/kata/retired/index.md) |
|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:---------------------------:|:---------------------------------:|
| 0 | 1 | 2 | 26 | 48 | 430 | 577 | 211 | 56 | 79 |
| 0 | 1 | 2 | 26 | 48 | 430 | 577 | 212 | 56 | 79 |

**Note:** The source code is written in Java 17 and may use language features that are incompatible
with Java 8, 11.
Expand Down
1 change: 1 addition & 0 deletions kata/8-kyu/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@
- [Switch it Up!](switch-it-up)
# T
- [The Feast of Many Beasts](the-feast-of-many-beasts)
- [The 'if' function](the-if-function)
- [The Wide-Mouthed frog!](the-wide-mouthed-frog)
- [Thinkful - Logic Drills: Traffic light](thinkful-logic-drills-traffic-light)
- [Thinkful - Number Drills: Blue and red marbles](thinkful-number-drills-blue-and-red-marbles)
Expand Down
13 changes: 13 additions & 0 deletions kata/8-kyu/the-if-function/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# [The 'if' function](https://www.codewars.com/kata/the-if-function "https://www.codewars.com/kata/54147087d5c2ebe4f1000805")

Create a function called `_if` which takes 3 arguments: a value `bool` and 2 functions (which do not take any
parameters): `func1` and `func2`

When `bool` is truthy, `func1` should be called, otherwise call the `func2`.

### Example:

```
Kata._if(true, () -> System.out.println("true"), () -> System.out.println("false"));
// prints "true" to the System out.
```
5 changes: 5 additions & 0 deletions kata/8-kyu/the-if-function/main/Kata.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
interface Kata {
static void _if(Boolean bool, Runnable func1, Runnable func2) {
(bool != null && bool ? func1 : func2).run();
}
}
19 changes: 19 additions & 0 deletions kata/8-kyu/the-if-function/test/SolutionTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.concurrent.atomic.AtomicBoolean;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

class SolutionTest {
@ParameterizedTest
@CsvSource(textBlock = """
true, true
false, false
, false
""")
void sample(Boolean bool, boolean expected) {
var actual = new AtomicBoolean(false);
Kata._if(bool, () -> actual.set(true), () -> actual.set(false));
assertEquals(expected, actual.get());
}
}

0 comments on commit e95b407

Please sign in to comment.