小编vas*_*sco的帖子

如何使用JUnit在Java中测试抽象类?

我是JUnit的Java测试新手.我必须使用Java,我想使用单元测试.

我的问题是:我有一个带有一些抽象方法的抽象类.但是有些方法并不是抽象的.如何使用JUnit测试此类?示例代码(非常简单):

abstract class Car {

    public Car(int speed, int fuel) {
        this.speed = speed;
        this.fuel = fuel;
    }

    private int speed;
    private int fuel;

    abstract void drive();

    public int getSpeed() {
        return this.speed;
    }

    public int getFuel() {
        return this.fuel;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想测试getSpeed()getFuel()功能.

这个问题的类似问题在这里,但它没有使用JUnit.

在JUnit FAQ部分中,我找到了这个链接,但我不明白作者想用这个例子说些什么.这行代码是什么意思?

public abstract Source getSource() ;
Run Code Online (Sandbox Code Playgroud)

java junit abstract-class

82
推荐指数
6
解决办法
9万
查看次数

这个模拟器的最佳架构是什么?

我必须用Java制作模拟器,它将模拟在高速公路上骑车.高速公路上应该有3条车道,每条车道都有恒定速度的车.在这条高速公路上,有一个代理商,必须穿过而不会撞到任何其他车辆.详细描述可以在本文的2.5节和图5中找到.

这张图片来自提到的纸张,显示了高速公路的外观:

在此输入图像描述

我的目标是只编写模拟器(和GUI),而不是代理逻辑.现在,我想设计一个这个模拟器的架构,这是我需要帮助的地方.

我的想法,代理的API看起来如何:

public abstract class BaseAgent {
    public abstract void run()
    public abstract void onCrash();
}
Run Code Online (Sandbox Code Playgroud)

高速公路上的特工(汽车)应该是这个班级的后代.在每一步中,模拟器调用函数run()在哪里是代理逻辑.在此函数中,代理可以调用​​以下函数:

goLeft();
goRight();
getNearestCarInLane(int lane_no);
getMySpeed();
Run Code Online (Sandbox Code Playgroud)

因此,在每一步中,代理人都可以决定他是否留在当前车道,或者他是左转还是右转.这就是代理人可以做的事情.

所以这是代理API,但我不知道,如何设计其余的模拟器.我对模拟器架构的第一次尝试是:

class Agent — descendant of BaseAgent, can ride on highway.
class Highway — stores position of all cars on highway.
class Simulator — creates instance of agent and highway; in every step, call agent’s `run()` and monitors any car crash.
Run Code Online (Sandbox Code Playgroud)

这不是一个好的架构.哪个类应该是方法goLeft(),goRight()getNearestCarInLane()?因为这些方法必须在BaseAgent课堂内,但必须知道每辆车在高速公路上的位置.所以最后,我有这样的事情:

Simulator …
Run Code Online (Sandbox Code Playgroud)

java architecture simulation agent

6
推荐指数
1
解决办法
704
查看次数

如何在 Liquid (Jekyll) 中获取页面的 url

我正在使用 Github 页面 (Jekyll) 编写文档,并且在其中一个页面中我想链接到另一个页面。我尝试使用{% page_url post-name %}但没有运气。当我运行时,出现bundle exec jekyll serve此异常:

Liquid Exception: no implicit conversion of nil into String in docs/page1.md
Run Code Online (Sandbox Code Playgroud)

我的帖子在子目录中docs,我的文档结构如下所示:

CNAME
_config.yml
_includes/
_layouts/
_site/
css/
docs/
   page1.md
   page2.md
   page3.md
imgs/
js/
index.md
Run Code Online (Sandbox Code Playgroud)

配置文件包含:

safe: true
lsi: false
pygments: true
markdown: kramdown
Run Code Online (Sandbox Code Playgroud)

docs/子目录中的所有页面都包含 YAML 块:

---
layout: docs
title: Page Two
permalink: /docs/page2/
---
Run Code Online (Sandbox Code Playgroud)

现在,我尝试获取此页面的 url page2

{% page_url page2 %}
{% page_url docs/page2 %}
{% page_url /docs/page2/ %} …
Run Code Online (Sandbox Code Playgroud)

liquid jekyll github-pages

6
推荐指数
2
解决办法
4493
查看次数

用C编写的任何SPICE库/ API?

我正在寻找用C语言编写的SPICE(电子电路模拟器)的一些实现,它可以用作库.

我找到了一些用于PythonJava的SPICE克隆,但不是用于C.

到目前为止,我正在使用ngspice.它是SPICE3的非常好的克隆,用C语言编写,它有很好的文档.是否可以将其用作库(因此我可以将其编译为共享库并在我的C项目中使用它)?我从源代码编译了ngspice,但结果是CLI接口.有什么选择我可以把它编译成共享库吗?

但我对任何其他SPICE克隆都没问题.

c api

2
推荐指数
1
解决办法
2678
查看次数

如何使用gMap和jQuery绘制折线?

我想在我的项目中使用gMap jQuery插件。我成功显示了Google地图,可以显示一些标记,但是找不到任何方法绘制多段线。

我有这个JS代码:

$(window).ready(function () {
  var data = {
    'latitude': 0.000000,
    'longitude': -180.000000,
    'zoom': 3,
    'maptype': "terrain",
  };
  var gps_coordinates = {
    strokeColor: "#FF0000",
    strokeOpacity: 1.0,
    strokeWeight: 2,
    path: [
      {'latitude':37.772323,'longitude':-122.214897},
      {'latitude':21.291982,'longitude':-157.821856},
      {'latitude':-18.142599,'longitude':178.431000},
      {'latitude':-27.467580,'longitude':153.027892}
    ]
  };

  $('#map').gMap(data);
  $('#map').gMap("Polyline", gps_coordinates);
});
Run Code Online (Sandbox Code Playgroud)

gMap文档中的注释如下:

您还可以使用一些内部gmap函数。

所以我想,我可以使用google.maps.Polyline函数绘制一条折线。但是如何?

javascript jquery jquery-plugins jquery-gmap

1
推荐指数
1
解决办法
6296
查看次数

这个Python代码的哪个版本更快?

只是一个学术问题.我很好奇这个代码的哪个版本在Python中更好(更快)?

var = random.randint(1, 10)
# First version
if var in [2, 5, 9]:
  print "First: 2, 5 or 9"

# Second version
if var == 2 or number == 5 or number == 9:
  print "Second: 2, 5 or 9"
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的例子,但是如果变量var不是数字,而是字符串呢?

var = 'aaa'
# First version
if var in ['aaa', 'zzz', 'eee']:
  print "String"
Run Code Online (Sandbox Code Playgroud)

那些更复杂的对象(不仅是数字或字符串,还有一些非常耗时的比较)?

Python编译器内部会发生什么?我想if var in list是执行如下:

for l in list:
  if l == var:
    print "String"
Run Code Online (Sandbox Code Playgroud)

所以在我看来,第一个例子中的两个版本都是相同的(速度).我对吗?

python optimization

1
推荐指数
1
解决办法
197
查看次数