Exemple #1
0
    def test_mod(self):
        def mod(
            oper1, oper2
        ):  # Since pythons int division uses floor its mod operator differs from most hardware.
            return oper1 - oper2 * int(oper1 / float(oper2))

        for oper1, oper2 in self.values:
            self.assertEqual(
                Word(oper1) % Word(oper2), Word(mod(oper1, oper2)),
                '{oper1} % {oper2} = {r} != {a}'.format(
                    oper1=oper1,
                    oper2=oper2,
                    r=int(Word(oper1) % Word(oper2)),
                    a=oper1 % oper2,
                ))
Exemple #2
0
 def evaluate(self, oper1, oper2, func):
     result = getattr(self.word_type, func)(self.word_type(oper1),
                                            self.word_type(oper2))
     exp_result = Word(getattr(type(oper1), func)(oper1, oper2))
     self.assertEqual(
         result, exp_result,
         '{res} {exp_result}'.format(res=int(result),
                                     exp_result=int(exp_result)))
Exemple #3
0
 def test_shift_right(self):
     for oper1, oper2 in self.values:
         self.assertEqual(
             Word(oper1) >> Word(oper2),
             Word(oper1 >> (oper2 & (Word.bit_size - 1))))
Exemple #4
0
 def test_shift_left(self):
     for oper1, oper2 in self.values:
         self.assertEqual(
             Word(oper1) << Word(oper2),
             Word(oper1 << (oper2 & (Word.bit_size - 1))))
Exemple #5
0
 def test_inverter(self):
     for oper1, oper2 in self.values:
         self.assertEqual(~Word(oper1), Word(~oper1))
         self.assertEqual(~Word(oper2), Word(~oper2))
Exemple #6
0
 def test_division(self):
     for oper1, oper2 in self.values:
         result = Word(oper1) / Word(oper2)
         self.assertEqual(result, Word(int(oper1 / float(oper2))))
Exemple #7
0
 def test_division(self):
     for oper1, oper2 in self.values:
         self.assertEqual(Float(oper1) / Float(oper2), Word(oper1 / oper2))
Exemple #8
0
 def test_multiplication(self):
     for oper1, oper2 in self.values:
         self.assertEqual(Float(oper1) * Float(oper2), Word(oper1 * oper2))
Exemple #9
0
 def test_subtraction(self):
     for oper1, oper2 in self.values:
         self.assertEqual(Float(oper1) - Float(oper2), Word(oper1 - oper2))
Exemple #10
0
 def test_addition(self):
     for oper1, oper2 in self.values:
         self.assertEqual(Float(oper1) + Float(oper2), Word(oper1 + oper2))