ariths-gen-mig/Tests/flat_c_tests.sh

225 lines
4.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
POSIXLY_CORRECT=yes
# Colors
# set thanks to: https://linux.101hacks.com/ps1-examples/prompt-color-using-tput/
REDCOLOR="$(tput setaf 1)"
GREENCOLOR="$(tput setaf 2)"
BLUECOLOR="$(tput setaf 4)"
NOCOLOR="$(tput sgr0)"
# Compiler options
C=g++
CFLAGS=-std=c++11 -Wextra -pedantic -g
LG_PATH="Flat_c_circuits/Logic_gates/"
ADD_PATH="Flat_c_circuits/Adders/"
# FLATTENED C CODE CIRCUITS #
# Logic gates
AND_G="./and_gate 2>/dev/null"
NAND_G="./nand_gate 2>/dev/null"
OR_G="./or_gate 2>/dev/null"
NOR_G="./nor_gate 2>/dev/null"
XOR_G="./xor_gate 2>/dev/null"
XNOR_G="./xnor_gate 2>/dev/null"
NOT_G="./not_gate 2>/dev/null"
# Adders
HA="./ha 2>/dev/null"
FA="./fa 2>/dev/null"
# Unsigned
U_RCA3="./u_rca3 2>/dev/null"
U_RCA5="./u_rca5 2>/dev/null"
U_RCA8="./u_rca8 2>/dev/null"
# Signed
S_RCA2="./s_rca2 2>/dev/null"
S_RCA6="./s_rca6 2>/dev/null"
S_RCA8="./s_rca8 2>/dev/null"
# TESTING #
echo "${BLUECOLOR}TESTING OF FLATTENED CIRCUITS GENERATED USING arithmetic_circuits_generator.py"
echo ""
echo ""
echo "LOGIC GATES TESTS${NOCOLOR}"
## LOGIC GATES ##
#################
# AND
${C} ${CFLAGS} ${LG_PATH}and_gate.c -o and_gate
echo "TEST_1: and_gate.c"
eval "$AND_G"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm and_gate
# NAND
${C} ${CFLAGS} ${LG_PATH}nand_gate.c -o nand_gate
echo "TEST_2: nand_gate.c"
eval "$NAND_G"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm nand_gate
# OR
${C} ${CFLAGS} ${LG_PATH}or_gate.c -o or_gate
echo "TEST_3: or_gate.c"
eval "$OR_G"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm or_gate
# NOR
${C} ${CFLAGS} ${LG_PATH}nor_gate.c -o nor_gate
echo "TEST_4: nor_gate.c"
eval "$NOR_G"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm nor_gate
# XOR
${C} ${CFLAGS} ${LG_PATH}xor_gate.c -o xor_gate
echo "TEST_5: xor_gate.c"
eval "$XOR_G"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm xor_gate
# XNOR
${C} ${CFLAGS} ${LG_PATH}xnor_gate.c -o xnor_gate
echo "TEST_6: xnor_gate.c"
eval "$XNOR_G"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm xnor_gate
# NOT
${C} ${CFLAGS} ${LG_PATH}not_gate.c -o not_gate
echo "TEST_7: not_gate.c"
eval "$NOT_G"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm not_gate
echo ""
echo "${BLUECOLOR}ADDERS TESTS${NOCOLOR}"
## ADDERS ##
############
# HALF ADDER
${C} ${CFLAGS} ${ADD_PATH}ha.c -o ha
echo "TEST_8: ha.c"
eval "$HA"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm ha
# FULL ADDER
${C} ${CFLAGS} ${ADD_PATH}fa.c -o fa
echo "TEST_9: fa.c"
eval "$FA"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm fa
## UNSIGNED ADDERS ##
# 3-BIT RIPPLE CARRY ADDER
${C} ${CFLAGS} ${ADD_PATH}u_rca3.c -o u_rca3
echo "TEST_10: u_rca3.c"
eval "$U_RCA3"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm u_rca3
# 5-BIT RIPPLE CARRY ADDER
${C} ${CFLAGS} ${ADD_PATH}u_rca5.c -o u_rca5
echo "TEST_11: u_rca5.c"
eval "$U_RCA5"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm u_rca5
# 8-BIT RIPPLE CARRY ADDER
${C} ${CFLAGS} ${ADD_PATH}u_rca8.c -o u_rca8
echo "TEST_12: u_rca8.c"
eval "$U_RCA8"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm u_rca8
## SIGNED ADDERS ##
# 2-BIT RIPPLE CARRY ADDER
${C} ${CFLAGS} ${ADD_PATH}s_rca2.c -o s_rca2
echo "TEST_13: s_rca2.c"
eval "$S_RCA2"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm s_rca2
# 2-BIT RIPPLE CARRY ADDER
${C} ${CFLAGS} ${ADD_PATH}s_rca6.c -o s_rca6
echo "TEST_14: s_rca6.c"
eval "$S_RCA6"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm s_rca6
# 8-BIT RIPPLE CARRY ADDER
${C} ${CFLAGS} ${ADD_PATH}s_rca8.c -o s_rca8
echo "TEST_15: s_rca8.c"
eval "$S_RCA8"
if [ "$?" -eq 0 ] ; then
echo "${GREENCOLOR}PASSED${NOCOLOR}"
else
echo "${REDCOLOR}FAILED${NOCOLOR}"
fi
rm s_rca8