def test4d_duplicate(self): hv = hypervolume([[1, 1, 1, 1], [1, 1, 1, 1]]) self.assertEqual( hv.compute(r=(2, 2, 2, 2), algorithm=hv_algorithm.hv4d()), 1) self.assertEqual( hv.compute(r=(2, 2, 2, 2), algorithm=hv_algorithm.fpl()), 1) # Duplicate and dominated hv = hypervolume([[1, 1, 1, 1], [1, 1, 1, 1], [0, 0, 0, 0]]) self.assertEqual( hv.compute(r=(2, 2, 2, 2), algorithm=hv_algorithm.hv4d()), 16) self.assertEqual( hv.compute(r=(2, 2, 2, 2), algorithm=hv_algorithm.fpl()), 16)
def test_hv4d(self): hv3d = hypervolume(self.ps3d_0) hv4d = hypervolume(self.ps4d_0) self.assertEqual( 1.0, hv4d.compute(self.r4d_0, algorithm=hv_algorithm.hv4d())) self.assertRaises(ValueError, hv3d.compute, r=self.r3d_0, algorithm=hv_algorithm.hv4d()) self.assertRaises(ValueError, hv3d.compute, r=self.r4d_0, algorithm=hv_algorithm.hv4d()) self.assertRaises(ValueError, hv4d.compute, r=self.r3d_0, algorithm=hv_algorithm.hv4d())
def test_hv4d(self): hv3d = hypervolume(self.ps3d_0) hv4d = hypervolume(self.ps4d_0) self.assertEqual( 1.0, hv4d.compute(self.r4d_0, algorithm=hv_algorithm.hv4d())) self.assertRaises( ValueError, hv3d.compute, r=self.r3d_0, algorithm=hv_algorithm.hv4d()) self.assertRaises( ValueError, hv3d.compute, r=self.r4d_0, algorithm=hv_algorithm.hv4d()) self.assertRaises( ValueError, hv4d.compute, r=self.r3d_0, algorithm=hv_algorithm.hv4d())
def test4d_dominated(self): hv = hypervolume([[1, 1, 1, 1], [2, 2, 2, 2]]) self.assertEqual( hv.compute(r=(3, 3, 3, 3), algorithm=hv_algorithm.hv4d()), 16) self.assertEqual( hv.compute(r=(3, 3, 3, 3), algorithm=hv_algorithm.fpl()), 16)
def test4d_edge(self): hv = hypervolume([[1, 1, 1, 3], [2, 2, 2, 3]]) self.assertEqual( hv.compute(r=(3, 3, 3, 3), algorithm=hv_algorithm.hv4d()), 0) self.assertEqual( hv.compute(r=(3, 3, 3, 3), algorithm=hv_algorithm.fpl()), 0)