File size: 2,319 Bytes
97b64b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Signature-verification test-case generation. Set quality.case_type to one
# of the 12 codes below to switch GeneratorContext into scenario-driven
# generation: it renders the described scenario and stamps the sample's
# metadata `verification` block with the matching ground-truth verdict/
# reject_code. Left unset (the default), generation is completely unaffected.
#
#   python main.py --config configs/examples/verification_cases.yaml \
#       --set quality.case_type=3a --count 10
#
# For "1d" (correct signer, but the scan itself is degraded) use
# configs/examples/hard_degraded.yaml instead -- it already sets
# `quality.case_type: "1d"` plus the matching degraded-scan overrides; this
# file's job is everything else, where a clean/legible scan is expected.
#
# | code | scenario                                            | verdict | reject_code            |
# |------|------------------------------------------------------|---------|-------------------------|
# | 1a   | Correct signer signs normally                         | PASS    | -                       |
# | 1b   | Correct signer, natural pen variation                 | PASS    | -                       |
# | 1c   | Multi-signer form, both sign correctly                | PASS    | -                       |
# | 1d   | Correct signer, scan degraded (see hard_degraded.yaml)| PASS    | -                       |
# | 2a   | Box left completely blank                             | REJECT  | NO_SIGNATURE            |
# | 2b   | Printed/typed name only, no handwriting               | REJECT  | NO_SIGNATURE            |
# | 3a   | Wrong real person signs the box                       | REJECT  | IDENTITY_MISMATCH       |
# | 3b   | Skilled-forgery sample used                           | REJECT  | IDENTITY_MISMATCH       |
# | 4a   | Authorized signer, but wrong role's box               | REJECT  | ROLE_MISMATCH           |
# | 4b   | Signer from a different form entirely                 | REJECT  | ROLE_MISMATCH           |
# | 5a   | Required signer's box left empty                      | REJECT  | REQUIRED_SIGNER_ABSENT  |
# | 5b   | Someone else signs in the required signer's place     | REJECT  | REQUIRED_SIGNER_ABSENT  |

quality:
  case_type: "1a"   # <- override with --set quality.case_type=<code>

validation:
  strict: false