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):
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())
# 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())