Ejemplo n.º 1
0
 def test_saw_float32(self):
     """Test the SAW method with float32 NumPy arrays."""
     z_matrix = np.array([[0.00, 1.00], [0.25, 0.75], [0.50, 0.50],
                          [0.75, 0.25], [1.00, 0.00]],
                         dtype=np.float32)
     is_benefit_z = [True, True]
     w_vector = np.array([0.5, 0.5], dtype=np.float32)
     obtained_s_vector, obtained_desc_order = mcdm.score(
         z_matrix, is_benefit_z, w_vector, "SAW")
     expected_s_vector = np.array([0.5, 0.5, 0.5, 0.5, 0.5],
                                  dtype=np.float64)
     expected_desc_order = True
     np.testing.assert_allclose(obtained_s_vector, expected_s_vector)
     self.assertEqual(obtained_s_vector.dtype, expected_s_vector.dtype)
     self.assertEqual(obtained_desc_order, expected_desc_order)
Ejemplo n.º 2
0
 def test_saw_simple_cost(self):
     """Test the SAW method with simple cost criteria."""
     z_matrix = np.array(
         [[0.5, 0.6, 0.3, 0.2, 0.9], [0.5, 0.5, 0.5, 0.5, 0.5],
          [0.5, 0.4, 0.7, 0.8, 0.1]],
         dtype=np.float64)
     is_benefit_z = [False, False, False, False, False]
     w_vector = np.array([0.0, 0.1, 0.2, 0.3, 0.4], dtype=np.float64)
     obtained_s_vector, obtained_desc_order = mcdm.score(
         z_matrix, is_benefit_z, w_vector, "SAW")
     expected_s_vector = np.array([0.54, 0.5, 0.46], dtype=np.float64)
     expected_desc_order = False
     np.testing.assert_allclose(obtained_s_vector, expected_s_vector)
     self.assertEqual(obtained_s_vector.dtype, expected_s_vector.dtype)
     self.assertEqual(obtained_desc_order, expected_desc_order)
Ejemplo n.º 3
0
 def test_mtopsis_balanced(self):
     """Test the mTOPSIS method with a balanced decision matrix."""
     z_matrix = np.array([[0.00, 1.00], [0.25, 0.75], [0.50, 0.50],
                          [0.75, 0.25], [1.00, 0.00]],
                         dtype=np.float64)
     is_benefit_z = [True, True]
     w_vector = np.array([0.5, 0.5], dtype=np.float64)
     obtained_s_vector, obtained_desc_order = mcdm.score(
         z_matrix, is_benefit_z, w_vector, "mTOPSIS")
     expected_s_vector = np.array([0.5, 0.5, 0.5, 0.5, 0.5],
                                  dtype=np.float64)
     expected_desc_order = True
     np.testing.assert_allclose(obtained_s_vector, expected_s_vector)
     self.assertEqual(obtained_s_vector.dtype, expected_s_vector.dtype)
     self.assertEqual(obtained_desc_order, expected_desc_order)
Ejemplo n.º 4
0
 def test_mtopsis_simple_mixture(self):
     """Test the mTOPSIS method with a mixture of criteria."""
     z_matrix = np.array(
         [[0.5, 0.6, 0.3, 0.2, 0.9], [0.5, 0.5, 0.5, 0.5, 0.5],
          [0.5, 0.4, 0.7, 0.8, 0.1]],
         dtype=np.float64)
     is_benefit_z = [True, False, True, True, True]
     w_vector = np.array([0.0, 0.1, 0.2, 0.3, 0.4], dtype=np.float64)
     obtained_s_vector, obtained_desc_order = mcdm.score(
         z_matrix, is_benefit_z, w_vector, "mTOPSIS")
     expected_s_vector = np.array([0.5714286, 0.5000000, 0.4285714],
                                  dtype=np.float64)
     expected_desc_order = True
     np.testing.assert_allclose(obtained_s_vector, expected_s_vector)
     self.assertEqual(obtained_s_vector.dtype, expected_s_vector.dtype)
     self.assertEqual(obtained_desc_order, expected_desc_order)
Ejemplo n.º 5
0
 def test_topsis_simple_benefit(self):
     """Test the TOPSIS method with simple benefit criteria."""
     z_matrix = np.array(
         [[0.5, 0.6, 0.3, 0.2, 0.9], [0.5, 0.5, 0.5, 0.5, 0.5],
          [0.5, 0.4, 0.7, 0.8, 0.1]],
         dtype=np.float64)
     is_benefit_z = [True, True, True, True, True]
     w_vector = np.array([0.0, 0.1, 0.2, 0.3, 0.4], dtype=np.float64)
     obtained_s_vector, obtained_desc_order = mcdm.score(
         z_matrix, is_benefit_z, w_vector, "TOPSIS")
     expected_s_vector = np.array([0.6194425, 0.5000000, 0.3805575],
                                  dtype=np.float64)
     expected_desc_order = True
     np.testing.assert_allclose(obtained_s_vector, expected_s_vector)
     self.assertEqual(obtained_s_vector.dtype, expected_s_vector.dtype)
     self.assertEqual(obtained_desc_order, expected_desc_order)
Ejemplo n.º 6
0
 def test_topsis_nested_list(self):
     """Test the TOPSIS method with nested lists."""
     z_matrix = [
         [0.00, 1.00],
         [0.25, 0.75],
         [0.50, 0.50],
         [0.75, 0.25],
         [1.00, 0.00],
     ]
     is_benefit_z = [True, True]
     w_vector = [0.5, 0.5]
     obtained_s_vector, obtained_desc_order = mcdm.score(
         z_matrix, is_benefit_z, w_vector, "TOPSIS")
     expected_s_vector = np.array([0.5, 0.5, 0.5, 0.5, 0.5],
                                  dtype=np.float64)
     expected_desc_order = True
     np.testing.assert_allclose(obtained_s_vector, expected_s_vector)
     self.assertEqual(obtained_s_vector.dtype, expected_s_vector.dtype)
     self.assertEqual(obtained_desc_order, expected_desc_order)