Exemplo n.º 1
0
    def substitution(self, nr, base):
        '''
        the substitution method
        in:    ->nr: number type
               ->base:an integer number
        out: the result (a number type)
        '''
        res = Number("0", base)
        need = Number("", base)
        a1 = []
        if need.stringToInt(nr.get_number()) < base:
            #if the number is smaller than the base then it is a digit for this base
            res.set_number(
                self.op.intToString(need.stringToInt(nr.get_number())))
        else:
            a1 = need.digits(nr.get_number())
            p = 0
            need = Number("", 10)

        while a1 != []:
            copy = p
            strBase = self.op.intToString(nr.get_base())
            power = '1'
            while copy != 0:
                power = self.op.mulNumbers(power, strBase, base).get_number()
                copy -= 1
            digit = a1[-1]
            product = self.op.mulNumbers(power, digit, base)
            p += 1
            res.set_number(
                self.op.addNumbers(res.get_number(), product.get_number(),
                                   base).get_number())
            a1 = a1[:-1]

        return res
Exemplo n.º 2
0
def testNumber():
    nr=Number("100",2)
    assert nr.get_number()=="100"
    assert nr.get_base()==2
    nr.set_number("12")
    assert nr.get_number()=="12"
    nr.set_base(10)
    assert nr.get_base()==10
    nr2=Number("12",10)
    assert nr==nr2
    
    array=nr.digits(nr.get_number())
    assert array==["1","2"]
    
    char='A'
    assert nr.modifyChar(char)==10
    assert nr.stringToInt(char)==10
    
    char="1"
    assert nr.stringToInt(char)==1