static void test_util_rev_nibble_lookup() { test_status("Testing rev_nibble_lookup()"); size_t i; for(i = 0; i < 16; i++) { TASSERT(rev_nibble_lookup(i) == rev_nibble(i)); TASSERT(rev_nibble_lookup(rev_nibble_lookup(i)) == i); } }
// kmer_col_edge_str should be 9 chars long // Return pointer to kmer_col_edge_str char* db_node_get_edges_str(Edges edges, char* kmer_col_edge_str) { int i; char str[] = "acgt"; char left = edges >> 4; left = (char)rev_nibble(left); char right = edges & 0xf; for(i = 0; i < 4; i++) kmer_col_edge_str[i] = (left & (0x1 << i) ? str[i] : '.'); for(i = 0; i < 4; i++) kmer_col_edge_str[i+4] = (char)toupper(right & (0x1 << i) ? str[i] : '.'); kmer_col_edge_str[8] = '\0'; return kmer_col_edge_str; }
static char* get_edges_str(char edges, char* kmer_colour_edge_str) { int i; char str[] = "acgt"; char left = edges >> 4; left = rev_nibble(left); char right = edges & 0xf; for(i = 0; i < 4; i++) kmer_colour_edge_str[i] = (left & (0x1 << i) ? str[i] : '.'); for(i = 0; i < 4; i++) kmer_colour_edge_str[i+4] = toupper(right & (0x1 << i) ? str[i] : '.'); kmer_colour_edge_str[8] = '\0'; return kmer_colour_edge_str; }