Skip to content

Commit

Permalink
Merge pull request #22 from raviola/test-pb727
Browse files Browse the repository at this point in the history
test for voting.py
  • Loading branch information
pberkes authored Sep 3, 2019
2 parents 8e70b56 + daeaefa commit 0e8c4d1
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
19 changes: 19 additions & 0 deletions hands_on/pyanno_voting/pyanno/tests/test_voting.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
from pyanno import voting
from pyanno.voting import MISSING_VALUE as MV

from math import isclose


def test_labels_count():
annotations = [
Expand Down Expand Up @@ -41,3 +43,20 @@ def test_majority_vote_empty_item():
expected = [1, MV, 2]
result = voting.majority_vote(annotations)
assert result == expected

def test_labels_frequency():
matrix = [
[1, 2, 2, -1],
[2, 2, 2, 2],
[1, 1, 3, 3],
[1, 3, 3, 2],
[-1, 2, 3, 1],
[-1, -1, -1, 3],
]
result = voting.labels_frequency(matrix, 4)

assert np.all([res != None for res in result])
assert len(result) == 4
assert np.all(voting.labels_frequency([[-1, -1, -1, -1],[-1, -1, -1, -1]], 4) == np.zeros(4))
assert np.all([i >= 0 and i <= 1 for i in result])
assert isclose(np.sum(result),1) or isclose(np.sum(result), 0,abs_tol=1e-12)
17 changes: 17 additions & 0 deletions hands_on/pyanno_voting/pyanno/voting.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,20 @@ def labels_frequency(annotations, nclasses):
freq[k] is the frequency of elements of class k in `annotations`, i.e.
their count over the number of total of observed (non-missing) elements
"""
annotations_array = np.ravel(annotations)
result = np.zeros(nclasses)

dim = 0
for number in annotations_array:
if number != -1:
dim = dim + 1
if dim !=0:
for cl in np.arange(nclasses):
aux = 0
for anot in annotations_array:
if cl == anot:
aux = aux + 1
result[cl] = aux / dim
return(result)
else:
return(0)

0 comments on commit 0e8c4d1

Please sign in to comment.