-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathtest_tokens.py
More file actions
42 lines (33 loc) · 1.31 KB
/
Copy pathtest_tokens.py
File metadata and controls
42 lines (33 loc) · 1.31 KB
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
36
37
38
39
40
41
42
from unittest import TestCase
import torch
from sample import sample_program, sample_string
from tokens import Tokenizer
class TestTokens(TestCase):
def test_total_num_tokens(self):
"""
This test makes sure we don't unintentionally change
the number of tokens.
"""
tokenizer = Tokenizer.create()
expected_num_tokens = 538
self.assertEqual(expected_num_tokens, len(tokenizer.token_op_table))
self.assertEqual(expected_num_tokens, len(tokenizer.op_token_table))
def test_token_table_coverage_smoke_test(self):
torch.manual_seed(1337)
tokenizer = Tokenizer.create()
num_samples = 1000
for _ in range(num_samples):
prog, h = sample_program(10)
prog.to_tokens(tokenizer.op_token_table)
for char in sample_string(32, h):
tokenizer.string_token_table[char]
def test_parsing(self):
"""Test parsing programs from tokens."""
torch.manual_seed(1337)
tokenizer = Tokenizer.create()
num_samples = 1000
for _ in range(num_samples):
program, _ = sample_program(10)
tokens = program.to_tokens(tokenizer.op_token_table)
parsed = tokenizer.parse_program(tokens)
self.assertEqual(str(program), str(parsed))