/** * Unit test for {@link INHashMap#INHashMap(IVariable<T>,IConstant<T>[])} */ public void testConstructor () { IVariable<Integer> var = Var.var ( "x" ) ; IConstant<Integer> vals [] = new IConstant [] { new Constant<Integer> ( 1 ) } ; try { assertTrue ( null != newINConstraint ( null, vals ) ) ; fail ( "IllegalArgumentException expected, lhs was null" ) ; } catch ( IllegalArgumentException e ) {} try { assertTrue ( null != newINConstraint ( var, null ) ) ; fail ( "IllegalArgumentException expected, rhs was null" ) ; } catch ( IllegalArgumentException e ) {} try { assertTrue ( null != newINConstraint ( var, new IConstant [] {} ) ) ; fail ( "IllegalArgumentException expected, set was empty" ) ; } catch ( IllegalArgumentException e ) {} assertTrue ( null != newINConstraint ( var, vals ) ) ; }
/** * Unit test for {@link INConstraint#getSet()} */ public void testGetSet () { Var<?> x = Var.var ( "x" ) ; IConstant vals [] = new Constant [] { new Constant<Integer> ( 1 ) } ; INConstraint op = newINConstraint ( x, vals ) ; assertTrue ( Arrays.equals ( vals, op.getSet () ) ) ; }
/** * Unit test for {@link INConstraint#accept(IBindingSet)} */ public void testAccept () { Var<?> x = Var.var ( "x" ) ; Constant<Integer> val1 = new Constant<Integer> ( 1 ) ; Constant<Integer> val2 = new Constant<Integer> ( 2 ) ; Constant<Integer> val3 = new Constant<Integer> ( 3 ) ; INConstraint op = newINConstraint ( x, new IConstant [] { val1, val2 } ) ; IBindingSet in = new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { val1 } ) ; IBindingSet notin = new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { val3 } ) ; IBindingSet nb = new ListBindingSet ( new IVariable<?> [] {}, new IConstant [] {} ) ; assertTrue ( op.get ( in ) ) ; assertFalse ( op.get ( notin ) ) ; // FIXME Modify to assertFalse() - unbound variables should fail constraints assertTrue ( op.get ( nb ) ) ; }
/** * Unit test for {@link INConstraint#accept(IBindingSet)} */ public void testAccept () { super.testAccept () ; // specific test because the implementation does a sort, etc... Var<?> x = Var.var ( "x" ) ; IConstant [] vals = new IConstant [ 100 ] ; for ( int i = 0; i < vals.length; i++ ) vals [ i ] = new Constant<Integer> ( i ) ; List<IConstant> list = Arrays.asList ( vals ) ; Collections.shuffle ( list ) ; vals = list.toArray ( vals ) ; INConstraint op = new INBinarySearch ( x, vals ) ; assertTrue ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 21 ) } ) ) ) ; assertTrue ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 37 ) } ) ) ) ; assertTrue ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 75 ) } ) ) ) ; assertFalse ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 101 ) } ) ) ) ; }
/** * Unit test for {@link INConstraint#accept(IBindingSet)} */ public void testAccept () { Var<?> x = Var.var ( "x" ) ; Constant<Integer> val1 = new Constant<Integer> ( 1 ) ; Constant<Integer> val2 = new Constant<Integer> ( 2 ) ; Constant<Integer> val3 = new Constant<Integer> ( 3 ) ; INConstraint op = newINConstraint ( x, new IConstant [] { val1, val2 } ) ; IBindingSet in = new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { val1 } ) ; IBindingSet notin = new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { val3 } ) ; IBindingSet nb = new ListBindingSet ( new IVariable<?> [] {}, new IConstant [] {} ) ; assertTrue ( op.get ( in ) ) ; assertFalse ( op.get ( notin ) ) ; // FIXME Modify to assertFalse() - unbound variables should fail constraints assertTrue ( op.get ( nb ) ) ; }
/** * Unit test for {@link INConstraint#getSet()} */ public void testGetSet () { Var<?> x = Var.var ( "x" ) ; IConstant vals [] = new Constant [] { new Constant<Integer> ( 1 ) } ; INConstraint op = newINConstraint ( x, vals ) ; assertTrue ( Arrays.equals ( vals, op.getSet () ) ) ; }
/** * Unit test for {@link INConstraint#accept(IBindingSet)} */ public void testAccept () { super.testAccept () ; // specific test because the implementation does a sort, etc... Var<?> x = Var.var ( "x" ) ; IConstant [] vals = new IConstant [ 100 ] ; for ( int i = 0; i < vals.length; i++ ) vals [ i ] = new Constant<Integer> ( i ) ; List<IConstant> list = Arrays.asList ( vals ) ; Collections.shuffle ( list ) ; vals = list.toArray ( vals ) ; INConstraint op = new INBinarySearch ( x, vals ) ; assertTrue ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 21 ) } ) ) ) ; assertTrue ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 37 ) } ) ) ) ; assertTrue ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 75 ) } ) ) ) ; assertFalse ( op.get ( new ListBindingSet ( new IVariable<?> [] { x }, new IConstant [] { new Constant<Integer> ( 101 ) } ) ) ) ; }
/** * Unit test for {@link INHashMap#INHashMap(IVariable<T>,IConstant<T>[])} */ public void testConstructor () { IVariable<Integer> var = Var.var ( "x" ) ; IConstant<Integer> vals [] = new IConstant [] { new Constant<Integer> ( 1 ) } ; try { assertTrue ( null != newINConstraint ( null, vals ) ) ; fail ( "IllegalArgumentException expected, lhs was null" ) ; } catch ( IllegalArgumentException e ) {} try { assertTrue ( null != newINConstraint ( var, null ) ) ; fail ( "IllegalArgumentException expected, rhs was null" ) ; } catch ( IllegalArgumentException e ) {} try { assertTrue ( null != newINConstraint ( var, new IConstant [] {} ) ) ; fail ( "IllegalArgumentException expected, set was empty" ) ; } catch ( IllegalArgumentException e ) {} assertTrue ( null != newINConstraint ( var, vals ) ) ; }
/** * Unit test for {@link INConstraint#getVariable()} */ public void testGetVariable () { Var<?> x = Var.var ( "x" ) ; IConstant vals [] = new Constant [] { new Constant<Integer> ( 1 ) } ; INConstraint op = newINConstraint ( x, vals ) ; assertTrue ( x.equals ( op.getVariable () ) ) ; }
/** * Unit test for {@link INConstraint#getVariable()} */ public void testGetVariable () { Var<?> x = Var.var ( "x" ) ; IConstant vals [] = new Constant [] { new Constant<Integer> ( 1 ) } ; INConstraint op = newINConstraint ( x, vals ) ; assertTrue ( x.equals ( op.getVariable () ) ) ; }