#! /bin/bash -eu
# Last edited on 2026-07-05 04:57:02 by stolfi

temp="/tmp/$$"

export LC_ALL=en_US.utf8
export LANG=en_US.utf8
export LC_CTYPE=en_US.utf8

max_noise=30
ch_noises=( 00 ${max_noise} )

prune_tits=( "" " (pruned)" )
simil_tits=( "" " (by similarity)" )

txfiles=()
for prune in 0 1; do 
  for noise in ${ch_noises[@]}; do
    for tones in 1 0; do 
      opref="res/modif_bencao-p${prune}-t${tones}-n${noise}"
      txfile="${opref}.txt"
      make -f Makefile CH_PRUNE=${prune} CH_TONES=${tones} CH_NOISE=${noise} single-ch-text
      echo "${txfile}:" 1>&2
      head -n 3 ${txfile}
      txfiles+=( ${txfile} )
      echo "======================================================================" 1>&2
    done
  done
done

for ecorr in 0 1; do
  for simil in 0 1; do 
    opref="res/modif_starps-e${ecorr}-s${simil}"
    txfile="${opref}.txt"
    make -f Makefile VM_ECORR=${ecorr} VM_SIMIL=${simil} single-vm-text
    echo "${txfile}:" 1>&2
    head -n 3 ${txfile}
    txfiles+=( ${txfile} )
    echo "======================================================================" 1>&2
  done
done

rpfiles=()
ctfilee=()
for txfile in ${txfiles[@]}; do

  txname="${txfile%.txt}"
  txname="${txname##res/}"
  echo "~~~ counting words and repeats in ${txfile} ..." 1>&2
  
  ctfile="${txname}.wct"
  make -f Makefile TEXT_NAME=${txname} word-counts-file
  ctfiles+=( ${ctfile} )
    
  rpfile="${txname}.rct"
  make -f Makefile TEXT_NAME="${txname}" rep-counts-file
  rpfiles+=( ${rpfile} )
  echo "======================================================================" 1>&2
done

# Plot the repetition graphs

for prune in 0 1; do 
  ptit="${prune_tits[$prune]}"
  n050_plot_two_repeat_histograms.sh \
    "sbj-x-sps"                        "Repeats in SBJ${ptit} and SPS" \
    "modif_bencao-p${prune}-t1-n00"      "SBJ" \
    "modif_starps-e0-s0"                 "SPS" \

  echo "======================================================================" 1>&2
done

for prune in 0 1; do 
  ptit="${prune_tits[$prune]}"
  n050_plot_four_repeat_histograms.sh \
    "modif_bencao-reps"                            "Repeats in modified SBJ${ptit}" \
    "modif_bencao-p${prune}-t0-n00"                "No tones" \
    "modif_bencao-p${prune}-t1-n00"                "Tones" \
    "modif_bencao-p${prune}-t0-n${max_noise}"      "No tones + ${max_noise}% Noise" \
    "modif_bencao-p${prune}-t1-n${max_noise}"      "Tones + ${max_noise}% Noise" \

  echo "======================================================================" 1>&2
done

n050_plot_four_repeat_histograms.sh \
  "modif_starps-reps"      "Repeats in modified SPS" \
  "modif_starps-e0-s0"     "Natural" \
  "modif_starps-e1-s0"     "Corrected" \
  "modif_starps-e0-s1"     "Similarity" \
  "modif_starps-e1-s1"     "Corrected + Similarity" \

echo "======================================================================" 1>&2

for prune in 0 1; do 
  ptit="${prune_tits[$prune]}"
  n050_plot_repeat_locations.sh \
    "modif_bencao-locs" "Location of repeats in SBJ${ptit}" "Recipe number" \
    "modif_bencao-p${prune}-t1-n00" \
    "modif_bencao-p${prune}-t1-n00" \

  echo "======================================================================" 1>&2
done

for simil in 0 1; do 
  stit="${simil_tits[$simil]}"
  n050_plot_repeat_locations.sh \
    "modif_starps-locs" "Location of repeats in SPS${stit}" "Parag number" \
    "modif_starps-e1-s${simil}" \
    "modif_starps-e1-s${simil}" \

  echo "======================================================================" 1>&2
done

# Summary of token and lexeme counts:
for txfile in ${txfiles[@]}; do
  ctfile="${txfile/.txt/.wct}"

  printf "%-30s " ${txfile}
  cat ${ctfile} \
    | gawk \
        ' /^ *[0-9]/ {
            ct = $1; wd = $2
            t += ct; w += 1; if (ct >= 2) { s += 1 }
          }
          END { printf "%5d %5d %5d\n", t, w, s }
        '
done
