38#include <gtest/gtest.h>
68 char * str =
const_cast<char*
>(
text.c_str());
217 LLINK(&node) =
nullptr;
218 RLINK(&node) =
nullptr;
230 LLINK(&node) =
nullptr;
231 RLINK(&node) =
nullptr;
249 LLINK(&node) =
nullptr;
250 RLINK(&node) =
nullptr;
269 LLINK(&node) =
nullptr;
270 RLINK(&node) =
nullptr;
276 EXPECT_TRUE(
ss.str().find(
"$\\backslash$n") != string::npos);
284 LLINK(&node) =
nullptr;
285 RLINK(&node) =
nullptr;
299 LLINK(&node) =
nullptr;
300 RLINK(&node) =
nullptr;
314 LLINK(&node) =
nullptr;
315 RLINK(&node) =
nullptr;
329 LLINK(&node) =
nullptr;
330 RLINK(&node) =
nullptr;
344 LLINK(&node) =
nullptr;
345 RLINK(&node) =
nullptr;
359 LLINK(&node) =
nullptr;
360 RLINK(&node) =
nullptr;
374 LLINK(&node) =
nullptr;
375 RLINK(&node) =
nullptr;
381 EXPECT_TRUE(
ss.str().find(
"$\\prime\\prime$") != string::npos);
389 LLINK(&node) =
nullptr;
390 RLINK(&node) =
nullptr;
402 node1.get_key().first =
"{";
403 node1.get_key().second = 1;
404 node2.get_key().first =
"}";
405 node2.get_key().second = 1;
538 LLINK(&node) =
nullptr;
539 RLINK(&node) =
nullptr;
582 root.get_key().second = 3;
590 LLINK(&left) =
nullptr;
591 RLINK(&left) =
nullptr;
592 LLINK(&right) =
nullptr;
593 RLINK(&right) =
nullptr;
625 LLINK(&node) =
nullptr;
626 RLINK(&node) =
nullptr;
644 node.
get_key().first =
"verylongsymbolname";
646 LLINK(&node) =
nullptr;
647 RLINK(&node) =
nullptr;
661 LLINK(&node) =
nullptr;
662 RLINK(&node) =
nullptr;
675 node.
get_key().second = 1000000;
676 LLINK(&node) =
nullptr;
677 RLINK(&node) =
nullptr;
692 const char *
text =
"hello world";
694 char * str =
const_cast<char*
>(
text);
709 while ((pos =
output.find(
"TAG", pos)) != string::npos)
726 ::testing::InitGoogleTest(&
argc,
argv);
Huffman coding for data compression.
Node for binary search tree.
void empty() noexcept
empty the list
Pair * insert(const Key &key, const Data &data)
Insert a key-value pair.
const size_t & size() const
Returns the cardinality of the set.
Huffman_Encoder_Engine create_encoder(const string &text)
__gmp_expr< T, __gmp_binary_expr< __gmp_expr< T, U >, unsigned long int, __gmp_root_function > > root(const __gmp_expr< T, U > &expr, unsigned long int l)
constexpr Node *& RLINK(Node *p) noexcept
Return the right tree of p.
void destroyRec(Node *&root) noexcept
Free recursively all the memory occupied by the tree root
constexpr Node *& LLINK(Node *p) noexcept
Return a pointer to left subtree.
Huffman tree visualization for btreepic LaTeX package.
void reset_huffman_btreepic_state() noexcept
Reset global state for a new tree processing.
Freq_Node * pred
Predecessor node in level-order traversal.
long double get_offset(size_t index) noexcept
Get safe offset value with bounds checking.
@ NO_OFFSET
No offset applied.
size_t num_digits(const int &n)
Compute number of decimal digits in an integer.
DynMapTree< Freq_Node *, Infix_Desc, Treap > infix_table
Map from node pointer to infix position descriptor.
int minimal_gap
Minimum gap (in nodes) before applying offset adjustment.
void huffman_to_btreepic(Freq_Node *p, const bool with_level_adjust=false)
Generate btreepic specification for a Huffman tree.
std::ostream * output_ptr
Output stream pointer for btreepic commands.
Level_Table level_table
Map from node pointer to level traversal descriptor.
TEST_F(HuffmanBtreepicTest, InfixDescDefaultConstruction)
DynList< T > maps(const C &c, Op op)
Classic map operation.
Descriptor for infix (in-order) traversal position.
Descriptor for level-order traversal information.