package hex.purelogic;
import junit.framework.Assert;
import org.junit.Test;
import water.TestUtil;
import java.net.InetAddress;
import java.util.ArrayList;
import water.util.UserSpecifiedNetwork;
public class UserSpecifiedNetworkTest extends TestUtil {
private static void check (boolean b) {
if (! b) {
Assert.assertTrue(b);
}
}
@Test public void test1() {
// Check basic stuff.
System.out.println("test1");
ArrayList<UserSpecifiedNetwork> l;
l = UserSpecifiedNetwork.calcArrayList("");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4/");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList(" 1.2.3.4/5");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4 /5");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4/5 ");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4/a");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("a.2.3.4/5");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.a.3.4/5");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.a.4/5");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.a/5");
check(l == null);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4/5,a.7.8.9/10");
check(l == null);
}
@Test public void test2() {
System.out.println("test2");
ArrayList<UserSpecifiedNetwork> l;
l = UserSpecifiedNetwork.calcArrayList(null);
check(l != null);
check(l.size() == 0);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4/5");
check(l != null);
check(l.size() == 1);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4/5,10.11.12.13/14");
check(l != null);
check(l.size() == 2);
l = UserSpecifiedNetwork.calcArrayList("1.2.3.4/5,10.11.12.13/14,15.16.17.18/19");
check(l != null);
check(l.size() == 3);
}
@Test public void test3() throws Exception {
System.out.println("test3");
ArrayList<UserSpecifiedNetwork> l;
UserSpecifiedNetwork usn;
l = UserSpecifiedNetwork.calcArrayList("0.0.0.0/0");
check(l != null);
check(l.size() == 1);
usn = l.get(0);
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.0")));
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.100")));
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.255")));
l = UserSpecifiedNetwork.calcArrayList("10.20.30.40/32");
check(l != null);
check(l.size() == 1);
usn = l.get(0);
check(! usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.0")));
check(! usn.inetAddressOnNetwork(InetAddress.getByName("10.20.30.41")));
check( usn.inetAddressOnNetwork(InetAddress.getByName("10.20.30.40")));
l = UserSpecifiedNetwork.calcArrayList("192.168.1.0/24");
check(l != null);
check(l.size() == 1);
usn = l.get(0);
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.0")));
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.100")));
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.255")));
check(! usn.inetAddressOnNetwork(InetAddress.getByName("192.168.2.0")));
check(! usn.inetAddressOnNetwork(InetAddress.getByName("191.168.1.0")));
l = UserSpecifiedNetwork.calcArrayList("10.255.0.0/16,192.168.1.0/24");
check(l != null);
check(l.size() == 2);
usn = l.get(1);
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.0")));
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.100")));
check( usn.inetAddressOnNetwork(InetAddress.getByName("192.168.1.255")));
check(! usn.inetAddressOnNetwork(InetAddress.getByName("192.168.2.0")));
check(! usn.inetAddressOnNetwork(InetAddress.getByName("191.168.1.0")));
usn = l.get(0);
check( usn.inetAddressOnNetwork(InetAddress.getByName("10.255.1.2")));
}
}