Download interface/test_vectors.json from avaskys/skat-ml-models: direct link, hf CLI and curl.
- Browser
- Download file 3.81 kB
-
https://huggingface.co/avaskys/skat-ml-models/resolve/main/interface/test_vectors.json
- Command line
-
hf download hf://avaskys/skat-ml-models/interface/test_vectors.json
-
curl -L -o test_vectors.json https://huggingface.co/avaskys/skat-ml-models/resolve/main/interface/test_vectors.json
3.81 kB
| { | |
| "version": "1.0.0", | |
| "description": "Reference inputs and expected outputs for validating implementations", | |
| "test_cases": { | |
| "card_encoding": [ | |
| { | |
| "description": "First card (Club Jack)", | |
| "card": "CJ", | |
| "expected_index": 0 | |
| }, | |
| { | |
| "description": "Last card (Diamond 7)", | |
| "card": "D7", | |
| "expected_index": 31 | |
| }, | |
| { | |
| "description": "Spade Jack", | |
| "card": "SJ", | |
| "expected_index": 1 | |
| }, | |
| { | |
| "description": "Club Ace", | |
| "card": "CA", | |
| "expected_index": 4 | |
| }, | |
| { | |
| "description": "Heart 10", | |
| "card": "HT", | |
| "expected_index": 19 | |
| } | |
| ], | |
| "game_type_encoding": [ | |
| { | |
| "game_type": "DIAMONDS", | |
| "expected_index": 0 | |
| }, | |
| { | |
| "game_type": "GRAND", | |
| "expected_index": 4 | |
| }, | |
| { | |
| "game_type": "NULL", | |
| "expected_index": 5 | |
| } | |
| ], | |
| "position_encoding": [ | |
| { | |
| "position": "FOREHAND", | |
| "expected_index": 0 | |
| }, | |
| { | |
| "position": "MIDDLEHAND", | |
| "expected_index": 1 | |
| }, | |
| { | |
| "position": "REARHAND", | |
| "expected_index": 2 | |
| } | |
| ], | |
| "bidding_transformer": [ | |
| { | |
| "description": "Strong Grand hand - all 4 Jacks + Aces", | |
| "input": { | |
| "hand_cards": ["CJ", "SJ", "HJ", "DJ", "CA", "SA", "HA", "DA", "CT", "ST"], | |
| "position": "FOREHAND" | |
| }, | |
| "expected": { | |
| "description": "Should have high win probability at Grand bid levels", | |
| "pickup_prob_at_bid_18_min": 0.9, | |
| "hand_prob_at_bid_18_min": 0.85 | |
| } | |
| }, | |
| { | |
| "description": "Weak hand - no Jacks, scattered low cards", | |
| "input": { | |
| "hand_cards": ["C7", "C8", "S7", "S8", "H7", "H8", "D7", "D8", "C9", "S9"], | |
| "position": "REARHAND" | |
| }, | |
| "expected": { | |
| "description": "Should have low win probability at most bid levels", | |
| "pickup_prob_at_bid_18_max": 0.3, | |
| "hand_prob_at_bid_18_max": 0.2 | |
| } | |
| } | |
| ], | |
| "game_eval_transformer": [ | |
| { | |
| "description": "Strong Clubs hand after skat pickup", | |
| "input": { | |
| "hand_cards": ["CJ", "SJ", "CA", "CT", "CK", "CQ", "C9", "C8", "SA", "ST"], | |
| "skat_cards": ["C7", "D7"], | |
| "skat_len": 2, | |
| "game_type": "CLUBS", | |
| "position": "FOREHAND", | |
| "is_hand": 0, | |
| "bid": 0.068 | |
| }, | |
| "expected": { | |
| "description": "Should predict high win probability for Clubs", | |
| "win_prob_min": 0.8 | |
| } | |
| } | |
| ], | |
| "card_play_transformer": [ | |
| { | |
| "description": "Opening lead in Clubs game as declarer with strong trumps", | |
| "input": { | |
| "game_type": "CLUBS", | |
| "declarer": 0, | |
| "is_ouvert": 0, | |
| "hand": ["CJ", "SJ", "CA", "CT", "CK", "SA", "ST", "HA", "DA", "D7"], | |
| "hand_len": 10, | |
| "ouvert_hand": [], | |
| "ouvert_hand_len": 0, | |
| "history": [], | |
| "history_len": 0, | |
| "trick": [], | |
| "trick_len": 0, | |
| "legal_mask_cards": ["CJ", "SJ", "CA", "CT", "CK", "SA", "ST", "HA", "DA", "D7"] | |
| }, | |
| "expected": { | |
| "description": "Should prefer leading a Jack to draw trumps", | |
| "top_cards": ["CJ", "SJ"], | |
| "top_prob_min": 0.3 | |
| } | |
| } | |
| ] | |
| }, | |
| "notes": { | |
| "bid_normalization": "Normalize bid values by dividing by 264 (max bid)", | |
| "card_indices": "Convert card names to indices using card_encoding.order", | |
| "legal_mask": "Create boolean array of size 32, True for cards in hand that are legal to play", | |
| "padding": "Use pad_index (32) for empty slots in variable-length sequences" | |
| } | |
| } | |