ocarina/tests/playlist/playlist.cpp

82 lines
1.7 KiB
C++

/*
* Copyright 2013 (c) Anna Schumaker.
*/
#include <playlist.h>
#include <print.h>
#include <string>
void test_flags(const std :: string &test, Playlist &plist, unsigned int expected)
{
print("Test %s: ", test.c_str());
if (plist.get_flags() == expected)
print("SUCCESS\n");
else
print("FAILED\n");
}
void test_add_tracks(const std :: string & test, Playlist &plist,
unsigned int start, unsigned int end)
{
bool passed = true;
print("Test %s: ", test.c_str());
for (unsigned int i = start; i <= end; i++) {
if (plist.add(i) != (i - start))
passed = false;
}
if (passed == true)
print("SUCCESS\n");
else
print("FAILED\n");
}
void test_rm_tracks(const std :: string & test, Playlist & plist, unsigned int n)
{
unsigned int size = plist.size();
unsigned int expected = size - n;
print("Test %s: ", test.c_str());
for (unsigned int i = 0; i < n; i++)
plist.del(i);
if (plist.size() == expected)
print("SUCCESS\n");
else
print("FAILED\n");
}
/* Test flag setting / unsetting / getting */
void test_0()
{
Playlist plist(PL_ENABLED);
test_flags("0a", plist, PL_ENABLED);
plist.set_flag(PL_RANDOM);
test_flags("0b", plist, PL_ENABLED | PL_RANDOM);
plist.set_flag(PL_ENABLED);
test_flags("0c", plist, PL_ENABLED | PL_RANDOM);
plist.unset_flag(PL_ENABLED);
test_flags("0d", plist, PL_RANDOM);
plist.unset_flag(PL_RANDOM);
test_flags("0f", plist, 0);
print("\n");
}
/* Test adding / deleting / size queries */
void test_1()
{
Playlist plist(PL_ENABLED);
test_add_tracks("1a", plist, 10, 49);
print("Test 1b: Plist size: %u\n", plist.size());
test_rm_tracks("1c", plist, 10);
}
int main(int argc, char **argv)
{
test_0();
test_1();
return 0;
}