mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-24 12:30:17 +00:00
Added a few more tests. All passing.
This commit is contained in:
parent
03579f33f1
commit
6a0c7f22ee
@ -169,7 +169,7 @@
|
||||
XCTAssert(total_length == Storage::Time(1), @"Total track length should still be 1");
|
||||
}
|
||||
|
||||
- (void)testMultiReplace
|
||||
- (void)testMultiTrimBothSideReplace
|
||||
{
|
||||
std::shared_ptr<Storage::Disk::Track> patchableTrack = self.fourSegmentPatchedTrack;
|
||||
Storage::Disk::PCMPatchedTrack *patchable = static_cast<Storage::Disk::PCMPatchedTrack *>(patchableTrack.get());
|
||||
@ -195,4 +195,56 @@
|
||||
XCTAssert(total_length == Storage::Time(1), @"Total track length should still be 1");
|
||||
}
|
||||
|
||||
- (void)testMultiTrimRightReplace
|
||||
{
|
||||
std::shared_ptr<Storage::Disk::Track> patchableTrack = self.fourSegmentPatchedTrack;
|
||||
Storage::Disk::PCMPatchedTrack *patchable = static_cast<Storage::Disk::PCMPatchedTrack *>(patchableTrack.get());
|
||||
|
||||
Storage::Disk::PCMSegment segment;
|
||||
segment.data = {0x00};
|
||||
segment.number_of_bits = 1;
|
||||
segment.length_of_a_bit.length = 3;
|
||||
segment.length_of_a_bit.clock_rate = 8;
|
||||
patchable->add_segment(Storage::Time(1, 8), segment);
|
||||
|
||||
Storage::Time total_length;
|
||||
std::vector<Storage::Disk::Track::Event> events;
|
||||
while(1)
|
||||
{
|
||||
events.push_back(patchableTrack->get_next_event());
|
||||
total_length += events.back().length;
|
||||
if(events.back().type == Storage::Disk::Track::Event::IndexHole) break;
|
||||
}
|
||||
|
||||
XCTAssert(events.size() == 21, @"Should still be 17 total events");
|
||||
XCTAssert(events[4].length == Storage::Time(13, 32), @"Should have added a 13/32 gap after the fourth event");
|
||||
XCTAssert(total_length == Storage::Time(1), @"Total track length should still be 1");
|
||||
}
|
||||
|
||||
- (void)testMultiTrimLeftReplace
|
||||
{
|
||||
std::shared_ptr<Storage::Disk::Track> patchableTrack = self.fourSegmentPatchedTrack;
|
||||
Storage::Disk::PCMPatchedTrack *patchable = static_cast<Storage::Disk::PCMPatchedTrack *>(patchableTrack.get());
|
||||
|
||||
Storage::Disk::PCMSegment segment;
|
||||
segment.data = {0x00};
|
||||
segment.number_of_bits = 1;
|
||||
segment.length_of_a_bit.length = 3;
|
||||
segment.length_of_a_bit.clock_rate = 8;
|
||||
patchable->add_segment(Storage::Time(1, 4), segment);
|
||||
|
||||
Storage::Time total_length;
|
||||
std::vector<Storage::Disk::Track::Event> events;
|
||||
while(1)
|
||||
{
|
||||
events.push_back(patchableTrack->get_next_event());
|
||||
total_length += events.back().length;
|
||||
if(events.back().type == Storage::Disk::Track::Event::IndexHole) break;
|
||||
}
|
||||
|
||||
XCTAssert(events.size() == 21, @"Should still be 17 total events");
|
||||
XCTAssert(events[8].length == Storage::Time(13, 32), @"Should have added a 13/32 gap after the eighth event");
|
||||
XCTAssert(total_length == Storage::Time(1), @"Total track length should still be 1");
|
||||
}
|
||||
|
||||
@end
|
||||
|
Loading…
Reference in New Issue
Block a user