Initial commit
This commit is contained in:
commit
87dcb960bf
67 changed files with 6733 additions and 0 deletions
110
test_toh_disk.c
Normal file
110
test_toh_disk.c
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
/*----------------------------------------------------------
|
||||
* HTBLA-Leonding / Klasse: n/a
|
||||
* ---------------------------------------------------------
|
||||
* Exercise Number: 09
|
||||
* Title: Implementation of UTs for Tower of Hanoi Disk
|
||||
* Author: S. Schraml
|
||||
* Due Date: n/a
|
||||
* ----------------------------------------------------------
|
||||
* Description:
|
||||
* Test functions for ADT ToH Disk.
|
||||
* ----------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "test_toh_disk.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "shortcut.h"
|
||||
#include "config.h"
|
||||
|
||||
#include "toh_disk.h"
|
||||
|
||||
|
||||
TEST(test_td_get_disk__shall_provide_valid_disk_for_each_size) {
|
||||
Disk disk = 0;
|
||||
for (int size = 1; size <= MAX_DISKS; size++) {
|
||||
disk = td_get_disk(size);
|
||||
ASSERT_TRUE(disk != 0, MSG("Valid disk expected for size [%u]", size));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(test_td_get_disk__shall_provide_0_for_invalid_size) {
|
||||
int sizes[] = {0, MAX_DISKS + 1};
|
||||
Disk disk = 0;
|
||||
for (int i = 0; i < sizeof(sizes)/sizeof(sizes[0]); i++) {
|
||||
disk = td_get_disk(sizes[i]);
|
||||
ASSERT_TRUE(disk == 0, MSG("0 disk expected for size [%u]", 0));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(test_td_is_valid__shall_be_valid_for_valid_disks) {
|
||||
Disk disk = 0;
|
||||
for (int size = 1; size <= MAX_DISKS; size++) {
|
||||
disk = td_get_disk(size);
|
||||
ASSERT_TRUE(td_is_valid(disk), MSG("Valid expected for disk of size [%u]", size));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(test_td_is_valid__shall_be_invalid_for_0_disks) {
|
||||
Disk disk = 0;
|
||||
ASSERT_FALSE(td_is_valid(disk), MSG("Invalid expected for 0 disk"));
|
||||
}
|
||||
|
||||
TEST(test_td_is_valid__shall_be_invalid_for_disks_with_invalid_sizes) {
|
||||
/* size cannot be set via public API */
|
||||
}
|
||||
|
||||
TEST(test_td_get_size__shall_provide_size_of_valid_disk) {
|
||||
Disk disk = 0;
|
||||
for (int size = 1; size <= MAX_DISKS; size++) {
|
||||
disk = td_get_disk(size);
|
||||
ASSERT_TRUE(td_is_valid(disk), MSG("Valid expected for disk of size [%u]", size));
|
||||
unsigned short act_size = td_get_size(disk);
|
||||
ASSERT_TRUE(act_size == size, MSG("Incorrect size, expected [%u] but was [%u]", size, act_size));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(test_td_get_size__shall_provide_0_for_invalid_disk) {
|
||||
unsigned short act_size = td_get_size(0);
|
||||
ASSERT_TRUE(act_size == 0, MSG("Incorrect size for 0 disk, expected [%u] but was [%u]", 0, act_size));
|
||||
}
|
||||
|
||||
TEST(test_td_is_smaller__shall_be_true_for_smaller_disks) {
|
||||
Disk disk = td_get_disk(MAX_DISKS);
|
||||
Disk candidate = 0;
|
||||
for (int size = MAX_DISKS - 1; size > 0; size--) {
|
||||
candidate = td_get_disk(size);
|
||||
ASSERT_TRUE(td_is_smaller(disk, candidate), MSG("Disk of size [%u] is expected being smaller than disk of size [%u]", td_get_size(disk), td_get_size(candidate)));
|
||||
disk = candidate;
|
||||
}
|
||||
}
|
||||
|
||||
TEST(test_td_is_smaller__shall_be_false_for_larger_disks) {
|
||||
Disk disk = td_get_disk(1);
|
||||
Disk candidate = 0;
|
||||
for (int size = 2; size <= MAX_DISKS; size++) {
|
||||
candidate = disk;
|
||||
ASSERT_FALSE(td_is_smaller(disk, candidate), MSG("Disk of size [%u] is NOT expected being smaller than disk of size [%u]", td_get_size(disk), td_get_size(candidate)));
|
||||
candidate = td_get_disk(size);
|
||||
ASSERT_FALSE(td_is_smaller(disk, candidate), MSG("Disk of size [%u] is NOT expected being smaller than disk of size [%u]", td_get_size(disk), td_get_size(candidate)));
|
||||
disk = candidate;
|
||||
}
|
||||
}
|
||||
|
||||
TEST(test_td_is_smaller__shall_be_false_for_invalid_disk) {
|
||||
Disk disk = td_get_disk(1);
|
||||
ASSERT_TRUE(td_is_valid(disk), MSG("Valid disk expected"));
|
||||
ASSERT_FALSE(td_is_smaller(0, disk), MSG("False expected for invalid target disk"));
|
||||
}
|
||||
|
||||
TEST(test_td_is_smaller__shall_be_false_for_invalid_candidates) {
|
||||
Disk disk = td_get_disk(1);
|
||||
ASSERT_TRUE(td_is_valid(disk), MSG("Valid disk expected"));
|
||||
ASSERT_FALSE(td_is_smaller(disk, 0), MSG("False expected for invalid candidate disk"));
|
||||
}
|
||||
|
||||
TEST(test_td_is_smaller__shall_be_false_for_invalid_attributes) {
|
||||
ASSERT_FALSE(td_is_smaller(0, 0), MSG("False expected for invalid disks"));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue