ChampSim
043-fwcounter.cc File Reference
#include <catch.hpp>
#include "msl/fwcounter.h"
#include <type_traits>
Include dependency graph for 043-fwcounter.cc:

Functions

 TEMPLATE_TEST_CASE ("A fixed-width counter compares for equality", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter compares for inequality", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter compares less", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter compares greater", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter compares less or equal", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter compares greater or equal", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can add", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can add in place", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can subtract", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can subtract in place", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can multiply", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can multiply in place", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can divide", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can divide in place", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can add a negative number", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can add a negative number in place", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can subtract a negative number", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter can subtract a negative number in place", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter saturates with addition", "", champsim::msl::fwcounter< 2 >, champsim::msl::sfwcounter< 2 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter saturates with subtraction", "", champsim::msl::fwcounter< 2 >, champsim::msl::sfwcounter< 2 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter saturates with multiplication", "", champsim::msl::fwcounter< 2 >, champsim::msl::sfwcounter< 2 >)
 
 TEMPLATE_PRODUCT_TEST_CASE ("A fixed-width counter is constructible by certian means", "",(std::is_default_constructible, std::is_copy_constructible, std::is_move_constructible, std::is_copy_assignable, std::is_move_assignable, std::is_destructible, std::is_swappable),(champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >))
 
 TEMPLATE_TEST_CASE ("A fixed-width counter is assignable by certian means", "", champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter is assignable with an integer", "", champsim::msl::fwcounter< 2 >, champsim::msl::sfwcounter< 2 >)
 
 TEMPLATE_TEST_CASE ("A fixed-width counter is assignable with an out-of-bounds integer", "", champsim::msl::fwcounter< 2 >, champsim::msl::sfwcounter< 2 >)
 

Function Documentation

◆ TEMPLATE_PRODUCT_TEST_CASE()

TEMPLATE_PRODUCT_TEST_CASE ( "A fixed-width counter is constructible by certian means"  ,
""  ,
(std::is_default_constructible, std::is_copy_constructible, std::is_move_constructible, std::is_copy_assignable, std::is_move_assignable, std::is_destructible, std::is_swappable)  ,
(champsim::msl::fwcounter< 8 >, champsim::msl::sfwcounter< 8 >)   
)

◆ TEMPLATE_TEST_CASE() [1/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can add a negative number in place"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [2/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can add a negative number"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [3/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can add in place"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [4/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can add"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [5/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can divide in place"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [6/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can divide"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [7/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can multiply in place"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [8/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can multiply"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [9/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can subtract a negative number in place"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [10/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can subtract a negative number"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [11/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can subtract in place"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [12/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter can subtract"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [13/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter compares for equality"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [14/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter compares for inequality"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [15/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter compares greater or equal"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [16/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter compares greater"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [17/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter compares less or equal"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [18/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter compares less"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [19/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter is assignable by certian means"  ,
""  ,
champsim::msl::fwcounter< 8 >  ,
champsim::msl::sfwcounter< 8 >   
)

◆ TEMPLATE_TEST_CASE() [20/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter is assignable with an integer"  ,
""  ,
champsim::msl::fwcounter< 2 >  ,
champsim::msl::sfwcounter< 2 >   
)

◆ TEMPLATE_TEST_CASE() [21/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter is assignable with an out-of-bounds integer"  ,
""  ,
champsim::msl::fwcounter< 2 >  ,
champsim::msl::sfwcounter< 2 >   
)

◆ TEMPLATE_TEST_CASE() [22/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter saturates with addition"  ,
""  ,
champsim::msl::fwcounter< 2 >  ,
champsim::msl::sfwcounter< 2 >   
)

◆ TEMPLATE_TEST_CASE() [23/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter saturates with multiplication"  ,
""  ,
champsim::msl::fwcounter< 2 >  ,
champsim::msl::sfwcounter< 2 >   
)

◆ TEMPLATE_TEST_CASE() [24/24]

TEMPLATE_TEST_CASE ( "A fixed-width counter saturates with subtraction"  ,
""  ,
champsim::msl::fwcounter< 2 >  ,
champsim::msl::sfwcounter< 2 >   
)