package com.zstack.utils.test;
import org.apache.commons.net.util.SubnetUtils;
import org.junit.Assert;
import org.junit.Test;
import org.zstack.utils.data.SizeUnit;
import org.zstack.utils.gson.JSONObjectUtil;
import org.zstack.utils.network.NetworkUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
import static org.zstack.utils.CollectionDSL.list;
/**
* Created by frank on 8/11/2015.
*/
public class TestEval {
public static class A {
}
@Test
public void test() throws IOException {
List<String> lst = list("CloudBus.serverIp.1", "CloudBus.serverIp.5", "CloudBus.serverIp.2", "CloudBus.serverIp.0");
Collections.sort(lst);
System.out.println(lst);
System.out.println(NetworkUtils.isNetmask("255.255.255.0"));
System.out.println(NetworkUtils.isNetmask("255.255.255.088"));
System.out.println(NetworkUtils.isNetmaskExcept("0.0.0.0", "0.0.0.0"));
SubnetUtils sub = new SubnetUtils("192.168.0.10/16");
System.out.println(String.format("11111 %s", sub.getInfo().isInRange("192.168.0.1")));
sub = new SubnetUtils("192.168.55.10/24");
System.out.println(String.format("22222 %s", sub.getInfo().isInRange("192.168.0.1")));
A a1 = new A();
A a2 = new A();
A a3 = new A();
System.out.println(a1.getClass().hashCode());
System.out.println(a2.getClass().hashCode());
System.out.println(a3.getClass().hashCode());
Assert.assertTrue(a1.getClass() == a2.getClass());
Assert.assertTrue(a2.getClass() == a3.getClass());
long time = SizeUnit.GIGABYTE.convert(19862528, SizeUnit.BYTE);
System.out.println(String.format("time:%s", time));
long during = TimeUnit.HOURS.convert(17, TimeUnit.MILLISECONDS);
System.out.println(String.format("during:%s", during));
double mem = time * during * 1.0;
System.out.println(String.format("total:%s", mem));
sub = new SubnetUtils("224.0.0.0/24");
System.out.println(sub.getInfo().getLowAddress());
System.out.println(sub.getInfo().getHighAddress());
System.out.println(sub.getInfo().getCidrSignature());
sub = new SubnetUtils("224.0.1.1", "255.255.255.0");
System.out.println(sub.getInfo().getCidrSignature());
sub = new SubnetUtils(sub.getInfo().getNetworkAddress(), "255.255.255.0");
System.out.println(sub.getInfo().getCidrSignature());
Runnable r = () -> {
System.out.println("test lambda");
System.out.println("test lambda2");
};
r.run();
String testJson = "[\"files/kvm/libvirtd.conf\",\"/etc/libvirt/libvirtd.conf\"]";
List collection = JSONObjectUtil.toCollection(testJson, ArrayList.class, String.class);
System.out.println(collection);
Assert.assertTrue(NetworkUtils.isCidrOverlap("192.168.0.1/24", "192.168.1.0/16"));
Assert.assertTrue(NetworkUtils.isIpv4InCidr("192.168.201.100", "192.168.200.0/16"));
Assert.assertFalse(NetworkUtils.isIpv4InCidr("192.168.201.100", "192.168.200.0/24"));
}
}