Beispiel #1
0
def coolname(user):
    pubkey = user.pubkey.encode('utf8')
    hash = hashlib.md5(pubkey).digest()

    NUM_WORDS = 3
    max_seed = coolname_lib.get_combinations_count(NUM_WORDS)
    seed = int(hash.encode('hex'), 16) % max_seed
    name_list = coolname_lib.impl._default._lists[NUM_WORDS][seed]

    msg = ""
    if user.is_unsigned:
        msg += " (not signed)"

    return '-'.join(name_list) + msg
    # Import coolname and measure memory growth.
    # Give OS some time to correctly register amount of memory allocated.
    start_time = time.monotonic()
    from coolname import generate, generate_slug, get_combinations_count
    print('Loading time:         {:.3f}'.format(time.monotonic() - start_time))
    time.sleep(3)
    print('RSS growth:           {} K'.format((process.memory_info().rss - rss_base) // 1024))
    print('VM growth:            {} K'.format((process.memory_info().vms - vm_base) // 1024))

    # Measure average call time
    number = 100000
    print('generate() time:      {:.6f}'.format(timeit(generate, number=number) / number))
    print('generate_slug() time: {:.6f}'.format(timeit(generate_slug, number=number) / number))

    # Total combinations count
    print('Total combinations:   {:,}'.format(get_combinations_count()))
    print('Combinations(4):      {:,}'.format(get_combinations_count(4)))
    print('Combinations(3):      {:,}'.format(get_combinations_count(3)))
    print('Combinations(2):      {:,}'.format(get_combinations_count(2)))

    # Check probability of repeat if we have used 0.1% of total namespace.
    # It should be around 0.0001.
    if arguments.all:
        combinations = get_combinations_count()
        items = set({})
        items_count = combinations // 10000
        while len(items) < items_count:
            items.add(generate_slug())
        repeats = 0
        loops = 100000
        for i in range(loops):
Beispiel #3
0
 def test_combinations(self):
     combinations_2 = 10**5
     combinations_3 = 10**8
     combinations_4 = 10**10
     self.assertGreater(coolname.get_combinations_count(), combinations_4)
     self.assertGreater(coolname.get_combinations_count(2), combinations_2)
     self.assertGreater(coolname.get_combinations_count(3), combinations_3)
     self.assertGreater(coolname.get_combinations_count(4), combinations_4)
     self.assertLess(coolname.get_combinations_count(3),
                     coolname.get_combinations_count())
     self.assertLess(coolname.get_combinations_count(4),
                     coolname.get_combinations_count())
     self.assertEqual(
         coolname.get_combinations_count(2) +
         coolname.get_combinations_count(3) +
         coolname.get_combinations_count(4),
         coolname.get_combinations_count())
Beispiel #4
0
    # Import coolname and measure memory growth.
    # Give OS some time to correctly register amount of memory allocated.
    start_time = time.time()
    from coolname import generate, generate_slug, get_combinations_count
    print('Loading time:         {:.3f}'.format(time.time() - start_time))
    time.sleep(3)
    print('RSS growth:           {} K'.format((process.memory_info().rss - rss_base) // 1024))
    print('VM growth:            {} K'.format((process.memory_info().vms - vm_base) // 1024))

    # Measure average call time
    number = 100000
    print('generate() time:      {:.6f}'.format(timeit(generate, number=number) / number))
    print('generate_slug() time: {:.6f}'.format(timeit(generate_slug, number=number) / number))

    # Total combinations count
    print('Total combinations:   {:,}'.format(get_combinations_count()))
    print('Combinations(4):      {:,}'.format(get_combinations_count(4)))
    print('Combinations(3):      {:,}'.format(get_combinations_count(3)))
    print('Combinations(2):      {:,}'.format(get_combinations_count(2)))

    # Check probability of repeat if we have used 0.1% of total namespace.
    # It should be around 0.0001.
    if arguments.all:
        combinations = get_combinations_count()
        items = set({})
        items_count = combinations // 10000
        while len(items) < items_count:
            items.add(generate_slug())
        repeats = 0
        loops = 100000
        for i in range(loops):
 def test_combinations(self):
     combinations_2 = 10**5
     combinations_3 = 10**8
     combinations_4 = 10**10
     self.assertGreater(coolname.get_combinations_count(), combinations_4)
     self.assertGreater(coolname.get_combinations_count(2), combinations_2)
     self.assertGreater(coolname.get_combinations_count(3), combinations_3)
     self.assertGreater(coolname.get_combinations_count(4), combinations_4)
     self.assertLess(coolname.get_combinations_count(3),
                     coolname.get_combinations_count())
     self.assertLess(coolname.get_combinations_count(4),
                     coolname.get_combinations_count())
     self.assertEqual(coolname.get_combinations_count(2) +
                      coolname.get_combinations_count(3) +
                      coolname.get_combinations_count(4),
                      coolname.get_combinations_count())