我在MATLAB 2012a中使用GUIDE创建了一个滑块小部件.我希望它控制一个显示图像的轴,其中滑块逐步执行它们的序列.
我在m文件的一部分中为Min,Max和SliderStep设置了滑块的属性.
sliderMin = 1;
sliderMax = size(result); % this is variable
sliderStep = [1, 1]; % major and minor steps of 1
set(handles.slider, 'Min', sliderMin);
set(handles.slider, 'Max', sliderMax);
set(handles.slider, 'SliderStep', sliderStep);
set(handles.slider, 'Value', sliderMin); % set to beginning of sequence
Run Code Online (Sandbox Code Playgroud)
在滑块回调中,我已经验证了Min,Max和SliderStep的设置是否正确.
sliderMin = get(hObject, 'Min') % correct
sliderMax = get(hObject, 'Max') % correct
sliderStep = get(hObject, 'SliderStep') % correct
currentSliderStep = get(hObject, 'Value') % correct, 1 at start
Run Code Online (Sandbox Code Playgroud)
但是,当我单击滑块的箭头时,我只在开始和结束之间跳转.每次将正确的Min,Max,SliderStep和Value(尽管只有1或sliderMax)打印到命令窗口时.我无法以1的增量步进以查看序列内部的图像.
假设:VS2010,.NET 4,C#,NUnit,Moq
我是TDD的新手,在完成一个项目时遇到了这个问题.
鉴于课程:
public abstract class MyFileType
{
public MyFileType(String fullPathToFile)
{
if (!File.Exists(fullPathToFile))
{
throw new FileNotFoundException();
}
// method continues
}
}
Run Code Online (Sandbox Code Playgroud)
我试图使用该方法测试它:
[Test]
[ExpectedException(typeof(System.IO.FileNotFoundException))]
public void MyFileType_CreationWithNonexistingPath_ExceptionThrown()
{
String nonexistingPath = "C:\\does\\not\\exist\\file.ext";
var mock = new Mock<MyFileType>(nonexistingPath);
}
Run Code Online (Sandbox Code Playgroud)
测试失败,NUnit报告从未抛出异常.
我确实在NUnit文档中找到了一个关于断言与异常断言的部分,但这些示例似乎并不像我想要做的那样.我仍然开始使用NUnit和Moq,所以我可能会以错误的方式解决这个问题.
更新:
为了帮助阐明此示例使用抽象类的原因,它是一系列文件类型的基类,其中只有子类型之间的数据加载和处理会有所不同.我最初的想法是将open/setup的逻辑放入基类中,因为它对所有类型都是相同的.
我在Mac OS X Lion(10.7.2 11C74)上使用svnX(0.9.13),而且我认为它似乎是一个损坏的SVN存储库.我在网站上搜索了类似的问题并找到了一对,但没有一个描述当你无法从存储库完成结账时如何恢复.我也没有最新的工作目录.
具体错误是:
svn:读取表示时校验和不匹配:
预期:[哈希]
实际:[不同哈希]
如果警报被取消(唯一选项),结账将继续到结束.乍一看,大多数文件似乎都在那里,但是当我运行应用程序时,显然有一个版本的混杂.存储库位于USB闪存驱动器上,这可能是腐败的根源.我是访问这些文件的唯一用户,他们在一周内没有被触及并且处于工作状态.
任何有关如何进行的建议将不胜感激.
技术堆栈:C#/ .NET 4/WinForms
背景:
我正在工作的项目是一系列图像堆栈的可视化应用程序.具体地,每个图像堆栈与网格对齐,在任何时间显示相同的图像,并且处理功能应用于当前在视图中的图像.图像堆栈本身为150-300 MB,每个映像为512KB-1MB.典型的数据集将包含~100个图像堆栈.
题:
为了尝试使用这些数据,我使用了几种技术:
然而,即使使用上述所有内容,重复性仍然有很多不足之处.使用SysInternals Process Explorer,CPU利用率很低(<25%),而内存使用率在垃圾收集发生之前会上升到极限.
分析表明,大部分执行时间都花费在从内存映射文件中获取数据.我假设它等待操作系统将请求的内存页面重新打开到活动内存中?
我还能做些什么来提高性能?
注意:
更新1:
.net c# parallel-processing memory-management image-processing
注意:我正在为此项目使用TestDriven.NET 3.0.2749和NUnit 2.6.0.12051.
我已经安装了TestDriven.NET和NUnit,并试图通过右键单击上下文菜单让TestDriven.NET在测试类中运行所有测试.
从TestDriven.NET文档:
如果选择了代码编辑器窗口,则执行的测试将由插入符的位置确定; 通过右键单击测试方法内的任何位置并选择"Run Test(s)"来执行单个测试,如图2所示; 通过右键单击一个类(但在任何方法之外)并选择"Run Test(s)"来执行测试夹具中的所有测试; 通过右键单击命名空间内部并选择"运行测试"来执行命名空间中的所有测试.
我可以使用右键单击上下文菜单成功运行特定的测试方法,NUnit GUI运行器将成功运行给定类的所有测试,但我想使用快速访问TestDriven.NET为此任务提供的同时我是发展.
当我将插入符号置于测试方法之外时,我收到以下错误:
目标类型不包含已知测试框架或"主"方法的测试.
更新1:添加了示例代码.
要测试的示例代码:
namespace TDDN.Framework
{
public class ExampleClass
{
public ExampleClass() { }
public Int32 Add(Int32 x, Int32 y)
{
return x + y;
}
public Int32 Subtract(Int32 x, Int32 y)
{
return x - y;
}
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试:
using NUnit.Framework;
using TDDN.Framework;
namespace TDDN.UnitTests
{
[TestFixture] // Cursor caret placed here results in error above.
public class ExampleClassTests
{
[Test] // Cursor caret …Run Code Online (Sandbox Code Playgroud) 技术堆栈:.NET 4,C#,NUnit
我正在尝试将测试驱动开发应用于执行图像处理的新项目.我有一个基类,包含共享文件I/O方法和子类,执行各种特定的处理算法.据我了解,单元测试不会触及文件系统或其他对象,并模拟发生的行为.我的基类只包含简单的访问器和简单的文件系统I/O调用.
public class BaseFile
{
public String Path { get; set; }
public BaseFile()
{
Path = String.Empty;
}
public BaseFile(String path)
{
if (!File.Exists(path))
{
throw new FileNotFoundException("File not found.", path);
}
Path = path;
}
}
Run Code Online (Sandbox Code Playgroud)
测试这些方法有什么价值吗?如果是这样,我怎样才能抽象出对文件系统的调用?
我的另一个问题是如何测试特定于一种图像文件(~200 MB)的子类.我搜索了网站并发现了类似的 问题,但没有处理我正在使用的文件大小.一个类是否有可能进行集成测试(使用"黄金文件"),但没有单元测试?在这种情况下,我怎样才能严格遵循TDD方法并首先编写失败的测试?
技术:.NET 4,C#,WinForms,Visual Studio 2010
我正在处理学习数据绑定,甚至无法得到一个简单的例子来按预期工作.我有一个带有我绑定标签的表单,显示当前鼠标光标坐标.
public partial class Form1 : Form, INotifyPropertyChanged
{
[Bindable(true)]
private String cursorPosition;
public String CursorPosition
{
get
{
return cursorPosition;
}
set
{
cursorPosition = value;
NotifyPropertyChanged("CursorPosition");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public Form1()
{
InitializeComponent();
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
CursorPosition = "(" + Convert.ToString(e.X) + " , " + Convert.ToString(e.Y) + ")";
}
private void NotifyPropertyChanged(String propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
} …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×3
nunit ×3
unit-testing ×3
data-binding ×1
matlab ×1
matlab-guide ×1
moq ×1
slider ×1
svn ×1
tdd ×1
winforms ×1