Write a well-commented Racket program using recursion to find the sum of all even numbers between 1 and 100. Ensure that the function takes in two parameters: a starting number and a range limit, and returns the sum of even numbers within this range. Additionally, include test cases and handle edge cases such as if the starting number is greater than the range limit or if the range limits are not even numbers. Use clear and concise variable names and formatting for easy readability.
user
```racket
# Racket Program: sumEvenNumbers Using Recursion

;; Function to find the sum of all even numbers between starting number and range limit
(define (sumEvenNumbers start range-limit)
  ;; Handle edge cases where starting number is greater than range limit
  (if (> start range-limit)
      0
      ;; Calculate the sum of all even numbers between starting number and range limit
      (+ (if (odd? start)
            (* 1 start)
            start) ; If start is odd, add 1 to it
          (if (oddp (sub1 range-limit)) ; If range-limit is odd, add 1
              (* 2 (sub1 range-limit)) ; Otherwise, add 2 times the range-limit
              (+ (sub1 range-limit) 1))))) ; Add 1 to the range-limit

;; Test Cases
(check-equal? (sumEvenNumbers 1 100) 2550)
(check-equal? (sumEvenNumbers 1 25) 150)
(check-equal? (sumEvenNumbers 10 25) 0)

;; Handle edge cases where range limit is not even
(check-equal? (sumEvenNumbers 1 5) 0)
```

### Explanation:

The `sumEvenNumbers` function takes in two parameters - `start` and `range-limit`, which represent the starting number and the range limit respectively. We check if `start` is greater than `range-limit` and return 0 if it is. Otherwise, we calculate the sum of all even numbers between `start` and `range-limit`. We first calculate `start` using the formula:

   sum = start + sum of even numbers between start + 1 and range-limit

We then check if `start` is odd, and add 1 to it if it is. Finally, we check if `range-limit` is odd, and add 1 to it if it is. If it isn't, we add 2 times the `range-limit`. Note that we use recursive call with `sub1` and then add 1 in the final sum. We also include test cases where
assistant
Write a well-commented Racket program using recursion to find the sum of all even numbers between 1 and 100. Ensure that the function takes in two parameters: a starting number and a range limit, and returns the sum of even numbers within this range. Additionally, include test cases and handle edge cases such as if the starting number is greater than the range limit or if the range limits are not even numbers. Use clear and concise variable names and formatting for easy readability.
user
#lang racket

(define (sum-even start limit)
  (cond
    ((or (> start limit) (odd? start) (odd? limit))
     0) ; return 0 if start is greater than limit or if start or limit is odd
    ((= start limit)
     (if (even? start)
         start
         0)) ; return start if it's the only number in the range and it's even
    ((even? start)
     (+ start (sum-even (+ start 2) limit))) ; add even start to the sum of even numbers between (start+2) and limit
    (else
     (sum-even (+ start 1) limit)) ; move to the next even number
    ))

; Test cases:
(check-equal? (sum-even 1 100) 2550) ; sum of all even numbers between 1 and 100
(check-equal? (sum-even 2 8) 20) ; sum of all even numbers between 2 and 8
(check-equal? (sum-even 9 19) 0) ; no even numbers in the range, return 0
(check-equal? (sum-even 10 10) 10) ; only one even number in the range, return that number
(check-equal? (sum-even 10 11) 10) ; even start, odd limit, return start
(check-equal? (sum-even 9 10) 0) ; odd start, even limit, return 0
(check-equal? (sum-even 100 1) 0) ; start is greater than limit, return 0
assistant