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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
// #[test]
// fn test_parsing_pattern() {
// let pattern = r#"{
// (wife: $a, husband: $b) isa marriage;
// $a has gender "male";
// $b has gender "female";
// }"#;
// let parsed = parse_pattern(pattern).unwrap().into_conjunction();
// let expected = and!(
// rel(("wife", "a")).links(("husband", "b")).isa("marriage"),
// var("a").has(("gender", "male")),
// var("b").has(("gender", "female"))
// );
// assert_valid_eq_repr!(expected, parsed, pattern);
// }
// #[test]
// fn test_parsing_patterns() {
// let patterns = r#"(wife: $a, husband: $b) isa marriage;
// $a has gender "male";
// $b has gender "female";
// "#;
// let parsed = parse_patterns(patterns).unwrap().into_iter().map(|p| p.into_statement()).collect::<Vec<_>>();
// let expected: Vec<Statement> = vec![
// Statement::Thing(rel(("wife", "a")).links(("husband", "b")).isa("marriage")),
// Statement::Thing(var("a").has(("gender", "male"))),
// Statement::Thing(var("b").has(("gender", "female"))),
// ];
// assert_eq!(expected, parsed);
// }
// #[test]
// fn test_parsing_definables() {
// let query = r#"athlete sub person;
// runner sub athlete;
// sprinter sub runner;"#;
// let parsed = parse_definables(query).unwrap().into_iter().map(|p| p.into_type_statement()).collect::<Vec<_>>();
// let expected =
// vec![type_("athlete").sub("person"), type_("runner").sub("athlete"), type_("sprinter").sub("runner")];
// assert_eq!(expected, parsed);
// }
// #[test]
// fn test_parsing_variable_rel() {
// let variable = "(wife: $a, husband: $b) isa marriage";
// let parsed = parse_statement(variable).unwrap();
// if let Statement::Thing(parsed_var) = parsed {
// let expected = rel(("wife", "a")).links(("husband", "b")).isa("marriage");
// assert_valid_eq_repr!(expected, parsed_var, variable);
// } else {
// panic!("Expected ThingVariable, found {variable:?}.");
// }
// }
// #[test]
// fn test_parsing_variable_has() {
// let variable = "$x has is_interesting true";
// let parsed = parse_statement(variable).unwrap();
// if let Statement::Thing(parsed_var) = parsed {
// let expected = var("x").has(("is_interesting", true));
// assert_valid_eq_repr!(expected, parsed_var, variable);
// } else {
// panic!("Expected ThingVariable, found {variable:?}.");
// }
// }
// #[test]
// fn test_parsing_label() {
// let label = "label_with-symbols";
// let parsed = parse_label(label).unwrap();
// let expected = Label { scope: None, name: String::from(label) };
// assert_eq!(expected, parsed);
// }