示例#1
0
int Statistics::memory(AbstractHash **abh)
{
	if (dynamic_cast<ListHash*>((*abh)) != NULL)
	{
		int value = 0;
		ListHash *lh = dynamic_cast<ListHash*>((*abh));
		for (int i = 0; i < lh->getSize(); i++)
		{
			ListElem *curr = lh->getList()[i].getHead();
			ListElem *tail = lh->getList()[i].getTail();
			while (*curr != *tail)
			{
				value += curr->str.capacity();
				curr = curr->next;
			}
		}
		return (value + sizeof(int));
	}
	else if (dynamic_cast<ArrayHash*>((*abh)) != NULL)
	{
		int value = 0;
		ArrayHash *ah = dynamic_cast<ArrayHash*>((*abh));
		for (int i = 0; i < ah->getSize(); i++)
			value += ah->getStr()[i].capacity();
		return (sizeof(int) + value);
	}
	else
		std::cout << "ERROR WHILE TESTING." << std::endl;
}
示例#2
0
int main() {
    ArrayHash test;

    std::cout << test.getHash({"CBA", "DDD"}) << std::endl; // should return 21
    std::cout << test.getHash({"Z"}) << std::endl; // 25
    std::cout << test.getHash({"ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"}) << std::endl; // 4290
    
    return 0;
}
示例#3
0
int main()
{
	vector<string> coll;
	coll.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	coll.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	coll.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	coll.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	coll.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	coll.push_back("ABCDEFGHIJKLMNOPQRSTUVWXYZ");

	ArrayHash test;

	cout << test.getHash(coll) << endl;

	return EXIT_SUCCESS;
}
示例#4
0
double Statistics::effic(AbstractHash **abh)
{
	if (dynamic_cast<ListHash*>((*abh)) != NULL)
		return 100;
	else if (dynamic_cast<ArrayHash*>((*abh)) != NULL)
	{
		ArrayHash *ah = dynamic_cast<ArrayHash*>((*abh));
		int num = 0;
		for (int i = 0; i < ah->getSize(); i++)
			if (ah->getStr()[i].length() != 0)
				num++;
		return ((num * 100) / (double)ah->getSize());
	}
	else
		std::cout << "ERROR WHILE TESTING." << std::endl;
}
示例#5
0
bool do_test(vector<string> input, int __expected) {
    time_t startClock = clock();
    ArrayHash *instance = new ArrayHash();
    int __result = instance->getHash(input);
    double elapsed = (double)(clock() - startClock) / CLOCKS_PER_SEC;
    delete instance;

    if (__result == __expected) {
        cout << "PASSED!" << " (" << elapsed << " seconds)" << endl;
        return true;
    }
    else {
        cout << "FAILED!" << " (" << elapsed << " seconds)" << endl;
        cout << "           Expected: " << to_string(__expected) << endl;
        cout << "           Received: " << to_string(__result) << endl;
        return false;
    }
}
示例#6
0
// BEGIN KAWIGIEDIT TESTING
// Generated by KawigiEdit 2.1.4 (beta) modified by pivanof
bool KawigiEdit_RunTest(int testNum, vector <string> p0, bool hasAnswer, int p1) {
	cout << "Test " << testNum << ": [" << "{";
	for (int i = 0; int(p0.size()) > i; ++i) {
		if (i > 0) {
			cout << ",";
		}
		cout << "\"" << p0[i] << "\"";
	}
	cout << "}";
	cout << "]" << endl;
	ArrayHash *obj;
	int answer;
	obj = new ArrayHash();
	clock_t startTime = clock();
	answer = obj->getHash(p0);
	clock_t endTime = clock();
	delete obj;
	bool res;
	res = true;
	cout << "Time: " << double(endTime - startTime) / CLOCKS_PER_SEC << " seconds" << endl;
	if (hasAnswer) {
		cout << "Desired answer:" << endl;
		cout << "\t" << p1 << endl;
	}
	cout << "Your answer:" << endl;
	cout << "\t" << answer << endl;
	if (hasAnswer) {
		res = answer == p1;
	}
	if (!res) {
		cout << "DOESN'T MATCH!!!!" << endl;
	} else if (double(endTime - startTime) / CLOCKS_PER_SEC >= 2) {
		cout << "FAIL the timeout" << endl;
		res = false;
	} else if (hasAnswer) {
		cout << "Match :-)" << endl;
	} else {
		cout << "OK, but is it right?" << endl;
	}
	cout << "" << endl;
	return res;
}