1
// Tests for various functionalities of the Model
2

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

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

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

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

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

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

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

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

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

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