> For the complete documentation index, see [llms.txt](https://bagus-cahyono.gitbook.io/programming-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bagus-cahyono.gitbook.io/programming-notes/rust/rustlings_exercise/quiz_1.md).

# Quiz 1

```rust
// This is a quiz for the following sections:
// - Variables
// - Functions
// - If
//
// Mary is buying apples. The price of an apple is calculated as follows:
// - An apple costs 2 rustbucks.
// - However, if Mary buys more than 40 apples, the price of each apple in the
// entire order is reduced to only 1 rustbuck!

// TODO: Write a function that calculates the price of an order of apples given
// the quantity bought.
// fn calculate_price_of_apples(???) -> ??? { ??? }

fn main() {
    // You can optionally experiment here.
}

// Don't change the tests!
#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn verify_test() {
        assert_eq!(calculate_price_of_apples(35), 70);
        assert_eq!(calculate_price_of_apples(40), 80);
        assert_eq!(calculate_price_of_apples(41), 41);
        assert_eq!(calculate_price_of_apples(65), 65);
    }
}
```

* In this quiz we are tasked to build a function to calculate price of apples.
* Single apple cost `2`.
* But if we buy more than `40` apples, each apple cost `1`.
* So the function `calculate_price_of_apples` should be like this:

  ```rust
  fn calculate_price_of_apples(x: i32) -> i32 {
    if x > 40 {
      x
    } else {
      x * 2
    }
  }
  ```

## Reference

* <https://doc.rust-lang.org/rust-by-example/flow_control/if_else.html>
