鉴于以下课程:
<?php
class Example {
private $Other;
public function __construct ($Other)
{
$this->Other = $Other;
}
public function query ()
{
$params = array(
'key1' => 'Value 1'
, 'key2' => 'Value 2'
);
$this->Other->post($params);
}
}
Run Code Online (Sandbox Code Playgroud)
而这个测试用例:
<?php
require_once 'Example.php';
require_once 'PHPUnit/Framework.php';
class ExampleTest extends PHPUnit_Framework_TestCase {
public function test_query_key1_value ()
{
$Mock = $this->getMock('Other', array('post'));
$Mock->expects($this->once())
->method('post')
->with(YOUR_IDEA_HERE);
$Example = new Example($Mock);
$Example->query();
}
Run Code Online (Sandbox Code Playgroud)
如何验证$params(哪个是数组)并传递给$Other->post()包含名为'key1'且值为'Value 1'的键?
我不想验证所有的数组 - 这只是一个示例代码,在实际代码中传递的数组有更多的值,我想在那里只验证一个键/值对.
还有$this->arrayHasKey('keyname'),我可以用它来验证该键存在.
还有$this->contains('Value …
假设我有一个清单:
y = ['1', '2', '3', '4','5','6','7','8','9','10']
Run Code Online (Sandbox Code Playgroud)
我想创建一个计算移动n天平均值的函数.所以,如果n是5,我希望我的代码计算前1-5,添加它并找到平均值,这将是3.0,然后继续到2-6,计算平均值,这将是4.0,然后3- 7,4-8,5-9,6-10.
我不想计算前n-1天,所以从第n天开始,它将计算前几天.
def moving_average(x:'list of prices', n):
for num in range(len(x)+1):
print(x[num-n:num])
Run Code Online (Sandbox Code Playgroud)
这似乎打印出我想要的东西:
[]
[]
[]
[]
[]
['1', '2', '3', '4', '5']
['2', '3', '4', '5', '6']
['3', '4', '5', '6', '7']
['4', '5', '6', '7', '8']
['5', '6', '7', '8', '9']
['6', '7', '8', '9', '10']
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何计算这些列表中的数字.有任何想法吗?
我对Linux和Unix比较陌生.在互联网的帮助下,我终于找到了工作中的方式$PATH和别名.bashrc.
但我真的找不到任何描述何时使用哪个.
假设我在Library/Frameworks中安装了Python3.3并且可执行文件是
/Library/Frameworks/Python.framework/Versions/3.3/bin/python3,但是我想通过输入python3我的终端来执行python 3.3 .
当我理解正确时,有(至少)三种方法来实现这一点:
1)我在.bashrc中修改$ PATH:
export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}
Run Code Online (Sandbox Code Playgroud)
2)我在.bashrc中设置了一个别名:
alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin
Run Code Online (Sandbox Code Playgroud)
3)创建符号链接(符号链接):
ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin
Run Code Online (Sandbox Code Playgroud)
你会说(根据你的经验)是"推荐"的方式吗?
到目前为止一直在逃避我的快速(长夜).我在PHP和Java中比较AES256并注意到差异.为简单起见,请忽略ascii键和null IV,这些将在生产中被替换.但我需要首先解决这个问题,无法弄清楚我在哪里犯错:
PHP:
echo base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
"1234567890ABCDEF1234567890ABCDEF",
"This is a test",
MCRYPT_MODE_CBC,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
)
);
Run Code Online (Sandbox Code Playgroud)
Java的
byte[] key = "1234567890ABCDEF1234567890ABCDEF".getBytes("UTF-8");
byte[] iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);
SecretKeySpec newKey = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, newKey, ivSpec);
byte[] results = cipher.doFinal("This is a test".getBytes("UTF-8"));
return Base64.encodeToString(results,Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)
PHP输出: 0KwK+eubMErzDaPU1+mwTQ==
Java输出: DEKGJDo3JPtk48tPgCVN3Q==
不是我期待的o_O!
我也试过MCRYPT_MODE_CBC,MCRYPT_MODE_CFB,MCRYPT_MODE_ECB …
我试图避免列表中的重复值,但它不起作用。你能帮我解决这个问题吗?我做了很多工作,但我是 android 的新手,也是编码的新手。你能帮我在我犯错的地方吗?
import java.util.ArrayList;
public class Dynamic extends Activity {
Button bt, bt2, ent, clr;
EditText et, et2;
String input, input1;
public static ArrayList<String> k_listItems = new ArrayList<String>();
public static ArrayList<String> p_listItems = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button) findViewById(R.id.nameok);
et = (EditText) findViewById(R.id.name);
input = et.getText().toString();
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (et.getText().length() == 0) {
Context context = getApplicationContext();
CharSequence text = "Enter Your Name";
int duration …Run Code Online (Sandbox Code Playgroud) 我有一个项目,我需要在构建清单文件时分解版本号并访问它的组件。在做了一些搜索之后,我找到了 build-helper-maven-plugin 并认为我的问题已经解决了。我将插件添加到主 POM,如下所示。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>validate</phase>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
<configuration>
<propertyPrefix>parsedVersion</propertyPrefix>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
此时的项目版本是 3.0.0-SNAPSHOT。我想查看所有部分(尽管在最终版本中我可能不会全部使用它们),因此我将这些行添加到我的清单文件中。
<value name="majorVersion">${parsedVersion.majorVersion}</value>
<value name="minorVersion">{$parsedVersion.minorVersion}</value>
<value name="incrementalVersion">${parsedVersion.incrementalVersion}</value>
<value name="versionQualifier">${parsedVersion.qualifier}</value>
<value name="parsedBuildNumber">${parsedVersion.buildNumber}</value>
Run Code Online (Sandbox Code Playgroud)
构建后我得到了这个。
<value name="majorVersion">0</value>
<value name="minorVersion">{$parsedVersion.minorVersion}</value>
<value name="incrementalVersion">0</value>
<value name="versionQualifier">3.00.0-SNAPSHOT</value>
<value name="parsedBuildNumber">0</value>
Run Code Online (Sandbox Code Playgroud)
值标签实际上是一个 XML 标签,清单文件中有一个结束值标签,我不得不删除它们,因为它们弄乱了显示。
所以增量版本似乎是正确的,虽然我不是很自信,因为主要版本不正确,它没有找到次要版本,并且限定符作为整个版本号返回,而不仅仅是 SNAPSHOT 部分我曾预料到。我可以看到构建号为零的地方是正确的,因为我们没有 Maven 认为的构建号。
关于为什么版本号似乎没有解析的任何想法?我是否错误地实现了这个插件?
谢谢史蒂夫