我正在为一个旨在删除无效代码点(例如孤立代理对)的函数编写测试。但是,根据我编写测试的方式,我发现代理对的编码方式有所不同。
虽然此版本的测试通过:
[TestCategory("UnitTest")]
[TestMethod]
public void RemoveOrhpanedSurrogatePair()
{
var input = "\uDDDD1975";
var cleanText = input.ReplaceInvalidCodePoints();
Assert.AreEqual(input.Length - 1, cleanText.Length);
Assert.AreEqual("1975", cleanText);
}
Run Code Online (Sandbox Code Playgroud)
这个没有:
[TestCategory("UnitTest")]
[TestMethod]
public void RemoveOrhpanedSurrogatePair()
{
var input = "\uDDDD1975";
var cleanText = input.ReplaceInvalidCodePoints();
Assert.AreEqual(input.Length - 1, cleanText.Length);
Assert.AreEqual("1975", cleanText);
}
Run Code Online (Sandbox Code Playgroud)
查看调试器,第一个变体将字符串编码为,"\uDDDD1975"但第二个变体产生"??1975"两个有效字符,而不是一个孤立的代理对。
我正在开发一个带有Scala 2.9.2和SBT 0.12.0的SBT编译器插件.
我的项目使用以下内容build.sbt:
name := "myplugin"
version := "0.1-SNAPSHOT"
scalaVersion := "2.9.2"
organization := "com.my.org"
sbtVersion := "0.12.0"
libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.9.2"
Run Code Online (Sandbox Code Playgroud)
在编写插件之后,我将它发布到我的本地Ivy存储库,使用publish-local它发布到~\.ivy2\local\com.my.org\myplugin\0.1-SNAPSHOT.
为了测试插件,我创建了一个简单的"Hello-World"项目并添加了以下 project/build.sbt文件:
addSbtPlugin("com.my.org" %% "myplugin" % "0.1-SNAPSHOT")
Run Code Online (Sandbox Code Playgroud)
尝试加载项目时,sbt我得到Unresolved Dependency该插件的错误.我注意到sbt了插件中的插件~\.ivy2\local\com.my.org\myplugin\scala_2.9.2\sbt_0.12\0.1-SNAPSHOT.
我的问题是如何更正配置以包含Scala和SBT版本?或者,或者,如何解决插件分辨率以查找正确的位置?