Tag: 模拟

java中的时间同步

在for-loop中,我通过检索和处理车辆信息来控制基于模拟步骤的交通模拟器SUMO。 为了确保我的程序在“实时”模拟(1个模拟步骤= 1秒),我想在处理阶段之后睡眠我的程序,直到下一个时间步骤开始。 为了获得更好的结果,我正在根据最初采用的参考时间戳计算时间戳。 循环看起来像这样: System.out.println(“start of traffic simulation …”); for (int i = 0; i < stepCount; i++) { System.out.println("step: " + i); // set before timeStamp beforeTimeStamp = System.currentTimeMillis(); if (firstStep) { // get reference timeStamp referenceTimeStamp = beforeTimeStamp; firstStep = false; } else { // get next vehicleVector vehicleVector = masterControl.traCIclient.simulateStep(); } […]

对java Mock文件的建议(模拟java.io.File)

有没有人有java模拟File对象的建议? 我使用的是需要获取java.io.File对象作为参数的第三方类。 我通过webservice(也是他们的产品之一)在流中接收此文件的数据。 一种解决方案是将所有这些数据写入文件并将其提供给类。 这是一个我不喜欢的解决方案:它消除了使用Web服务而不是仅下载文件的优势。 更快更有效的方法是将内存中的数据放入Mock文件中,并将此Mock文件提供给第三方类。 它可能必须是一个扩展java.io.File的MockFile,并覆盖与硬盘上的文件实际连接的所有函数。 我知道第三方应该使用流作为输入参数而不是文件。 但是,这超出了我的影响范围。

Java检测类是否是代理

是否可以检测类是否是代理 ( 动态 , cglib或其他 )? 让类A和B实现公共接口I 然后我需要定义一个例程的classEquals签名 public boolean classEquals(Class a, Class b); 这样,只有当a.equals(b)或Proxy(a).equals(b) ,它才会计算为true ,其中Proxy(a)表示类型A的动态代理(动态,cglib或其他)。 在@Jigar Joshi的帮助下,这是迄今为止的样子: public boolean classEquals(Class a, Class b) { if (Proxy.isProxyClass(a)) { return classEquals(a.getSuperclass(), b); } return a.equals(b); } 问题是它没有检测到例如CGLIB代理。

如何将Android模拟器与本地mysql数据库连接

我想在本地连接mysql数据库与android模拟器。 我使用http GET和POST方法通过app引擎访问Google Cloud SQL中的数据,但我想使用phpmyadmin将其与本地连接。 当我使用以下代码时,它显示Toast连接失败 String result = “”; //the year data to send ArrayList nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair(“name”,”Hammad”)); //http post try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(“http://localhost/myApp/read_data.php”); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); Log.e(“log_tag”, “connection success “); Toast.makeText(getApplicationContext(), “pass”, Toast.LENGTH_SHORT).show(); […]

是否有可能与Mockito做严格的嘲笑?

我想使用严格的模拟,至少在第一次开发针对旧代码的一些测试时,因此如果我没有专门定义期望,那么在我的模拟上调用的任何方法都会抛出exception。 从我所看到的情况来看,如果我没有定义任何期望,Mockito将只返回null,稍后会在其他地方导致NullPointerException。 有可能吗? 如果有,怎么样?

在Java中的非活动窗口上的某个位置模拟鼠标点击?

无论如何,我正在构建一个在后台运行的机器人。 这个机器人要求我点击。 当然,我希望能够在机器人运行时做其他事情。 所以我想知道我是否可以在非活动窗口的某个位置模拟鼠标点击。 如果可以的话,如果你们中的任何一个人能帮助我,我将不胜感激。

在硬件级别模拟按键 – Windows

我正在寻找一种语言或图书馆,以便我可以在最大程度上模拟击键,而无需用力按键。 (我对击键程度的具体测量是当我的计算机已经运行了关键监听器(例如MouseKeys和StickyKeys)时,它是否会产生与物理按键相同的输出)。 我尝试过很多键击仿真方法; java AWT库,Java win32api,python win32com sendKeys,python ctypes按键,以及更多用于python和Java的库,但它们都没有模拟与实际硬件足够接近的关键笔划。 (当Windows MouseKeys处于活动状态时,发送冒号,半冒号或小键盘ADD键的键击只会产生这些字符,而物理按键会执行鼠标键单击) 我相信这些方法必须涉及将笔画直接发送到应用程序,而不是仅将它们传递给操作系统。 我认为这些高级(以上操作系统代码)级语言的库不会产生足够的东西。 我担心我可能不得不屈服于某种BIOS编程。 有没有人有任何关于此事的有用信息? 如何在低级语言中模拟按键? 我应该寻找特定于硬件的解决方案(某种富士通硬件API)吗? 我几乎觉得将机器人编程为简单地坐在硬件旁并按下按键会更容易。 谢谢!

如何生成具有泊松分布的离散随机事件?

我知道Knuth用于生成随机泊松分布数的算法(下面用Java编写)但是如何将其转换为随时间随机调用方法generateEvent() ? int poissonRandomNumber(int lambda) { double L = Math.exp(-lambda); int k = 0; double p = 1; do { k = k + 1; double u = Math.random(); p = p * u; } while (p > L); return k – 1; }

Mockito:如何validation一个方法只被调用一次,确切的参数忽略了对其他方法的调用?

在Java中使用Mockito如何validation方法只调用一次精确参数忽略对其他方法的调用? 示例代码: public class MockitoTest { interface Foo { void add(String str); void clear(); } @Test public void testAddWasCalledOnceWith1IgnoringAllOtherInvocations() throws Exception { // given Foo foo = Mockito.mock(Foo.class); // when foo.add(“1”); // call to verify foo.add(“2”); // !!! don’t allow any other calls to add() foo.clear(); // calls to other methods should be ignored // […]

Hadoop是否适合运行我的模拟?

已经在Java中编写了一个随机模拟,它从磁盘上的几个CSV文件加载数据(总计大约100MB)并将结果写入另一个输出文件(不是很多数据,只是一个布尔值和几个数字)。 还有一个参数文件,对于不同的参数,预计模拟输出的分布会发生变化。 要确定正确/最佳输入参数,我需要在多个输入参数配置中运行多个模拟,并查看每个组中输出的分布。 每个模拟需要0.1-10分钟,具体取决于参数和随机性。 我一直在阅读有关Hadoop的内容,并想知道它是否可以帮助我运行大量的模拟; 在不久的将来,我可以访问大约8台联网桌面计算机。 如果我理解正确,map函数可以运行我的模拟并吐出结果,reducer可能是标识。 我担心的是HDFS,它似乎意味着巨大的文件,而不是一些小的CSV文件(没有一个足够大,甚至可以构成64MB的最小建议块大小)。 此外,每个模拟只需要每个CSV文件的相同副本。 Hadoop对我来说是错误的工具吗?