var things = {}


func get_unique_count():
	return things.size()


func add(thing):
	if things.has(thing):
		things[thing] += 1
	else:
		things[thing] = 1


func has(thing):
	return things.has(thing)


func get(thing):
	var to_return = 0
	if things.has(thing):
		to_return = things[thing]
	return to_return


func sum():
	var count = 0
	for key in things:
		count += things[key]
	return count


func to_s():
	var to_return = ""
	for key in things:
		to_return += str(key, ":  ", things[key], "\n")
	to_return += str("sum: ", sum())
	return to_return


func get_max_count():
	var max_val = null
	for key in things:
		if max_val == null or things[key] > max_val:
			max_val = things[key]
	return max_val


func add_array_items(array):
	for i in range(array.size()):
		add(array[i])