Ejemplo n.º 1
0
 def test_string_representation(self):
     self.assertEqual(
         repr(Comparator(5, delta=0.1)),
         "Comparator(5, delta=0.1)",
     )
     self.assertEqual(repr(Comparator(5)), "Comparator(5, delta=1e-07)")
     self.assertEqual(str(Comparator(5)), "Comparator(5, delta=1e-07)")
Ejemplo n.º 2
0
 def test_arithmetic_and_comparisons_with_comparators(self):
     five = Comparator(5, delta=0.1)
     six = Comparator(6, delta=0.1)
     seven = Comparator(7, delta=0.5)
     self.assertEqual(five + six, 11.1)
     self.assertNotEqual(five + six, 11.2)
     self.assertEqual(five + seven, 12.1)
     self.assertEqual(five + seven, 12.5)
     self.assertEqual(seven + five, 12.5)
     self.assertNotEqual(five + seven, 12.6)
Ejemplo n.º 3
0
 def test_default_delta_context_manager(self):
     with Comparator.default_delta(0.5):
         self.assertEqual(Comparator(5), 5.5)
         self.assertNotEqual(Comparator(5), 5.6)
         self.assertNotEqual(Comparator(5, delta=0.1), 5.5)
     self.assertNotEqual(Comparator(5), 5.5)
     try:
         with Comparator.default_delta(0.5):
             raise ValueError
     except ValueError:
         pass
     self.assertNotEqual(Comparator(5), 5.5)
Ejemplo n.º 4
0
 def test_addition_and_subtraction(self):
     self.assertEqual(Comparator(5, delta=0.1) + 6, 11.1)
     self.assertEqual(6 + Comparator(5, delta=0.1), 10.9)
     self.assertNotEqual(Comparator(5, delta=0.1) + 6, 11.2)
     self.assertNotEqual(6 + Comparator(5, delta=0.1) + 6, 10.8)
     self.assertEqual(Comparator(7, delta=0.1) - 6, 1.05)
     self.assertNotEqual(Comparator(7, delta=0.1) - 6, 1.2)
     self.assertEqual(7 - Comparator(7, delta=0.1), 0.05)
     self.assertNotEqual(7 - Comparator(7, delta=0.1), 0.11)
     self.assertEqual(6 - Comparator(7, delta=0.1), -1.05)
Ejemplo n.º 5
0
 def __init__(self, server):
     self.server = server
     self.deck = createCards()
     self.table = []
     self.clients = []
     self.comparator = Comparator()
     self.rise_client = None
Ejemplo n.º 6
0
    def detect_single(self, img, mask):
        thresholds = [0.4] * 7
        thresholds[1] = 0.7
        thresholds[2] = 0.3
        labels, self.nodes = img_to_nodes(img, mask)
        self.comparator = Comparator(self.nodes, labels)

        res = []

        for dots in range(6, 0, -1):
            matches = []
            for node in tqdm(self.nodes.values()):
                matches.append(self.detect_with_node(node, dots))

            matches.sort(key=itemgetter(0))
            for m in matches:
                if m[0] > thresholds[dots]:
                    break
                vis = False
                for n in m[1]:
                    if n.visited:
                        vis = True
                if vis:
                    continue
                pattern = self.comparator.get_pattern(m[1], dots)
                res.append((find_contours(pattern, 0.5)[0], dots))
                print(m[0])
                for n in m[2]:
                    print(n.a, end=' ')
                    n.visited = True
                print(' ')

        return res
Ejemplo n.º 7
0
 def __init__(self, number_of_gaussian):
     self.ng = number_of_gaussian
     self.gmm = GMM(number_of_gaussian)
     self.comparator_with_impostor = ComparatorWithImpostor(
         number_of_gaussian)
     self.comparator = Comparator(number_of_gaussian)
     self.cross_validator = CrossValidation(0.3)
Ejemplo n.º 8
0
 def onClicked_CreateNewComparator(self):
     toAddUids = self.qMainTreev.getSelectedItemUids()
     if toAddUids:
         comp = Comparator()
         for uid in toAddUids:
             entry = self.compTableModel.ADB.getEntryByUid(uid)
             comp.addEntry(entry)
         self.addTab1_new(comp)
Ejemplo n.º 9
0
 def __init__(self, server):
     self.server = server
     self.deck = createCards()
     self.table = []
     self.clients = []
     self.comparator = Comparator()
     self.rise_client = None
     self.bet = 0
     self.bank = 0
     self.big_blind = 100
Ejemplo n.º 10
0
    def create(scripts_processor: "ScriptSetProcessor",
               directive_provider: DirectiveProvider, python_version: str,
               source_script: SourceScript):
        comparator = Comparator({'python_version': python_version})

        def local_is_true(args: List[str]):
            return comparator.check(args[0], args[1], args[2])

        branch_processor = BranchProcessor(local_is_true)

        return DirectiveProcessor(scripts_processor, branch_processor,
                                  directive_provider)
Ejemplo n.º 11
0
 def test_equality_with_default_delta(self):
     self.assertEqual(Comparator(5), 4.99999999)
     self.assertEqual(Comparator(5), 5.00000001)
     self.assertEqual(5, Comparator(4.99999999))
     self.assertEqual(5, Comparator(5.00000001))
     self.assertNotEqual(Comparator(5), 4.99999)
     self.assertNotEqual(Comparator(5), 5.00001)
Ejemplo n.º 12
0
    def setComparatorToShow(self, cp):
        if cp:
            self.comp = Comparator()  # The one to be modified
            self.originalComp = cp  # The pointer to the original Comparator
            self.comp.updateFromGiven(cp)

            srcModel = SourceArticleDBModel(self.comp)

            self.qCompViewer.setSourceModel(srcModel)
            self.qCompViewer.loadHeaderState()

            self.compNameLineEdit.setText(self.comp.name)
            self.compCommentText.setPlainText(self.comp.comment)
Ejemplo n.º 13
0
def detect_objects():
    global previous_objects, appLogger
    detector = Detector()
    comp = Comparator(detector)
    while True:
        detected_objects = detector.process_next_frame()
        print("[Detection Stage] Done")
        if not previous_objects:
            previous_objects = detected_objects
        else:
            print("[Looking for changes - Tracking Stage]")
            print(
                comp.compare_objects_lists(previous_objects, detected_objects))
            previous_objects = detected_objects
        detector.show_frame()
        time.sleep(DELAY)
Ejemplo n.º 14
0
    def onClicked_SaveComparator_New(self):
        currentCTab = self.tabWidget.currentWidget()
        name = currentCTab.compNameLineEdit.text()
        if not self.validateComparatorName():
            return

        currentCTab.comp.setName(currentCTab.compNameLineEdit.text())
        currentCTab.comp.setComment(currentCTab.compCommentText.toPlainText())
        if currentCTab.originalComp is None:
            print("Create comparator ", name)
            currentCTab.originalComp = Comparator()
            currentCTab.originalComp.updateFromGiven(currentCTab.comp)
            self.compTableModel.addComparator(currentCTab.originalComp)
        else:
            print("Update comparator ", name)
            currentCTab.originalComp.updateFromGiven(currentCTab.comp)
        self.compTableModel.emitAllDataChanged()
Ejemplo n.º 15
0
def bmh_matcher(t,p):
    table = make_table(p)
    c = Comparator()
    results = []
    i = 0
    while i < len(t):
        try:
            first = t[i+len(p)]
        except IndexError:
            return results, c
        for j in range(len(p)-1,-1,-1):
            if not c.compare(p,j,t,i+j):
                i += table[first]
                break
            elif j == 0:
                results.append(i)
                i+=table[first]
    return results, c
Ejemplo n.º 16
0
def test_1():
    ref_file = open('./tests/data/input/optimization1.out.json',
                    'r',
                    encoding="utf-8")
    comp_file = open('./tests/data/input/optimization2.out.json',
                     'r',
                     encoding="utf-8")
    ref_content = json.loads(ref_file.read())
    comp_content = json.loads(comp_file.read())
    ref_file.close()
    comp_file.close()

    comp = Comparator(ref_content, comp_content)
    comp_results = comp.compare()

    assert isinstance(comp_results, List)
    assert len(comp_results) == 3

    # First result
    res = comp_results[0]
    assert isinstance(res, TestResult)
    assert res.file_path == '/home/evaluation/evaluation/pub/bench/lorem/ipsum/1'
    exit_diff = res.exit_diff
    assert isinstance(exit_diff, Diff)
    assert exit_diff.label == 'Exit value'
    assert exit_diff.reference == 4
    assert exit_diff.value == 2
    assert exit_diff.diff == -2
    assert exit_diff.variation == -50
    diffs = res.diffs
    assert isinstance(diffs, List)
    assert len(diffs) == 2
    diff_bound = diffs[0]
    assert diff_bound.label == 'bound'
    assert diff_bound.reference == 12
    assert diff_bound.value == 12
    assert diff_bound.diff == 0
    assert diff_bound.variation == 0
    diff_time = diffs[1]
    assert diff_time.label == 'time'
    assert diff_time.reference == 2
    assert diff_time.value == 1
    assert diff_time.diff == -1
    assert diff_time.variation == -50
Ejemplo n.º 17
0
    def addTab1_Append(self):
        if len(self.compTableView.view.selectedIndexes()) < 1:
            return
        original = self.compTableView.view.selectedIndexes(
        )[0].internalPointer()
        uids = self.qMainTreev.getSelectedItemUids()
        if not uids:
            return

        tabIndex = self.checkIfCompOpened(original.name)
        if tabIndex > 0:
            tgtTab = self.tabWidget.widget(tabIndex)
            for uid in uids:
                entry = self.compTableModel.ADB.getEntryByUid(uid)
                tgtTab.qCompViewer.proxyModel.sourceModel().appendItem(entry)
            self.tabWidget.setCurrentIndex(tabIndex)
            return

        theComp = Comparator()
        theComp.updateFromGiven(original)

        for uid in uids:
            entry = self.compTableModel.ADB.getEntryByUid(uid)
            theComp.addEntry(entry)

        tab = ComparatorTabPageWidget()
        tab.setComparatorToShow(theComp)
        tab.originalComp = original

        newidx = self.tabWidget.addTab(
            tab, theComp.name[:16]
            if len(theComp.name) < 16 else theComp.name[:13] + "..")
        self.tabWidget.setCurrentIndex(newidx)

        tab.btnCancel.clicked.connect(self.closeCurrentTab)
        tab.btnSave.clicked.connect(self.onClicked_SaveComparator_OpenAppend)
        tab.qCompViewer.proxyView.doubleClicked.connect(
            self.onDoubleClicked_EditCompEntry)

        tab.compNameLineEdit.textChanged.connect(
            self.setCurrentComparatorTabLabel)
        self.setCurrentComparatorTabLabel()
Ejemplo n.º 18
0
    def test_simple_check(self):
        c = Comparator()

        self.assertFalse(c.check("2.0", "<", "2.0"))
        self.assertTrue(c.check("2.0", "<=", "2.0"))
        self.assertTrue(c.check("2.0", "==", "2.0"))
        self.assertTrue(c.check("2.0", ">=", "2.0"))
        self.assertFalse(c.check("2.0", ">", "2.0"))

        self.assertTrue(c.check("2.0", "<", "2.1"))
        self.assertTrue(c.check("2.0", "<=", "2.1"))
        self.assertFalse(c.check("2.0", "==", "2.1"))
        self.assertFalse(c.check("2.0", ">=", "2.1"))
        self.assertFalse(c.check("2.0", ">", "2.1"))

        self.assertFalse(c.check("2.1", "<", "2.0"))
        self.assertFalse(c.check("2.1", "<=", "2.0"))
        self.assertFalse(c.check("2.1", "==", "2.0"))
        self.assertTrue(c.check("2.1", ">=", "2.0"))
        self.assertTrue(c.check("2.1", ">", "2.0"))
Ejemplo n.º 19
0
def kmp_match(t, p):
    '''
    Find all instances of p in t, runs a comparator class that keeps track of the number of comparisons made
    '''
    pi = compute_prefix(p)
    q = 0  #number of thus far matched characters in the pattern
    c = Comparator()
    results = []
    for i in range(0, len(t)):
        # we've matched some characters, but not enough, so we shift forward by the prefix amount
        while q > 0 and not c.compare(p, q, t, i):
            q = pi[q]
        # we've matched another character
        if c.compare(p, q, t, i):
            q += 1
        # we've matched as many chars are there in the pattern, we've found a match
        if q == len(p):
            results.append(i - len(p) + 1)
            q = pi[q - 1]
    return results, c
Ejemplo n.º 20
0
def main():
    if len(sys.argv) < 2:
        print("Usage: " + sys.argv[0] + " <board>")
        return

    board = sys.argv[1]

    posts = {}
    try:
        posts = json.loads(open("data/posts_%s.json" % board).read())
    except Exception as e:
        pass

    regexps_like = [
        regex.split("\n")[0]
        for regex in open("data/regexps_like").readlines()
    ]
    regexps_dislike = [
        regex.split("\n")[0]
        for regex in open("data/regexps_dislike").readlines()
    ]
    comparator_dislike = Comparator(
        open("data/comparator.wasm", "rb").read(), [
            base64.b64decode(image.split("\n")[0])
            for image in open("data/images").readlines()
        ])
    checker = Checker(regexps_like, regexps_dislike, comparator_dislike)

    proxies = Proxies(
        [proxy.split("\n")[0] for proxy in open("data/proxies").readlines()])
    network = Network(proxies, 10)

    liker = Liker(board, checker, posts, network)

    network.start()
    network.join()
Ejemplo n.º 21
0
import sys
from comparator import Comparator

if __name__ == "__main__":
    args = sys.argv
    if len(args) != 3:
        print('incorrect args')
        sys.exit(0)

    comparator = Comparator()
    degree = comparator.compare(sys.argv[1], sys.argv[2])
    sys.stdout.write(str(degree))
    sys.exit(0)
Ejemplo n.º 22
0
            phones = self.get_models(brand)
            self.phones.extend(phones)
        print "-------------"
        print "Finished crawling all phones. Total number = " + str(
            len(self.phones))
        return self.phones


if __name__ == "__main__":
    script_loc = os.path.dirname(os.path.realpath(__file__))
    os.chdir(script_loc)

    scrapper = Scrapper()
    phones = scrapper.build_knowledge_base()
    if os.path.isfile("save.p"):
        old_phones = pickle.load(open("save.p", "rb"))

    comparator = Comparator(old_phones, phones)

    new_phones = comparator.get_new_phones()
    removed_phones = comparator.get_removed_phones()
    updated_phones = comparator.get_updated_phones()

    # Dumping the new data to the disk
    print "Storing today's data to disk .."
    pickle.dump(phones, open("save.p", "wb"))

    # Sending mail results
    print "Sending mail results .."
    reporter = Report(phones, new_phones, removed_phones, updated_phones)
    reporter.send_updates()
Ejemplo n.º 23
0
    def __init__(self):
        super(ComparatorTabPageWidget, self).__init__()

        hbox = QHBoxLayout()
        gbox = QGridLayout()

        # Deal with the side bar
        leftFrame = QFrame()
        leftFrame.setFrameShape(QFrame.StyledPanel)
        leftFrame.setMinimumSize(200, 600)
        leftFrame.setMaximumWidth(300)  # Max width
        leftFrame.setLayout(gbox)

        compNameLabel = QtWidgets.QLabel("&Comparator Name:")
        self.compNameLineEdit = QtWidgets.QLineEdit()
        self.compNameLineEdit.setMaxLength(32)
        compNameLabel.setBuddy(self.compNameLineEdit)
        gbox.addWidget(compNameLabel, 0, 0, 1, 2)
        gbox.addWidget(self.compNameLineEdit, 1, 0, 1, 2)

        compCommentLabel = QtWidgets.QLabel("My Comment:")
        self.compCommentText = QPlainTextEdit()
        self.compCommentText.setTabChangesFocus(True)
        compNameLabel.setBuddy(self.compCommentText)
        gbox.addWidget(compCommentLabel, 2, 0, 1, 2)
        gbox.addWidget(self.compCommentText, 3, 0, 1, 2)

        groupFilter = QGroupBox("Entry Filter", leftFrame)
        groupFilter.setMaximumHeight(250)
        groupGridLayout = QGridLayout()
        groupFilter.setLayout(groupGridLayout)
        self.filterCaseSensitivityCheckBox = QtWidgets.QCheckBox("Case sensitive")
        self.filterCaseSensitivityCheckBox.setChecked(False)
        self.filterSyntaxCheckBox = QtWidgets.QCheckBox("Use Regex")
        self.filterSyntaxCheckBox.setChecked(True)
        self.filterPatternLineEdit = QtWidgets.QLineEdit()

        self.filterDomainCombo = QtWidgets.QComboBox()
        self.filterDomainCombo.addItem("All", searchableDomainIndex)
        for i in searchableDomainIndex:
            self.filterDomainCombo.addItem(headerNames[i], [i])

        filterComboLabel = QtWidgets.QLabel("Filter Domain:")
        filterComboLabel.setBuddy(self.filterDomainCombo)
        groupGridLayout.addWidget(filterComboLabel, 0, 0, 1, 4)
        groupGridLayout.addWidget(self.filterDomainCombo, 1, 0, 1, 4)

        filterPatternLabel = QtWidgets.QLabel("&Filter pattern:")
        filterPatternLabel.setBuddy(self.filterPatternLineEdit)
        groupGridLayout.addWidget(filterPatternLabel, 2, 0, 1, 4)
        groupGridLayout.addWidget(self.filterPatternLineEdit, 3, 0, 1, 4)

        groupGridLayout.addWidget(self.filterCaseSensitivityCheckBox, 4, 0, 1, 4)
        groupGridLayout.addWidget(self.filterSyntaxCheckBox, 5, 0, 1, 4)
        gbox.addWidget(groupFilter, 4, 0, 1, 2)

        self.btnRemove = QPushButton("Remove from comparator")
        self.btnExpandSelected = QPushButton("Expand")
        self.btnCollapseSelected = QPushButton("Collapse")
        self.btnMoveUp = QPushButton("Move up")
        self.btnMoveDown = QPushButton("Move Down")
        self.btnSave = QPushButton("Save")
        self.btnCancel = QPushButton("Cancel")

        gbox.addWidget(self.btnRemove, 5, 0, 1, 2)
        gbox.addWidget(self.btnExpandSelected, 6, 0, 1, 1)
        gbox.addWidget(self.btnCollapseSelected, 6, 1, 1, 1)
        gbox.addWidget(self.btnMoveUp, 8, 0, 1, 1)
        gbox.addWidget(self.btnMoveDown, 8, 1, 1, 1)
        gbox.addWidget(self.btnSave, 9, 0, 1, 1)
        gbox.addWidget(self.btnCancel, 9, 1, 1, 1)

        # deal with the main tree view
        # TODO: think about reset data/load data
        self.qCompViewer = ArticleViewer()
        self.comp = Comparator()
        self.originalComp = None
        srcModel = SourceArticleDBModel(self.comp)
        self.qCompViewer.setSourceModel(srcModel)
        self.qCompViewer.setDefaultHeaderView()
        self.qCompViewer.proxyModel.setDynamicSortFilter(False)

        # finally the splitter
        splitter1 = QSplitter(QtCore.Qt.Horizontal)
        splitter1.addWidget(leftFrame)
        splitter1.addWidget(self.qCompViewer)
        splitter1.setSizes([100, 200])

        hbox.addWidget(splitter1)

        self.setLayout(hbox)

        self.filterPatternLineEdit.textChanged.connect(self.textFilterChanged)
        self.filterSyntaxCheckBox.toggled.connect(self.textFilterChanged)
        self.filterCaseSensitivityCheckBox.toggled.connect(self.textFilterChanged)
        self.filterDomainCombo.currentIndexChanged.connect(self.textFilterDomainChanged)

        self.btnExpandSelected.clicked.connect(self.qCompViewer.onClickExpandRows)
        self.btnCollapseSelected.clicked.connect(self.qCompViewer.onClickCollapseRows)
        self.btnRemove.clicked.connect(self.onClicked_RemoveFromComparator)
Ejemplo n.º 24
0
 def _cmp_func_wrapper(self, cmp_opts=''):
     '''Return function member of class Tester.Comparator.'''
     return Comparator(**ast.literal_eval(cmp_opts)).cmp
Ejemplo n.º 25
0
best_data.loc[best_data['NumberOfTime30-59DaysPastDueNotWorse'] > 90,
              'NumberOfTime30-59DaysPastDueNotWorse'] = 18
best_data.loc[best_data['NumberOfTime60-89DaysPastDueNotWorse'] > 90,
              'NumberOfTime60-89DaysPastDueNotWorse'] = 18
best_data.loc[best_data['NumberOfTimes90DaysLate'] > 90,
              'NumberOfTimes90DaysLate'] = 18

best_data = best_data.drop(
    best_data[best_data['RevolvingUtilizationOfUnsecuredLines'] > 10].index)

df = df.drop('Unnamed: 0', axis=1)
df.to_csv(r"./data/processed_data.csv")

# 验证
tester = Comparator('SeriousDlqin2yrs')

tester.addDataset('missing data processed', df)
tester.addDataset('debt ratio outliers removed',
                  removed_debt_outliers)  # 164 removed
tester.addDataset('debt ratio outliers replaced',
                  repalace_debt_ratio)  # 164 removed
tester.addDataset('overdue outliers replaced', repalace98)  #269 removed
tester.addDataset('utilization outliers removed', dfus)  # 241 removed
tester.addDataset('overdue outliers removed', drop98)
tester.addDataset('outliers added', add_outliers)
tester.addDataset('best_data', best_data)

# rf_default = RandomForestClassifier()
# dbdt_default = GradientBoostingClassifier()
# tester.addModel('default RF', rf_default)
Ejemplo n.º 26
0
    def __init__(self,
                 batch_size,
                 w_i,
                 w_f,
                 w_a,
                 comparator_network='VGG16',
                 gan_name='gan',
                 lr=.002,
                 decay=0.5):
        self.img_shape = (256, 256, 3)
        input_image = Input(shape=(256, 256, 3))

        self.comp_network = Comparator(network=comparator_network)
        self.feat_comp_size = self.comp_network.model.layers[19].output_shape
        self.gen_inp_size = self.comp_network.model.layers[20].output_shape
        self.noise_std = K.variable([0], dtype='float32')
        self.batch_size = batch_size

        #K.set_learning_phase(1)

        self.generator = self.build_generator()

        #self.feature_model=K.function([self.comp_network.model.layers[0].input],[self.comp_network.model.layers[53].output,self.comp_network.model.layers[54].output])
        x = Lambda(lambda inputs: tf.image.resize_bilinear(
            inputs, tf.stack([224, 224]), align_corners=True))(input_image)
        l1 = Model(self.comp_network.model.input,
                   self.comp_network.model.layers[19].output)
        l2 = Model(self.comp_network.model.input,
                   self.comp_network.model.layers[20].output)
        y1 = l1(x)
        y2 = l2(x)
        self.feature_model = Model(input_image, [y1, y2], name="Comparator")
        #feature_model=Model(self.comp_network.model.input,[self.comp_network.model.layers[19].output,self.comp_network.model.layers[20].output],name="Comparator")
        #feature_model.trainable=False

        feats = self.feature_model(input_image)
        image_comp_features = feats[0]
        image_gen_input = feats[1]

        synth_image = self.generator(image_gen_input)

        synth_feats = self.feature_model(synth_image)
        synth_comp_features = synth_feats[0]
        synth_gen_input = synth_feats[1]

        self.discriminator = self.build_discriminator(self.noise_std)
        dis_optimizer = Adam(lr=lr * .1, decay=decay)
        self.discriminator.compile(loss='binary_crossentropy',
                                   optimizer=dis_optimizer,
                                   metrics=['accuracy'])

        validity = self.discriminator([synth_image, synth_comp_features])

        gen_optimizer = Adam(lr=lr, decay=decay)

        self.combined = Model(input_image,
                              [validity, synth_image, synth_comp_features])
        self.combined.compile(optimizer=gen_optimizer,
                              loss=[
                                  'binary_crossentropy', 'mean_squared_error',
                                  'mean_squared_error'
                              ],
                              loss_weights=[w_a, w_i, w_f])
Ejemplo n.º 27
0
 def test_very_small_delta(self):
     self.assertEqual(-6.000000000000001, Comparator(-6, delta=1e-15))
     self.assertNotEqual(-6.000000000000002, Comparator(-6, delta=1e-15))
Ejemplo n.º 28
0
 def test_equality_with_delta(self):
     self.assertEqual(5.5, Comparator(6, delta=0.5))
     self.assertEqual(6.5, Comparator(6, delta=0.5))
     self.assertNotEqual(6.51, Comparator(6, delta=0.5))
     self.assertNotEqual(5.49, Comparator(6, delta=0.5))
Ejemplo n.º 29
0
 def test_negative_numbers(self):
     self.assertNotEqual(-5.5, Comparator(-6, delta=0.25))
     self.assertEqual(-5.75, Comparator(-6, delta=0.25))
     self.assertEqual(-6.25, Comparator(-6, delta=0.25))
     self.assertNotEqual(-6.3, Comparator(-6, delta=0.25))
Ejemplo n.º 30
0
 def __init__(self, tickerName):
     self.tickerName = tickerName
     self.comparator = Comparator(self.tickerName)
     self.analyser = Analyser(self.tickerName, self.comparator)