Esempio n. 1
0
 def test_prec_calc(self):
     amount = Decimal("1.4531250")
     splits = {
         0: Decimal('0.9000000000000000000000000000'),
         1: Decimal('0.1000000000000000000000000000')
     }
     _distributor(amount, splits)
    def test_edge_case(self):
        amount = Decimal("1.00007884")
        splits = {"test": Decimal('0.32187500'),
                  "two": Decimal('2.89687500'),
                  "other": Decimal('2.78515625')}

        _distributor(amount, splits)
 def test_final_hopefully(self):
     amount = Decimal("1.0117691900000000000000000000")
     splits = {"a": Decimal('0.0976562500000000000000000000'),
               "b": Decimal('8.3125'),
               "c": Decimal('0.8789062500000000000000000000'),
               "d": Decimal('0.71484375')}
     _distributor(amount, splits)
Esempio n. 4
0
    def test_edge_case(self):
        amount = Decimal("1.00007884")
        splits = {"test": Decimal('0.32187500'),
                  "two": Decimal('2.89687500'),
                  "other": Decimal('2.78515625')}

        _distributor(amount, splits)
Esempio n. 5
0
 def test_final_hopefully(self):
     amount = Decimal("1.0117691900000000000000000000")
     splits = {"a": Decimal('0.0976562500000000000000000000'),
               "b": Decimal('8.3125'),
               "c": Decimal('0.8789062500000000000000000000'),
               "d": Decimal('0.71484375')}
     _distributor(amount, splits)
Esempio n. 6
0
    def test_basic_distrib(self):
        splits = {"a": Decimal(100), "b": Decimal(256), "c": Decimal(3)}
        amount = Decimal("100")

        _distributor(amount, splits)
        for k, val in splits.iteritems():
            assert isinstance(val, Decimal)

        assert splits["b"] > (splits["a"] * Decimal("2.5"))
        assert splits["a"] > (splits["c"] * Decimal("33.33333"))
        self.assertEquals(sum(splits.itervalues()), amount)
    def test_basic_distrib(self):
        splits = {"a": Decimal(100),
                  "b": Decimal(256),
                  "c": Decimal(3)}
        amount = Decimal("100")

        _distributor(amount, splits)
        for k, val in splits.iteritems():
            assert isinstance(val, Decimal)

        assert splits["b"] > (splits["a"] * Decimal("2.5"))
        assert splits["a"] > (splits["c"] * Decimal("33.33333"))
        self.assertEquals(sum(splits.itervalues()), amount)
    def test_other(self):
        amount = Decimal("0.7109375")
        splits = {0: Decimal('0.9000000000000000000000000000'),
                  1: Decimal('0.1000000000000000000000000000')}

        ret = _distributor(amount, splits)
        self.assertEquals(sum(ret.itervalues()), amount)
Esempio n. 9
0
    def test_other(self):
        amount = Decimal("0.7109375")
        splits = {0: Decimal('0.9000000000000000000000000000'),
                  1: Decimal('0.1000000000000000000000000000')}

        ret = _distributor(amount, splits)
        self.assertEquals(sum(ret.itervalues()), amount)
Esempio n. 10
0
 def test_even_distrib(self):
     splits = {"a": Decimal(100)}
     _distributor(Decimal("100"), splits)
     assert splits["a"] == 100
Esempio n. 11
0
                'merged': '1'
            })

        s = m.UserSettings(user="******",
                           spayout_perc=Decimal("1.00"),
                           spayout_addr="1JBDMJWBYgA6Rmp8EUPyzFQp79uNsJb67R",
                           spayout_curr="BTC",
                           pdonation_perc=Decimal("0.05"))
        db.session.add(s)
        db.session.commit()
        db.session.expunge_all()

        generate_credits()
        db.session.rollback()


if __name__ == "__main__":
    import random
    import sys
    t = time.time()
    for i in xrange(10000):
        amount = Decimal(str(random.uniform(1, 100000)))
        splits = {}
        for i in xrange(random.randint(1, 5)):
            splits[i] = Decimal(str(random.uniform(1, 100)))
            round_sz = Decimal((0, (1, ), -1 * random.randint(2, 15)))
            splits[i] = splits[i].quantize(round_sz)
        sys.stdout.write(".")
        _distributor(amount, splits)
    print "completed in {}".format(time.time() - t)
 def test_prec_calc(self):
     amount = Decimal("1.4531250")
     splits = {0: Decimal('0.9000000000000000000000000000'),
               1: Decimal('0.1000000000000000000000000000')}
     _distributor(amount, splits)
 def test_even_distrib(self):
     splits = {"a": Decimal(100)}
     _distributor(Decimal("100"), splits)
     assert splits["a"] == 100
             'solve_time': '1410412589.175215',
             'merged': '1'})

        s = m.UserSettings(user="******",
                           spayout_perc=Decimal("1.00"),
                           spayout_addr="1JBDMJWBYgA6Rmp8EUPyzFQp79uNsJb67R",
                           spayout_curr="BTC",
                           pdonation_perc=Decimal("0.05"))
        db.session.add(s)
        db.session.commit()
        db.session.expunge_all()

        generate_credits()
        db.session.rollback()


if __name__ == "__main__":
    import random
    import sys
    t = time.time()
    for i in xrange(10000):
        amount = Decimal(str(random.uniform(1, 100000)))
        splits = {}
        for i in xrange(random.randint(1, 5)):
            splits[i] = Decimal(str(random.uniform(1, 100)))
            round_sz = Decimal((0, (1, ), -1 * random.randint(2, 15)))
            splits[i] = splits[i].quantize(round_sz)
        sys.stdout.write(".")
        _distributor(amount, splits)
    print "completed in {}".format(time.time() - t)