接着010里面的例子,让我们先写User类的单元测试吧
require File.dirname(__FILE__) + '/../test_helper'
class UserTest < Test::Unit::TestCase
fixtures :users
def test_full_name_without_middle_initial
user = User.new(:first_name => 'John', :last_name => 'Doe')
assert_equal 'John Doe', user.full_name
end
def test_full_name_with_middle_initial
user = User.new(:first_name => 'John', :middle_initial => 'H', :last_name => 'Doe')
assert_equal 'John H. Doe', user.full_name
end
def test_full_name_with_blank_middle_initial
user = User.new(:first_name => 'John', :middle_initial => '', :last_name => 'Doe')
assert_equal 'John Doe', user.full_name
end
end
运行测试,很遗憾,第3个测试用例没能通过。
class User < ActiveRecord::Base
def full_name
name = first_name + " "
name += "#{middle_initial}. " unless middle_initial.nil?
name += last_name
name
end
end
虽然很好改,但我们决定继续重构一下
class User < ActiveRecord::Base
def full_name
[first_name, middle_initial_with_period, last_name].compact.join(' ')
end
def middle_initial_with_period
"#{middle_initial}." unless middle_initial.blank?
end
end
因为加上了blank?这个方法,因此测试通过。
另外一个考虑是first_name与last_name是否为空,其实我真不是很懂。。
[first_name, middle_initial_with_period, last_name].reject{ |i| i.blank? }.compact.join(' ')
[first_name, middle_initial_with_period, last_name].reject(&:blank?) * ' '
分享到:
相关推荐
在本文中,我们将深入探讨与"PSR.zip_matlab PSR_时间序列重构_混沌时间序列_空间重构_重构相空间"相关的主题,这主要涉及混沌理论和时间序列分析在MATLAB环境中的应用。时间序列重构是研究复杂系统动态行为的重要...
2. 应用EMD算法,逐次提取IMF分量,直到剩余的残余项满足成为单一趋势或恒定值的要求。 3. 对提取的每个IMF进行操作,例如滤波、平滑、去噪等,这一步是可选的,取决于具体的应用需求。 4. 将处理过的IMF按照它们被...
生成changelogchangelog介绍go生成changelog如何生成根据git提交commit历史生成changelog提交格式- docs:文档(d
2. 对差异取平方,然后求平均得到MSE。 3. 对于PSNR计算,先将差异转换到对数尺度,然后计算最大值与均方根误差之比的对数。 通过分析“FastLaplace.rar”中的代码或文档,我们可以更深入地了解FastLaplace算法的...
我们可以利用内置函数如`fft`(快速傅里叶变换)进行频谱分析,使用滤波器设计工具(如`fir2`、`designfilt`等)构造适合窄带信号的滤波器,以及`resample`函数来改变信号的采样率,从而实现信号的重构。 总的来说...
《重构:改善既有代码设计》是一本由Martin Fowler所著的经典IT著作,它详细阐述了在软件开发过程中如何通过重构来提升代码质量、可读性和维护性。重构是一种系统性的方法,旨在不改变软件外在行为的前提下,改进其...
1. 创建 Issue - 对于较大的改动(如新功能,大型重构等)最好先开issue讨论一下,较小的improvement(如文档改进,bugfix等)直接发P
牛顿拉普逊法就算配电网重构的潮流程序,结构清晰易懂。
在电子工程和数字信号处理领域,信号采样与重构是一个至关重要的概念,它涉及到如何将连续时间信号转换为离散时间信号,以便于在计算机中进行处理,然后再将处理后的信号还原成原始形式。MATLAB是一款强大的数值计算...
资源名:用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构 资源类型:matlab项目全套源码 源码介绍:用于信号的分解、降噪和重构,实现故障诊断 源码说明: 全部项目源码都是经过...
2. **相空间重构**:通过延迟坐标法(如Takens嵌入定理)将一维时间序列数据映射到高维空间,以重建吸引子。 3. **分形维数计算**:应用各种算法(如盒计数法、Correlation Dimension、Lyapunov Exponents等)来估算...
2. "CS_OMP.m":这是核心的压缩感知重构算法实现,其中具体实现了OMP算法。这个文件是整个项目的关键,它包含了从压缩数据中恢复信号的完整流程,包括信号的预处理、采样、迭代重构和后处理等步骤。 3. "Untitled2....
《基于OMP的正弦信号压缩感知与重构误差分析》 在信息技术领域,压缩感知(Compressive Sensing,CS)已经成为一种高效的数据采集和信号恢复技术。该技术突破了传统采样理论,允许稀疏信号在远低于奈奎斯特定理所...
本项目主要关注的是使用MATLAB进行小波变换实现图像的分解和重构过程,以及评估重构后图像与原始图像之间的差异。 首先,我们来了解一下小波变换的基本概念。小波变换(Wavelet Transform)是一种数学方法,它通过...
标题中的“用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构_源码.rar.rar”揭示了该压缩包文件包含的是与信号处理相关的源代码,特别是涉及了三种重要的信号分解方法:Empirical ...
【标题】"matlab.zip_蚁群 重构_蚁群算法 潮流_蚁群算法重构_重构 蚁群"所涉及的核心知识点主要围绕蚁群算法(Ant Colony Optimization, ACO)及其在潮流计算(Power Flow Calculation)中的应用进行深入探讨。...
在IT行业中,尤其是在医疗影像处理领域,三维重构技术扮演着至关重要的角色。"NewPrjName.rar" 是一个与三维医学图像重构相关的项目文件压缩包,它涉及到的是使用C++编程语言来实现这一复杂的计算过程。这个项目的...
2. **初始猜测**:选择一个初始的系数向量,通常是包含最大幅度元素的向量。 3. **迭代过程**:在每个迭代步骤中,算法会根据当前系数向量和观测值计算与测量矩阵的内积,找出与当前残差相关性最强的几个列,添加到...
不同信号稀疏度K下,信号重构概率程序(信号长度N:1-400,M0-300)
【标题】"VisualHullFromMirrors-master_fewerqw8_三维图片_Perpdist_三维重构_重构_" 涉及的是一个关于三维重构的项目,该项目利用镜像原理(Visual Hull)来实现对物体的三维建模。Visual Hull是计算机视觉领域的...