assert_eq!(txn_id,act.wr_txn,"update-lost!! action-{} of txn({},{}) read value from ({},{},{}) instead from the txn.",act_id,node_id+1,txn_id,act.wr_node,act.wr_txn,act.wr_pos);
assert_eq!(node_id+1,act.wr_node,"update-lost!! action-{} of txn({},{}) read value from ({},{},{}) instead from the txn.",act_id,node_id+1,txn_id,act.wr_node,act.wr_txn,act.wr_pos);
assert_eq!(*pos,act.wr_pos,"update-lost!! action-{} of txn({},{}) read value from ({},{},{}) instead from the txn.",act_id,node_id+1,txn_id,act.wr_node,act.wr_txn,act.wr_pos);
}else{
ifact.wr_node!=0{
assert_eq!(
*txn_last_writes
.get(&(act.wr_node,act.wr_txn))
.unwrap()
.get(&act.var)
.unwrap(),
act.wr_pos,
"non-committed read!! action-{} of txn({},{}) read value from ({},{},{}) instead from the txn.",act_id,node_id+1,txn_id,act.wr_node,act.wr_txn,act.wr_pos
assert_eq!(*wr_node,act.wr_node,"non-repeatable read!! action-{} of txn({},{}) read value from ({},{},{}) instead as the last read.",act_id,node_id+1,txn_id,act.wr_node,act.wr_txn,act.wr_pos);
assert_eq!(*wr_txn,act.wr_txn,"non-repeatable read!! action-{} of txn({},{}) read value from ({},{},{}) instead as the last read.",act_id,node_id+1,txn_id,act.wr_node,act.wr_txn,act.wr_pos);
assert_eq!(*wr_pos,act.wr_pos,"non-repeatable read!! action-{} of txn({},{}) read value from ({},{},{}) instead as the last read.",act_id,node_id+1,txn_id,act.wr_node,act.wr_txn,act.wr_pos);