parse_input_test = TestCase (do
    p1 <- process_master_msg "INPUT" t_input1
    p5 <- process_master_msg "INPUT" t_input5
    assertEqual "1 input parsing type" (M_task_input (Task_input {input_flag = Done, inputs = [Input {input_id = 0, status = Ok, input_label = Protocol.Label 0, replicas = [Replica {replica_id = 0, replica_location = "disco://localhost/ddfs/vol0/blob/b"}]}]})) p1
    let M_task_input t1 = p1
    let [rep1] = (replicas . head . inputs) t1
    let rep_loc1 = replica_location rep1 
    assertEqual "1 input parsing replica location" "disco://localhost/ddfs/vol0/blob/b" rep_loc1
    let M_task_input t5 = p5
    let len5 = length $ inputs t5
    assertEqual "5 input parsing" 5 len5
    M_task_input t_mult <- process_master_msg "INPUT" inpt_msg
    let len_mult = length $ inputs t_mult
    assertEqual "Multiple input parsing" 10 len_mult)
parse_input_test = TestCase (do
    p1 <- process_master_msg "INPUT" t_input1
    p5 <- process_master_msg "INPUT" t_input5
    assertEqual "1 input parsing type" (M_task_input (Task_input {input_flag = Done, inputs = [Input {input_id = 0, status = Ok, input_label = Protocol.Label 0, replicas = [Replica {replica_id = 0, replica_location = "disco://localhost/ddfs/vol0/blob/b"}]}]})) p1
    let M_task_input t1 = p1
    let [rep1] = (replicas . head . inputs) t1
    let rep_loc1 = replica_location rep1 
    assertEqual "1 input parsing replica location" "disco://localhost/ddfs/vol0/blob/b" rep_loc1
    let M_task_input t5 = p5
    let len5 = length $ inputs t5
    assertEqual "5 input parsing" 5 len5
    M_task_input t_mult <- process_master_msg "INPUT" inpt_msg
    let len_mult = length $ inputs t_mult
    assertEqual "Multiple input parsing" 10 len_mult)
parse_input_test = TestCase (do
    p1 <- process_master_msg "INPUT" t_input1
    p5 <- process_master_msg "INPUT" t_input5
    assertEqual "1 input parsing type" (M_task_input (Task_input {input_flag = Done, inputs = [Input {input_id = 0, status = Ok, input_label = Protocol.Label 0, replicas = [Replica {replica_id = 0, replica_location = "disco://localhost/ddfs/vol0/blob/b"}]}]})) p1
    let M_task_input t1 = p1
    let [rep1] = (replicas . head . inputs) t1
    let rep_loc1 = replica_location rep1 
    assertEqual "1 input parsing replica location" "disco://localhost/ddfs/vol0/blob/b" rep_loc1
    let M_task_input t5 = p5
    let len5 = length $ inputs t5
    assertEqual "5 input parsing" 5 len5
    M_task_input t_mult <- process_master_msg "INPUT" inpt_msg
    let len_mult = length $ inputs t_mult
    assertEqual "Multiple input parsing" 10 len_mult)