@Test /** Tests the comparison tool. */ public void compare() { // Matrix with itself final FXMatrix fxMatrix1 = new FXMatrix(); fxMatrix1.addCurrency(GBP, EUR, GBP_EUR); fxMatrix1.addCurrency(USD, EUR, 1.0d / EUR_USD); assertTrue( "FXMatrixUtils - compare", FXMatrixUtils.compare(fxMatrix1, fxMatrix1, TOLERANCE_RATE)); // Matrix in a different order final FXMatrix fxMatrix2 = new FXMatrix(); fxMatrix2.addCurrency(EUR, USD, EUR_USD); fxMatrix2.addCurrency(GBP, EUR, GBP_EUR); assertTrue( "FXMatrixUtils - compare", FXMatrixUtils.compare(fxMatrix1, fxMatrix2, TOLERANCE_RATE)); // Matrix with different order rate final FXMatrix fxMatrix3 = new FXMatrix(); fxMatrix3.addCurrency(EUR, USD, EUR_USD + 1.0E-5); fxMatrix3.addCurrency(GBP, EUR, GBP_EUR); assertFalse( "FXMatrixUtils - compare", FXMatrixUtils.compare(fxMatrix1, fxMatrix3, TOLERANCE_RATE)); // Matrix with different currencies final FXMatrix fxMatrix4 = new FXMatrix(); fxMatrix4.addCurrency(GBP, EUR, GBP_EUR); fxMatrix4.addCurrency(USD, EUR, 1.0d / EUR_USD); fxMatrix4.addCurrency(KRW, USD, 1.0 / USD_KRW); assertFalse( "FXMatrixUtils - compare", FXMatrixUtils.compare(fxMatrix1, fxMatrix4, TOLERANCE_RATE)); }
@Test /** * Tests that a matrix constructed by adding currencies one by one or by merging by blocks returns * the same result. */ public void merge1() { final FXMatrix fxMatrixEURUSD = new FXMatrix(); fxMatrixEURUSD.addCurrency(EUR, USD, EUR_USD); // assertTrue("FXMatrixUtils - merge", FXMatrixUtils.compare(fxMatrixEURUSD, // FXMatrixUtils.merge(fxMatrixEURUSD, new FXMatrix()), TOLERANCE_RATE)); // assertTrue("FXMatrixUtils - merge", FXMatrixUtils.compare(fxMatrixEURUSD, // FXMatrixUtils.merge(new FXMatrix(), fxMatrixEURUSD), TOLERANCE_RATE)); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( fxMatrixEURUSD, FXMatrixUtils.merge(fxMatrixEURUSD, new FXMatrix(USD)), TOLERANCE_RATE)); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( fxMatrixEURUSD, FXMatrixUtils.merge(fxMatrixEURUSD, new FXMatrix(EUR)), TOLERANCE_RATE)); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( fxMatrixEURUSD, FXMatrixUtils.merge(new FXMatrix(USD), fxMatrixEURUSD), TOLERANCE_RATE)); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( fxMatrixEURUSD, FXMatrixUtils.merge(new FXMatrix(EUR), fxMatrixEURUSD), TOLERANCE_RATE)); final FXMatrix fxMatrixGBPEUR = new FXMatrix(); fxMatrixGBPEUR.addCurrency(GBP, EUR, GBP_EUR); final FXMatrix fxMatrixEURUSDGBP = new FXMatrix(); fxMatrixEURUSDGBP.addCurrency(EUR, USD, EUR_USD); fxMatrixEURUSDGBP.addCurrency(GBP, EUR, GBP_EUR); final FXMatrix merged = FXMatrixUtils.merge(fxMatrixEURUSD, fxMatrixGBPEUR); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare(merged, fxMatrixEURUSDGBP, TOLERANCE_RATE)); }
@Test /** Tests the merge with an empty matrix. */ public void merge3() { final FXMatrix fxMatrix1 = new FXMatrix(); fxMatrix1.addCurrency(EUR, USD, EUR_USD); fxMatrix1.addCurrency(KRW, USD, 1.0 / USD_KRW); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( fxMatrix1, FXMatrixUtils.merge(fxMatrix1, new FXMatrix()), TOLERANCE_RATE)); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( fxMatrix1, FXMatrixUtils.merge(new FXMatrix(), fxMatrix1), TOLERANCE_RATE)); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( fxMatrix1, FXMatrixUtils.merge(new FXMatrix(USD), fxMatrix1), TOLERANCE_RATE)); assertTrue( "FXMatrixUtils - merge", FXMatrixUtils.compare( new FXMatrix(), FXMatrixUtils.merge(new FXMatrix(), new FXMatrix()), TOLERANCE_RATE)); }