From 440483c07375e5b841dfe1a19a418d82dffeef6a Mon Sep 17 00:00:00 2001 From: Tiago Freitas Pereira <tiagofrepereira@gmail.com> Date: Tue, 26 Apr 2016 12:54:30 +0200 Subject: [PATCH] Fixed issue #16 --- bob/bio/base/algorithm/Distance.py | 2 +- bob/bio/base/test/test_algorithms.py | 31 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/bob/bio/base/algorithm/Distance.py b/bob/bio/base/algorithm/Distance.py index a3d91aa3..efde5502 100644 --- a/bob/bio/base/algorithm/Distance.py +++ b/bob/bio/base/algorithm/Distance.py @@ -89,7 +89,7 @@ class Distance (Algorithm): probe : object The probe. """ - return utils.load(feature_file) + return utils.load(probe_file) def score(self, model, probe): diff --git a/bob/bio/base/test/test_algorithms.py b/bob/bio/base/test/test_algorithms.py index 66fd5881..f479f737 100644 --- a/bob/bio/base/test/test_algorithms.py +++ b/bob/bio/base/test/test_algorithms.py @@ -216,6 +216,37 @@ def test_lda(): + +def test_distance(): + + import scipy.spatial + + # assure that the configurations are loadable + distance = bob.bio.base.load_resource("distance-cosine", "algorithm", preferred_package = 'bob.bio.base') + assert isinstance(distance, bob.bio.base.algorithm.Distance) + assert isinstance(distance, bob.bio.base.algorithm.Algorithm) + + assert distance.performs_projection==False + assert distance.requires_projector_training==False + assert distance.use_projected_features_for_enrollment == False + assert distance.split_training_features_by_client == False + assert distance.requires_enroller_training == False + + distance = bob.bio.base.algorithm.Distance( + distance_function = scipy.spatial.distance.cosine, + is_distance_function = True + ) + + # compare model with probe + enroll = utils.random_training_set(5, 5, 0., 255., seed=21); + model = numpy.mean(distance.enroll(enroll),axis=0) + probe = distance.read_probe(pkg_resources.resource_filename('bob.bio.base.test', 'data/lda_projected.hdf5')) + + reference_score = -0.1873371 + assert abs(distance.score(model, probe) - reference_score) < 1e-5, "The scores differ: %3.8f, %3.8f" % (distance.score(model, probe), reference_score) + + + def test_bic(): temp_file = bob.io.base.test_utils.temporary_filename() # assure that the configurations are loadable -- GitLab