mirror of
https://github.com/ehw-fit/ariths-gen.git
synced 2025-04-19 21:40:49 +01:00
225 lines
4.7 KiB
Bash
225 lines
4.7 KiB
Bash
#!/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 |