even_or_odd <- function(n) {
  ifelse(abs(n/2 - as.integer(n/2)) == 0.5, "Odd", "Even")
}1 Even or Odd
8kyu Tantangan #1/366 - 15 Feb 2024
https://www.codewars.com/kata/53da3dbb4a5168369a0000fe
1.1 Instruction
Create a function that takes an integer as an argument and returns "Even" for even numbers or "Odd" for odd numbers.
1.2 YouTube Video
1.3 Solution Code
Solusi bar-bar
Solusi simple
even_or_odd <- function(n) {
  #  %% operator modulo
  ifelse(n %% 2 == 1, "Odd", "Even")
}even_or_odd <- function(n) c("Even", "Odd")[n %% 2 + 1]1.4 Test
library(testthat)
test_that('even_or_odd(1) returns "Odd"', {
  expect_equal(even_or_odd(1), "Odd")
})Test passed 🎉
test_that('even_or_odd(2) returns "Even"', {
  expect_equal(even_or_odd(2), "Even")
})Test passed 🌈
test_that('even_or_odd(0) returns "Even"', {
  expect_equal(even_or_odd(0), "Even")
})Test passed 🥇
test_that('even_or_odd(-1) returns "Odd"', {
  expect_equal(even_or_odd(-1), "Odd")
})Test passed 😸
test_that('even_or_odd(-2) returns "Even"', {
  expect_equal(even_or_odd(-2), "Even")
})Test passed 😸
