title: Check Line Passes Origin
signature: checkLinePassesOrigin :: Integer -> Integer -> Integer -> Integer -> Bool
  checkLinePassesOrigin x1 y1 x2 y2 = 
test_code: import Text.Printf
  import Control.Exception (catch, SomeException)
  import Data.Typeable
  import qualified Data.List as List
  import qualified Data.Map as Map
  import qualified Data.Set as Set
  
  -- SOLUTION CODE
  -- ============================================
  
  PLACEHOLDER_CODE_BODY
  
  -- TESTING CODE 
  -- ============================================
  validateSolution :: Bool -> Bool -> Bool
  validateSolution actual expected = do
      actual == expected
  
  
  driver :: Integer -> Integer -> Integer -> Integer -> Bool -> String
  driver x1 y1 x2 y2 expected = do
      if (validateSolution (PLACEHOLDER_FN_NAME x1 y1 x2 y2) expected)
          then "PASSED"
      else "FAILED"
  
  main = do
      printf "TEST-0...%s\n" (driver (1) (28) (2) (56) (True) )
  
      printf "TEST-1...%s\n" (driver (10) (0) (20) (0) (True) )
  
      printf "TEST-2...%s\n" (driver (0) (1) (0) (17) (True) )
  
      printf "TEST-3...%s\n" (driver (1) (1) (10) (10) (True) )
  
      printf "TEST-4...%s\n" (driver (82) (86) (19) (4) (False) )
  
      printf "TEST-5...%s\n" (driver (78) (86) (11) (6) (False) )
  
      printf "TEST-6...%s\n" (driver (13) (46) (33) (33) (False) )
  
      printf "TEST-7...%s\n" (driver (18) (29) (95) (12) (False) )
  
      printf "TEST-8...%s\n" (driver (42) (35) (25) (36) (False) )
  
      printf "TEST-9...%s\n" (driver (29) (17) (45) (35) (False) )
  
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 ) );
  }