|
| 1 | +#!/bin/sh |
| 2 | +set -e |
| 3 | + |
| 4 | +TEST_FILE=$1 |
| 5 | +RID=$2 |
| 6 | + |
| 7 | +# Initialize rbenv |
| 8 | +export PATH="$HOME/.rbenv/bin:$PATH" |
| 9 | +eval "$($HOME/.rbenv/bin/rbenv init -)" |
| 10 | + |
| 11 | +if [ -z "$TEST_FILE" ]; then |
| 12 | + echo "Error: no sample file provided" |
| 13 | + exit 1 |
| 14 | +fi |
| 15 | + |
| 16 | +if [ -z "$RID" ]; then |
| 17 | + OS_NAME="$(uname -s)" |
| 18 | + case "$OS_NAME" in |
| 19 | + Linux*) RID="linux-x64" ;; |
| 20 | + Darwin*) RID="osx-x64" ;; |
| 21 | + CYGWIN*|MINGW*|MSYS*) RID="win-x64" ;; |
| 22 | + *) |
| 23 | + echo "" |
| 24 | + echo "Error: Could not determine default Runtime Identifier (RID) for OS type '$OS_NAME'." |
| 25 | + echo "Please provide one manually. Available: 'linux-x64', 'osx-x64', 'win-x64'" |
| 26 | + exit 1 |
| 27 | + ;; |
| 28 | + esac |
| 29 | + echo "Warning: Runtime Identifier (RID) not provided, defaulting to $RID" |
| 30 | +fi |
| 31 | + |
| 32 | +WD="$(basename "$PWD")" |
| 33 | +if [ "$WD" = "spec" ]; then |
| 34 | + CLI_PATH="../bin/mindee.rb" |
| 35 | +else |
| 36 | + CLI_PATH="./bin/mindee.rb" |
| 37 | +fi |
| 38 | + |
| 39 | +echo "--- Test model list retrieval (all models)" |
| 40 | +MODELS=$("$CLI_PATH" v2 search-models) |
| 41 | +if [ -z "$MODELS" ]; then |
| 42 | + echo "Error: no models found" |
| 43 | + exit 1 |
| 44 | +else |
| 45 | + echo "Models retrieval OK" |
| 46 | +fi |
| 47 | + |
| 48 | + |
| 49 | +run_search() { |
| 50 | + model_type="$1" |
| 51 | + |
| 52 | + echo "--- Test model list retrieval - model_type filter ($model_type models)" |
| 53 | + MODELS=$("$CLI_PATH" v2 search-models -t "$model_type") |
| 54 | + if [ -z "$MODELS" ]; then |
| 55 | + echo "Error: no models found" |
| 56 | + exit 1 |
| 57 | + else |
| 58 | + echo "'$MODELS' Models retrieval OK" |
| 59 | + fi |
| 60 | + sleep 0.5 |
| 61 | +} |
| 62 | +run_search "classification" |
| 63 | +run_search "crop" |
| 64 | +run_search "extraction" |
| 65 | +run_search "ocr" |
| 66 | +run_search "split" |
| 67 | + |
| 68 | +echo "--- Test model list retrieval - name filter (non-existent model)" |
| 69 | +NO_MODELS=$("$CLI_PATH" v2 search-models -n "supercalifragilisticexpialidocious") |
| 70 | +if [ "$NO_MODELS" ]; then |
| 71 | + echo "Model shouldn't exist" |
| 72 | + exit 1 |
| 73 | +else |
| 74 | + echo "Non-existent models retrieval OK" |
| 75 | +fi |
| 76 | + |
| 77 | + |
| 78 | +echo "--- Test model list retrieval - name filter" |
| 79 | +FINDOC_MODELS=$("$CLI_PATH" v2 search-models -n "findoc") |
| 80 | +if [ -z "$FINDOC_MODELS" ]; then |
| 81 | + echo "Error: no models found" |
| 82 | + exit 1 |
| 83 | +else |
| 84 | + echo "Findoc models retrieval OK" |
| 85 | +fi |
| 86 | + |
| 87 | + |
| 88 | +echo "--- Test model list retrieval - name and model_type filter (findoc + extraction)" |
| 89 | +FINDOC_MODELS=$("$CLI_PATH" v2 search-models -n "findoc" -t "extraction") |
| 90 | +if [ -z "$FINDOC_MODELS" ]; then |
| 91 | + echo "Error: no models found" |
| 92 | + exit 1 |
| 93 | +else |
| 94 | + echo "Findoc models retrieval OK" |
| 95 | +fi |
| 96 | + |
| 97 | +echo "--- Test model list retrieval - model_type filter (invalid models)" |
| 98 | +set +e |
| 99 | +INVALID_MODELS_OUTPUT=$("$CLI_PATH" v2 search-models -t "invalid" 2>&1) |
| 100 | +INVALID_MODELS_STATUS=$? |
| 101 | +set -e |
| 102 | + |
| 103 | +if [ "$INVALID_MODELS_STATUS" -eq 0 ]; then |
| 104 | + echo "Error: expected search-models to fail with an invalid model type" |
| 105 | + exit 1 |
| 106 | +elif ! echo "$INVALID_MODELS_OUTPUT" | grep -q "HTTP 422"; then |
| 107 | + echo "Error: expected HTTP 422 for invalid model type" |
| 108 | + echo "$INVALID_MODELS_OUTPUT" |
| 109 | + exit 1 |
| 110 | +else |
| 111 | + echo "Error retrieval OK" |
| 112 | +fi |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | +MODELS_SIZE=5 |
| 119 | +i=1 |
| 120 | + |
| 121 | +run_test() { |
| 122 | + model_id="$1" |
| 123 | + model_type="$2" |
| 124 | + |
| 125 | + echo "--- Test $model_type (ID: $model_id) with Summary Output ($i/$MODELS_SIZE) ---" |
| 126 | + SUMMARY_OUTPUT=$("$CLI_PATH" v2 "$model_type" -m "$model_id" "$TEST_FILE") |
| 127 | + echo "$SUMMARY_OUTPUT" |
| 128 | + echo "" |
| 129 | + echo "" |
| 130 | + sleep 0.5 |
| 131 | + |
| 132 | + i=$((i + 1)) |
| 133 | +} |
| 134 | + |
| 135 | +echo "--- Test URL file $MINDEE_V2_SE_TESTS_BLANK_PDF_URL ---" |
| 136 | +SUMMARY_OUTPUT=$("$CLI_PATH" v2 "extraction" -m "$MINDEE_V2_SE_TESTS_FINDOC_MODEL_ID" "$MINDEE_V2_SE_TESTS_BLANK_PDF_URL") |
| 137 | +echo "$SUMMARY_OUTPUT" |
| 138 | +echo "" |
| 139 | +echo "" |
| 140 | + |
| 141 | +run_test "$MINDEE_V2_SE_TESTS_CLASSIFICATION_MODEL_ID" "classification" |
| 142 | +run_test "$MINDEE_V2_SE_TESTS_CROP_MODEL_ID" "crop" |
| 143 | +run_test "$MINDEE_V2_SE_TESTS_FINDOC_MODEL_ID" "extraction" |
| 144 | +run_test "$MINDEE_V2_SE_TESTS_OCR_MODEL_ID" "ocr" |
| 145 | +run_test "$MINDEE_V2_SE_TESTS_SPLIT_MODEL_ID" "split" |
0 commit comments