Initial Commit
This commit is contained in:
95
OU4/marctest.c
Normal file
95
OU4/marctest.c
Normal file
@@ -0,0 +1,95 @@
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "graph.h"
|
||||
|
||||
// Helper function to print test results (Sonet Thinking Generated)
|
||||
void test_result(const char *test_name, bool result) {
|
||||
printf("%-40s %s\n", test_name, result ? "PASSED" : "FAILED");
|
||||
}
|
||||
/*void print_string(const void *s)
|
||||
{
|
||||
const char *string = s;
|
||||
printf("[%s] ", string);
|
||||
}
|
||||
*/
|
||||
int main(void)
|
||||
{
|
||||
printf("Testing graph implementation...\n\n");
|
||||
int max_nodes = 10;
|
||||
// Test 1: Create an empty graph
|
||||
graph *g = graph_empty(max_nodes);
|
||||
test_result("Create empty graph", g != NULL);
|
||||
|
||||
// Test 2: Check if graph is empty
|
||||
test_result("Graph is empty", graph_is_empty(g));
|
||||
|
||||
// Test 3: Insert nodes
|
||||
char *node1 = "AAA";
|
||||
char *node2 = "BBB";
|
||||
char *node3 = "CCC";
|
||||
|
||||
g = graph_insert_node(g, node1);
|
||||
test_result("Insert node A", !graph_is_empty(g));
|
||||
|
||||
g = graph_insert_node(g, node2);
|
||||
g = graph_insert_node(g, node3);
|
||||
|
||||
// Test 4: Find nodes
|
||||
node *n1 = graph_find_node(g, node1);
|
||||
test_result("Find node A", n1 != NULL);
|
||||
|
||||
node *n2 = graph_find_node(g, node2);
|
||||
test_result("Find node B", n2 != NULL);
|
||||
|
||||
node *n3 = graph_find_node(g, node3);
|
||||
test_result("Find node C", n3 != NULL);
|
||||
|
||||
node *n4 = graph_find_node(g, "D");
|
||||
test_result("Find non-existent node D", n4 == NULL);
|
||||
|
||||
// Test 5: Insert edges
|
||||
g = graph_insert_edge(g, n1, n2);
|
||||
g = graph_insert_edge(g, n1, n3);
|
||||
g = graph_insert_edge(g, n2, n1);
|
||||
g = graph_insert_edge(g, n2, n2);
|
||||
g = graph_insert_edge(g, n1, n1);
|
||||
|
||||
test_result("Graph has edges", graph_has_edges(g));
|
||||
|
||||
// Test 6: Node seen status
|
||||
test_result("Node A not seen initially", !graph_node_is_seen(g, n1));
|
||||
|
||||
g = graph_node_set_seen(g, n1, true);
|
||||
test_result("Node A is seen after setting", graph_node_is_seen(g, n1));
|
||||
|
||||
g = graph_node_set_seen(g, n2, true);
|
||||
test_result("Node B is seen after setting", graph_node_is_seen(g, n2));
|
||||
|
||||
g = graph_reset_seen(g);
|
||||
test_result("Node A not seen after reset", !graph_node_is_seen(g, n1));
|
||||
test_result("Node B not seen after reset", !graph_node_is_seen(g, n2));
|
||||
|
||||
// Test 7: Neighbors (if implemented)
|
||||
/*
|
||||
dlist *neighbours = graph_neighbours(g, n1);
|
||||
if (neighbours != NULL) {
|
||||
printf("Neighbors of A: ");
|
||||
// Print neighbors
|
||||
//dlist_print(neighbours, print_string);
|
||||
printf("\n\n");
|
||||
dlist_kill(neighbours);
|
||||
}*/
|
||||
|
||||
// Test 8: Print the graph
|
||||
graph_print(g);
|
||||
|
||||
// Test 9: Clean up (if implemented)
|
||||
graph_kill(g);
|
||||
printf("Graph destroyed\n");
|
||||
|
||||
|
||||
printf("\nTests completed.\n");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user