[关闭]
@xialu 2016-10-02T13:46:20.000000Z 字数 1582 阅读 1358

thoughtworks作业

thoughtworks作业


待完善的内容

数据结构中没有存储日期,仅存储了所有日期中最新的日期。如果要求输出日期,就需要设计数据结构存储它。
输入的内容仅当自身抛出异常时才会返回"Invalid format.",

运行环境

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

第三方包(已加入工程)

common-io-2.5
hamcrest-core-1.3
junit-4.1.1

本markdown文件的在线版本

https://www.zybuluo.com/xialu/note/506915

测试方法

导入thoughtworks java project。在类UnitTest内运行单元测试。
该类内有5个预置的测试方法:

testValidData1:观测内容正常,测试查询第一条观测。
testValidData2:观测内容正常,测试查询第七条观测。
testValidData3:观测内容正常,测试查询最后一条观测。
testConflictData:数据有冲突,查看返回值是否符合此时的要求。
testInvalidFormat:格式无效,查看是否返回“Invalid format.”

自定义测试

最后,我还在UnitTest类内准备了一个方法用于自定义测试。

  1. @Ignore
  2. @Test
  3. public void selfDefinedTest() throws IOException{
  4. //需要自定义测试内容时,文件的地址
  5. String filePath = "";
  6. //预计输出结果
  7. String expectedResult = "";
  8. //待查询的记录id
  9. String qSSId = "";
  10. ...
  11. }

使用步骤:

  1. 删除@Ignore注解。
  2. 按照注释提示填写变量值。
  3. 运行单元测试。

数据结构的讨论:

背景/变量 假设:

设所有动物集合为
监控过程中动物数量:m个。
设监控记录的集合为
监控记录数量:n个。
对于某个动物与任意,假设为该动物在时最后一次移动的监控ID
设查询ID为
假设

存储移动信息:

如果我们按照类似输入的格式进行存储,即对于某个动物
1. 存储起始时刻的坐标。
2. 当移动时,存储其移动的坐标。
进行查询时,需要依次查询动物的监控信息,并更新动物位置,直到

数据结构:链表
查询形式:顺序访问,时间复杂度
空间复杂度:,当,时,

存储位置信息:

  1. 存储的对应关系,即:MAP()。
  2. 存储时动物的位置。MAP
    查询时依次访问两个MAP可以得到结果。

数据结构:MAP
查询形式:随机访问,时间复杂度
空间复杂度:

由上讨论可知,存储位置信息消耗的空间复杂度没有明显的增高,同时可以获得更好的时间复杂度。

不规范输入的类型:

当以下错误被考虑为数据错误:
1. 后输入的时间早于先输入的时间。
2. 动物移动时给出的旧坐标位置信息有误。
3. 输入的单次观察中出现的动物名发生了重复。
4. 对于刚进入区域的动物,给出了移动信息。

其他情况输出:Invalid forma。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注