예제 #1
0
        for sim in similarities:
            dissimilarity_matrix.append(1 - sim)
    return dissimilarity_matrix


inputs_tan_dist_mat = [
    Args(fingerprints_str[0:3]),
    Args(fingerprints_str[0:1000])
]

exo_tan_dist_mat = ExerciseFunction(Tanimoto_distance_matrix_from_str,
                                    inputs_tan_dist_mat,
                                    call_renderer=PPrintCallRenderer(
                                        show_function=False,
                                        css_properties={
                                            'word-wrap': 'break-word',
                                            'max-width': '40em'
                                        },
                                    ))


def ClusterFps_from_str(fp_list_str, cutoff=0.2):
    fp_list = [
        DataStructs.cDataStructs.CreateFromBitString(fp_str)
        for fp_str in fp_list_str
    ]
    return ClusterFps(fp_list, cutoff=0.2)


# Input: Fingerprints and a threshold for the clustering
def ClusterFps(fps, cutoff=0.2):
예제 #2
0
        return ExerciseFunction.correction(
            self, exercice_compliant(student_comptage))

    # on recherche les noms des fichers d'entrée et de sortie
    # à utiliser pour l'exemple (ou le debug, on prend le même)
    # associés au premier jeu de données (self.datasets[0])
    # et là-dedans il nous faut regarder dans .args qui va contenir
    # un tuple avec les deux valeurs qu'on recherche
    def example(self):
        (in_file, out_file) = self.datasets[0].args
        return show_comptage(in_file,
                             out_file,
                             comptage=comptage,
                             suffix=".ok")

    def debug(self, student_comptage):
        (in_file, out_file) = self.datasets[0].args
        return show_comptage(in_file,
                             out_file,
                             comptage=student_comptage,
                             suffix="")


exo_comptage = ExoComptage(
    comptage,
    comptage_args,
    font_size='xx-small',
    call_renderer=PPrintCallRenderer(width=20),
    result_renderer=MultilineRenderer(),
)
예제 #3
0
from nbautoeval import Args, ExerciseFunction, PPrintCallRenderer


# @BEG@ name=longest_gap
def longest_gap(liste):
    result = 0
    begins = {}
    for index, item in enumerate(liste):
        if item not in begins:
            begins[item] = index
        else:
            result = max(result, index - begins[item])
    return result


# @END@

inputs = [
    Args([1, 2, 3, 1, 4, 10, 4, 3, -1, 4]),
    Args(["yes", "no", None, "yes", "no"]),
    Args([1, 2, 3, 4]),
]

exo_longest_gap = ExerciseFunction(
    longest_gap,
    inputs,
    nb_examples=0,
    call_renderer=PPrintCallRenderer(width=45),
)
예제 #4
0
# @BEG@ name=carre more=ter
def carre_ter(ligne):
    # On extrait toutes les valeurs séparées par des points-
    # virgules, on les nettoie avec la méthode strip
    # et on stocke le résultat dans une liste
    liste_valeurs = [t.strip() for t in ligne.split(';')]
    # Il ne reste plus qu'à calculer les carrés pour les
    # valeurs valides (non vides) et les remettre dans une str
    return ":".join([str(int(v)**2) for v in liste_valeurs if v])


# @END@

inputs_carre = [
    Args("1;2;3"),
    Args(" 2 ;  5;6;"),
    Args("; 12 ;  -23;\t60; 1\t"),
    Args("; -12 ; ; -23; 1 ;;\t"),
]

exo_carre = ExerciseFunction(carre,
                             inputs_carre,
                             nb_examples=0,
                             call_renderer=PPrintCallRenderer(
                                 show_function=False, width=40))


def carre_ko(s):
    return ":".join(str(i**2) for i in (int(token) for token in s.split(';')))
예제 #5
0

# @END@

wc_inputs = (
    Args('''Python is a programming language
that lets you work quickly
and integrate systems more effectively.'''),
    Args(''),
    Args('abc'),
    Args('abc \t'),
    Args('a  bc \t'),
    Args(' \tabc \n'),
    Args(" ".join("abcdefg") + "\n"),
    Args('''The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
...'''),
)

exo_wc = ExerciseFunction(wc,
                          wc_inputs,
                          call_renderer=PPrintCallRenderer(max_width=40,
                                                           show_function=True),
                          result_renderer=PPrintRenderer(width=15))
예제 #6
0
# @END@


# @BEG@ name=liste_P more=bis
# On peut bien entendu faire aussi de manière pédestre
def liste_P_bis(liste_x):
    liste_y = []
    for x in liste_x:
        liste_y.append(P(x))
    return liste_y


# @END@

inputs_liste_P = [
    Args(list(range(5))),
    Args(list(range(-7, 8, 2))),
    Args([-100, 0, 100]),
]

exo_liste_P = ExerciseFunction(
    liste_P,
    inputs_liste_P,
    call_renderer=PPrintCallRenderer(width=40, show_function=False),
    result_renderer=PPrintRenderer(width=25),
)


def liste_P_ko(liste):
    return [P(liste[0])]