1
// Tests for various functionalities of the Model
2

            
3
use conjure_cp::ast::Model;
4
use conjure_cp::ast::*;
5

            
6
#[test]
7
1
fn modify_domain() {
8
1
    let mut m = Model::new(Default::default());
9

            
10
1
    let mut symbols = m.as_submodel_mut().symbols_mut();
11

            
12
1
    let name_a = Name::user("a");
13

            
14
1
    let d1 = Domain::int(vec![Range::Bounded(1, 3)]);
15
1
    let d2 = Domain::int(vec![Range::Bounded(1, 2)]);
16

            
17
1
    let mut decl_a = DeclarationPtr::new_find(name_a, d1.clone());
18

            
19
1
    symbols.insert(decl_a.clone()).unwrap();
20

            
21
1
    assert_eq!(&decl_a.domain().unwrap(), &d1);
22

            
23
1
    decl_a.as_var_mut().unwrap().domain = d2.clone();
24

            
25
1
    assert_eq!(&decl_a.domain().unwrap(), &d2);
26
1
}