Skip to content

Commit

Permalink
Merge pull request #1229 from PetholzA/feature/20243105_python_fix_nm…
Browse files Browse the repository at this point in the history
…idistance

python: fix overlapping_nmi_distance + add test
  • Loading branch information
fabratu committed Jun 10, 2024
2 parents a2c22ad + 69d62bf commit 0021354
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
6 changes: 3 additions & 3 deletions networkit/community.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -1899,7 +1899,7 @@ cdef extern from "<networkit/community/OverlappingNMIDistance.hpp>" namespace "N
MAX,
JOINT_ENTROPY

class Normalization:
class Normalization(object):
MIN = _Normalization.MIN
GEOMETRIC_MEAN = _Normalization.GEOMETRIC_MEAN
ARITHMETIC_MEAN = _Normalization.ARITHMETIC_MEAN
Expand Down Expand Up @@ -2026,8 +2026,8 @@ cdef class OverlappingNMIDistance(DissimilarityMeasure):
return ret

def _validateNormalization(self, _Normalization normalization):
if normalization not in {OverlappingNMIDistance.Min, OverlappingNMIDistance.GeometricMean,
OverlappingNMIDistance.ArithmeticMean, OverlappingNMIDistance.Max, OverlappingNMIDistance.JointEntropy}:
if normalization not in {Normalization.MIN, Normalization.GEOMETRIC_MEAN,
Normalization.ARITHMETIC_MEAN, Normalization.MAX, Normalization.JOINT_ENTROPY}:
raise ValueError("Error, invalid normalization method")

class SpectralPartitioner:
Expand Down
10 changes: 10 additions & 0 deletions networkit/test/test_community.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,16 @@ def testNMIDistance(self):
PLPLLP = PLPLL.getPartition()
NMI = nk.community.NMIDistance()
self.assertIsInstance(NMI.getDissimilarity(self.LL, PLMLLP, PLPLLP),float)

def testOverlappingNMIDistance(self):
PLMLL = nk.community.PLM(self.LL)
PLMLL.run()
PLMLLP = PLMLL.getPartition()
PLPLL = nk.community.PLP(self.LL)
PLPLL.run()
PLPLLP = PLPLL.getPartition()
NMI_Distance = nk.community.OverlappingNMIDistance()
self.assertIsInstance(NMI_Distance.getDissimilarity(self.LL, PLMLLP, PLPLLP),float)

def testNodeStructuralRandMeasure(self):
PLMLL = nk.community.PLM(self.LL)
Expand Down

0 comments on commit 0021354

Please sign in to comment.