Пример #1
0
def Main():
    rangeSupply = InputGenerator.UniformDistribution(MINIMUM_VALUE_SUPPLY, MAXIMUM_VALUE_SUPPLY, SAMPLES_COUNT_SUPPLY)
    rangeBalance = InputGenerator.UniformDistribution(MINIMUM_VALUE_BALANCE, MAXIMUM_VALUE_BALANCE, SAMPLES_COUNT_BALANCE)
    rangeWeight = InputGenerator.UniformDistribution(MINIMUM_VALUE_WEIGHT, MAXIMUM_VALUE_WEIGHT, SAMPLES_COUNT_WEIGHT)
    rangeAmount = InputGenerator.UniformDistribution(MINIMUM_VALUE_AMOUNT, MAXIMUM_VALUE_AMOUNT, SAMPLES_COUNT_AMOUNT)

    testNum = 0
    numOfTests = len(rangeSupply) * len(rangeBalance) * len(rangeWeight) * len(rangeAmount)

    web3RPCProvider = web3.Web3(web3.RPCProvider())
    abi = open('../contracts/build/TdrFormula.abi').read()
    bin = open('../contracts/build/TdrFormula.bin').read()
    contract = web3RPCProvider.eth.contract(abi=json.loads(abi), bytecode=bin)
    FormulaContractAddr = contract(web3RPCProvider.eth.getTransactionReceipt(contract.deploy())['contractAddress']).call()

    for supply in rangeSupply:
        for balance in rangeBalance:
            for weight in rangeWeight:
                for amount in rangeAmount:
                    testNum += 1
                    if True:
                        resultSolidityPort = Run(FormulaSolidityPort, supply, balance, weight, amount)
                        resultContractAddr = Run(FormulaContractAddr, supply, balance, weight, amount)
                        print 'Test {} out of {}: resultSolidityPort = {}, resultContractAddr = {}'.format(testNum, numOfTests, resultSolidityPort, resultContractAddr)
                        if resultSolidityPort != resultContractAddr:
                            print 'Emulation Error:'
                            print 'supply  = {}'.format(supply)
                            print 'balance = {}'.format(balance)
                            print 'weight  = {}'.format(weight)
                            print 'amount  = {}'.format(amount)
                            return
Пример #2
0
def Main():    
    range_supply  = GenerateRange(MINIMUM_VALUE_SUPPLY ,MAXIMUM_VALUE_SUPPLY ,GROWTH_FACTOR_SUPPLY )
    range_reserve = GenerateRange(MINIMUM_VALUE_RESERVE,MAXIMUM_VALUE_RESERVE,GROWTH_FACTOR_RESERVE)
    range_ratio   = GenerateRange(MINIMUM_VALUE_RATIO  ,MAXIMUM_VALUE_RATIO  ,GROWTH_FACTOR_RATIO  )
    range_amount  = GenerateRange(MINIMUM_VALUE_AMOUNT ,MAXIMUM_VALUE_AMOUNT ,GROWTH_FACTOR_AMOUNT )
    
    testNum = 0
    numOfTests = len(range_supply)*len(range_reserve)*len(range_ratio)*len(range_amount)
    
    web3RPCProvider = web3.Web3(web3.RPCProvider())
    abi = open('../contracts/build/BancorFormula.abi').read()
    bin = open('../contracts/build/BancorFormula.bin').read()
    contract = web3RPCProvider.eth.contract(abi=json.loads(abi),bytecode=bin)
    FormulaContractAddr = contract(web3RPCProvider.eth.getTransactionReceipt(contract.deploy())['contractAddress']).call()
    
    for             supply  in range_supply :
        for         reserve in range_reserve:
            for     ratio   in range_ratio  :
                for amount  in range_amount :
                    testNum += 1
                    if amount <= supply:
                        resultSolidityPort = Run(FormulaSolidityPort,supply,reserve,ratio,amount)
                        resultContractAddr = Run(FormulaContractAddr,supply,reserve,ratio,amount)
                        print 'Test {} out of {}: resultSolidityPort = {}, resultContractAddr = {}'.format(testNum,numOfTests,resultSolidityPort,resultContractAddr)
                        if resultSolidityPort != resultContractAddr:
                            print 'Emulation Error:'
                            print 'supply  = {}'.format(supply )
                            print 'reserve = {}'.format(reserve)
                            print 'ratio   = {}'.format(ratio  )
                            print 'amount  = {}'.format(amount )
                            return
Пример #3
0
def Main():
    range_supply = GenerateRange(MINIMUM_VALUE_SUPPLY, MAXIMUM_VALUE_SUPPLY,
                                 GROWTH_FACTOR_SUPPLY)
    range_reserve = GenerateRange(MINIMUM_VALUE_RESERVE, MAXIMUM_VALUE_RESERVE,
                                  GROWTH_FACTOR_RESERVE)
    range_ratio = GenerateRange(MINIMUM_VALUE_RATIO, MAXIMUM_VALUE_RATIO,
                                GROWTH_FACTOR_RATIO)
    range_amount = GenerateRange(MINIMUM_VALUE_AMOUNT, MAXIMUM_VALUE_AMOUNT,
                                 GROWTH_FACTOR_AMOUNT)

    testNum = 0
    numOfTests = len(range_supply) * len(range_reserve) * len(
        range_ratio) * len(range_amount)

    web3RPCProvider = web3.Web3(web3.RPCProvider())
    abi = open('../contracts/build/BancorFormula.abi').read()
    bin = open('../contracts/build/BancorFormula.bin').read()
    contract = web3RPCProvider.eth.contract(abi=json.loads(abi), bytecode=bin)
    contractHandle = contract(
        web3RPCProvider.eth.getTransactionReceipt(
            contract.deploy())['contractAddress']).call()

    for supply in range_supply:
        for reserve in range_reserve:
            for ratio in range_ratio:
                for amount in range_amount:
                    testNum += 1
                    if amount <= supply:
                        python = Run(BancorFormula, supply, reserve, ratio,
                                     amount)
                        solidity = Run(contractHandle, supply, reserve, ratio,
                                       amount)
                        print 'Test {} out of {}: python = {}, solidity = {}'.format(
                            testNum, numOfTests, python, solidity)
                        if python != solidity:
                            print 'Emulation Error:', Record(
                                supply, reserve, ratio, amount, bancor, actual)
                            return