title: Check Line Passes Origin
signature: check_line_passes_origin <- function(x1, y1, x2, y2) {
test_code: 
  
  
  # SOLUTION CODE
  # ============================================
  PLACEHOLDER_CODE_BODY
  
  # TESTING CODE 
  # ============================================
  validate_solution <- function(actual, expected) {
      toString(actual)==toString(expected)
  }
  
  driver <- function(x1, y1, x2, y2, expected){
      if (validate_solution(PLACEHOLDER_FN_NAME(x1, y1, x2, y2), expected)){
          "PASSED"
      } else{
          "FAILED"
      }
  }
  
  main <- function() {
      cat(sprintf("TEST-0...%s\n",driver(
          1L, 28L, 2L, 56L, 
          TRUE
      )))
  
      cat(sprintf("TEST-1...%s\n",driver(
          10L, 0L, 20L, 0L, 
          TRUE
      )))
  
      cat(sprintf("TEST-2...%s\n",driver(
          0L, 1L, 0L, 17L, 
          TRUE
      )))
  
      cat(sprintf("TEST-3...%s\n",driver(
          1L, 1L, 10L, 10L, 
          TRUE
      )))
  
      cat(sprintf("TEST-4...%s\n",driver(
          82L, 86L, 19L, 4L, 
          FALSE
      )))
  
      cat(sprintf("TEST-5...%s\n",driver(
          78L, 86L, 11L, 6L, 
          FALSE
      )))
  
      cat(sprintf("TEST-6...%s\n",driver(
          13L, 46L, 33L, 33L, 
          FALSE
      )))
  
      cat(sprintf("TEST-7...%s\n",driver(
          18L, 29L, 95L, 12L, 
          FALSE
      )))
  
      cat(sprintf("TEST-8...%s\n",driver(
          42L, 35L, 25L, 36L, 
          FALSE
      )))
  
      cat(sprintf("TEST-9...%s\n",driver(
          29L, 17L, 45L, 35L, 
          FALSE
      )))
  
  }
  
  main()
source_py: def check_line_passes_origin(x1, y1, x2, y2):
      return ((x1 * (y2 - y1)) == (y1 * (x2 - x1)))
source_cpp: bool check_line_passes_origin(int x1, int y1, int x2, int y2) {
    return ( x1 * ( y2 - y1 ) == y1 * ( x2 - x1 ) );
  }