public function compare(Request $request)
 {
     //required|mimes:csv
     $this->validate($request, ['file1' => 'required', 'file2' => 'required', 'confidencemin' => 'required|max:50|numeric|min:10', 'maxdifftransdate' => 'required|numeric|max:300|min:10', 'transamountweight' => 'required|numeric|max:1|min:0', 'transdateweight' => 'required|numeric|max:1|min:0', 'transnarrativeweight' => 'required|numeric|max:1|min:0', 'transwalletrefweight' => 'required|numeric|max:1|min:0', 'transidweight' => 'required|numeric|max:1|min:0']);
     $file1Name = $request->file('file1')->getClientOriginalName();
     $uploadPath = public_path() . '/uploads';
     $request->file('file1')->move($uploadPath, $file1Name);
     $file2Name = $request->file('file2')->getClientOriginalName();
     $request->file('file2')->move($uploadPath, $file2Name);
     $file1Path = $uploadPath . '/' . $file1Name;
     $file2Path = $uploadPath . '/' . $file2Name;
     $request->session()->flush();
     //Init the weight of each criteria
     ReconciliationUtils::$maxdiffdate = $request->input('maxdifftransdate');
     ReconciliationUtils::$minconfidencescore = $request->input('confidencemin');
     ReconciliationUtils::$amountweight = $request->input('transamountweight');
     ReconciliationUtils::$walletrefweight = $request->input('transwalletrefweight');
     ReconciliationUtils::$dateweight = $request->input('transdateweight');
     ReconciliationUtils::$idweight = $request->input('transidweight');
     ReconciliationUtils::$narrativeweight = $request->input('transnarrativeweight');
     $compareFile1ToFile2Result = ReconciliationUtils::compareFile($file1Path, $file2Path);
     $compareFile1ToFile2Result['FILE1_NAME'] = $file1Name;
     $request->session()->put('FILE1_DATA', $compareFile1ToFile2Result);
     $compareFile2ToFile1Result = ReconciliationUtils::compareFile($file2Path, $file1Path);
     $compareFile2ToFile1Result['FILE2_NAME'] = $file2Name;
     $request->session()->put('FILE2_DATA', $compareFile2ToFile1Result);
     return redirect('/reconciliation?results=true')->withSuccess("Comparison done!");
 }
 /**
  * Test that we cannot find a suggestion for a transaction
  *
  * @return void
  */
 public function testCannotFindSuggestion()
 {
     $uploadPath = public_path() . '/uploads';
     $result = ReconciliationUtils::compareFile($uploadPath . '/test3File1.csv', $uploadPath . '/test3File2.csv');
     $this->assertEquals(0, isset($result['UNMATCHED_TRANSACTIIONS'][2]['SUGGESTIONS']));
 }