예제 #1
0
 def test_dame_namsor_get_method_returns_correct_result(self):
     g = DameNamsor()
     self.assertEqual(['male', -1.0], g.get("David", "Arroyo",
                                            binary=False))
     self.assertEqual(['male', -1.0], g.get("David", "Arroyo", binary=True))
     self.assertEqual(['female', 1.0], g.get("Karen", "Arroyo",
                                             binary=True))
예제 #2
0
 def average(self, name, surname):
     r = 0
     count = 0
     avg = 0
     dgg = DameGenderGuesser()
     guess1 = int(dgg.guess(name, binary="True"))
     if (guess1 != 2):
         r = r + guess1
         count = count + 1
     if (self.config['DEFAULT']['genderapi'] == 'yes'):
         dga = DameGenderApi()
         guess2 = int(dga.guess(name, binary="True"))
         if (guess2 != 2):
             r = r + guess2
             count = count + 1
     if (self.config['DEFAULT']['genderize'] == 'yes'):
         dg = DameGenderize()
         guess3 = int(dg.guess(name, binary="True"))
         if (guess3 != 2):
             r = r + guess3
             count = count + 1
     if (self.config['DEFAULT']['namsor'] == 'yes'):
         dn = DameNamsor()
         guess4 = int(dn.guess(str(name), str(surname), binary="True"))
         if (guess4 != 2):
             r = r + guess4
             count = count + 1
     avg = r / count
     return avg
예제 #3
0
 def test_dame_namsor_accuracy_score_dame(self):
     dn = DameNamsor()
     score1 = dn.accuracy_score_dame([1, 1], [1, 1])
     self.assertEqual(score1, 1)
     score2 = dn.accuracy_score_dame([1, 1, 1, 0], [1, 1, 2, 0])
     self.assertEqual(score2, 0.75)
     score3 = dn.accuracy_score_dame([1, 1, 1, 1, 2, 1], [1, 1, 1, 1, 2, 1])
     self.assertEqual(score3, 1)
예제 #4
0
 def test_dame_namsor_json2guess_list(self):
     dn = DameNamsor()
     j2gl = dn.json2guess_list(
         jsonf="files/names/namsorfiles_names_min.csv.json", binary=False)
     self.assertEqual(['male', 'male', 'male', 'male', 'male', 'female'],
                      j2gl)
     j2gl = dn.json2guess_list(
         jsonf="files/names/namsorfiles_names_min.csv.json", binary=True)
     self.assertEqual([1, 1, 1, 1, 1, 0], j2gl)
예제 #5
0
 def test_dame_namsor_accuracy_score_dame_method_returns_correct_result(
         self):
     g = DameNamsor()
     score1 = g.accuracy_score_dame([1, 1], [1, 1])
     self.assertEqual(score1, 1)
     score2 = g.accuracy_score_dame([1, 1, 1, 0], [1, 1, 2, 0])
     self.assertEqual(score2, 0.75)
     score3 = g.accuracy_score_dame([1, 1, 1, 1, 2, 1], [1, 1, 1, 1, 2, 1])
     self.assertEqual(score3, 1)
예제 #6
0
 def test_dame_namsor_get(self):
     dn = DameNamsor()
     if (dn.config['DEFAULT']['namsor'] == 'yes'):
         l1 = dn.get("David", "Arroyo", binary=False)
         self.assertEqual(['male', -1.0], [l1[0], round(l1[1])])
         l2 = dn.get("David", "Arroyo", binary=True)
         self.assertEqual(['male', -1.0], [l2[0], round(l2[1])])
         l3 = dn.get("Karen", "Arroyo", binary=True)
         self.assertEqual(['female', 1.0], [l3[0], round(l3[1])])
예제 #7
0
 def test_dame_namsor_download(self):
     dn = DameNamsor()
     du = DameUtils()
     path1 = "files/names/min.csv"
     if (dn.config['DEFAULT']['namsor'] == 'yes'):
         g = dn.download(path1)
         self.assertTrue(
             os.path.isfile("files/names/namsor" + du.path2file(path1) +
                            ".json"))
예제 #8
0
 def test_dame_namsor_gender_list(self):
     dn = DameNamsor()
     gl = dn.gender_list(path="files/names/partial.csv")
     self.assertEqual(
         gl,
         [1, 1, 1, 1, 2, 1, 0, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1])
     self.assertEqual(len(gl), 21)
     self.assertEqual(dn.females, 3)
     self.assertEqual(dn.males, 16)
     self.assertEqual(dn.unknown, 2)
예제 #9
0
 def test_dame_namsor_gender_list_method_returns_correct_result(self):
     g = DameNamsor()
     gl = g.gender_list()
     self.assertEqual(
         gl,
         [1, 1, 1, 1, 2, 1, 0, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1])
     self.assertEqual(len(gl), 21)
     self.assertEqual(g.females, 3)
     self.assertEqual(g.males, 16)
     self.assertEqual(g.unknown, 2)
예제 #10
0
 def test_dame_namsor_guess_list_method_returns_correct_result(self):
     g = DameNamsor()
     self.assertEqual([
         'male', 'male', 'male', 'male', 'male', 'male', 'female', 'female',
         'male', 'male', 'male', 'male', 'male', 'male', 'male', 'male',
         'male', 'male', 'female', 'male', 'male'
     ], g.guess_list(path="files/names/partial.csv", binary=False))
     self.assertEqual(
         [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1],
         g.guess_list(path="files/names/partial.csv", binary=True))
예제 #11
0
 def test_dame_namsor_guess_list(self):
     dn = DameNamsor()
     if (dn.config['DEFAULT']['namsor'] == 'yes'):
         self.assertEqual([
             'male', 'male', 'male', 'male', 'male', 'male', 'female',
             'female', 'male', 'male', 'male', 'male', 'male', 'male',
             'male', 'male', 'male', 'male', 'female', 'male', 'male'
         ], dn.guess_list(path="files/names/partial.csv", binary=False))
         self.assertEqual([
             1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1
         ], dn.guess_list(path="files/names/partial.csv", binary=True))
예제 #12
0
 def test_dame_namsor_gender_guess(self):
     dn = DameNamsor()
     if (dn.config['DEFAULT']['namsor'] == 'yes'):
         self.assertEqual(1, dn.guess("David", "Arroyo", binary=True))
         self.assertEqual(0, dn.guess("Andrea", "Arroyo", binary=True))
         self.assertEqual(1, dn.guess("Asdf", "qwer", binary=True))
예제 #13
0
 def test_dame_namsor_scale(self):
     dn = DameNamsor()
     if (dn.config['DEFAULT']['namsor'] == 'yes'):
         self.assertEqual(-1.0, round(dn.scale("David", "Arroyo")))
예제 #14
0
 def test_dame_namsor_getGeo(self):
     dn = DameNamsor()
     if (dn.config['DEFAULT']['namsor'] == 'yes'):
         l1 = dn.get("David", "Arroyo", binary=False)
         self.assertEqual(['male', -1.0], [l1[0], round(l1[1])])
예제 #15
0
 def test_dame_namsor_scale_method_returns_correct_result(self):
     g = DameNamsor()
     self.assertEqual(-1.0, g.scale("David", "Arroyo"))
예제 #16
0
 def test_dame_namsor_init_method_returns_correct_result(self):
     g = DameNamsor()
     self.assertEqual(g.males, 0)
     self.assertEqual(g.females, 0)
     self.assertEqual(g.unknown, 0)
예제 #17
0
                    choices=['accuracy', 'precision', 'recall', 'f1score'])
parser.add_argument('--api',
                    required=True,
                    choices=[
                        'customsearch', 'namsor', 'genderize', 'genderguesser',
                        'damegender', 'genderapi', 'nameapi', 'all'
                    ])
args = parser.parse_args()

du = DameUtils()

if (args.api == "all"):
    dg = Gender()

    if (dg.config['DEFAULT']['namsor'] == 'yes'):
        dn = DameNamsor()
        dn.pretty_gg_list(path=args.csv,
                          jsonf=args.jsondownloaded,
                          measure=args.measure,
                          api='Namsor')

    if (dg.config['DEFAULT']['genderize'] == 'yes'):
        dg = DameGenderize()
        dg.pretty_gg_list(path=args.csv,
                          jsonf=args.jsondownloaded,
                          measure=args.measure,
                          api='Genderize')

    dgg = DameGenderGuesser()
    dgg.pretty_gg_list(path=args.csv,
                       jsonf=args.jsondownloaded,
예제 #18
0
 def test_dame_namsor_features_list_method_returns_correct_result(self):
     g = DameNamsor()
     fl = g.features_list()
     self.assertTrue(len(fl) > 20)
예제 #19
0
 def test_dame_namsor_features_list(self):
     dn = DameNamsor()
     fl = dn.features_list()
     self.assertTrue(len(fl) > 20)
예제 #20
0
 def test_dame_namsor_json2names(self):
     dn = DameNamsor()
     l = dn.json2names(jsonf="files/names/namsorfiles_names_min.csv.json")
     self.assertEqual(
         ['Pierre', 'Raul', 'Adriano', 'Ralf', 'Guillermo', 'Sabina'], l)
예제 #21
0
 def test_dame_namsor_init(self):
     g = DameNamsor()
     self.assertEqual(g.males, 0)
     self.assertEqual(g.females, 0)
     self.assertEqual(g.unknown, 0)
예제 #22
0
    gl1 = d.gender_list(path=args.csv)
    if (os.path.isfile(args.jsondownloaded)):
        gl2 = d.json2guess_list(jsonf=args.jsondownloaded, binary=True)
    else:
        gl2 = d.guess_list(path=args.csv, binary=True)
#    gl2 = d.guess_list(path=args.csv, binary=True)
    ec = d.error_coded(gl1, gl2)
    print("+ The error code: %s" % ec)
    ecwa = d.error_coded_without_na(gl1, gl2)
    print("+ The error code without na: %s" % ecwa)
    naCoded = d.na_coded(gl1, gl2)
    print("+ The na coded: %s" % naCoded)
    egb = d.error_gender_bias(gl1, gl2)
    print("+ The error gender bias: %s" % egb)
elif (args.api == "namsor"):
    d = DameNamsor()
    print("Namsor with %s has: " % args.csv)
    gl1 = d.gender_list(path=args.csv)
    if (os.path.isfile(args.jsondownloaded)):
        gl2 = d.json2guess_list(jsonf=args.jsondownloaded, binary=True)
    else:
        gl2 = d.guess_list(path=args.csv, binary=True)
    ec = d.error_coded(gl1, gl2)
    print("+ The error code: %s" % ec)
    ecwa = d.error_coded_without_na(gl1, gl2)
    print("+ The error code without na: %s" % ecwa)
    naCoded = d.na_coded(gl1, gl2)
    print("+ The na coded: %s" % naCoded)
    egb = d.error_gender_bias(gl1, gl2)
    print("+ The error gender bias: %s" % egb)
예제 #23
0
 def test_dame_namsor_gender_guess_method_returns_correct_result(self):
     g = DameNamsor()
     self.assertEqual(1, g.guess("David", "Arroyo", binary=True))
     self.assertEqual(0, g.guess("Andrea", "Arroyo", binary=True))
     self.assertEqual(0, g.guess("Asdf", "qwer", binary=True))