1% test segyspec 2 3% preconditions 4filename = 'test-data/small.sgy'; 5assert(exist(filename,'file')==2); 6t0 = 1111.0; 7 8%% no such file 9no_such_filename = 'no-such-dir/no-such-file.sgy'; 10assert(exist(no_such_filename,'file')~=2); 11try 12 spec = SegySpec(no_such_filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 13 %should not reach here 14 assert(false); 15catch 16 %not actually needed... 17 assert(true); 18end 19 20%% Spec is created 21try 22 spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 23catch 24 %nothing should be caught 25 assert(false); 26end 27 28%% IBM_FLOAT_4_BYTE 29spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 30assert(spec.sample_format == SegySampleFormat.IBM_FLOAT_4_BYTE); 31 32%% filename is set 33spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 34assert(strcmp(spec.filename,filename)); 35 36%% trace_sorting_format 37spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 38assert(spec.trace_sorting_format == TraceSortingFormat.iline); 39 40%%offset_count 41spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 42assert(length(spec.offset_count) == 1); 43 44%% sample_indexes 45spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 46sample_indexes = spec.sample_indexes; 47assert(length(sample_indexes) == 50); 48 49for i = 1:length(sample_indexes) 50 t = t0 + (i-1) * 4; 51 assert(sample_indexes(i) == t); 52end 53 54 55%% first_trace_pos 56spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 57first_trace_pos = spec.first_trace_pos; 58assert(first_trace_pos == 3600); 59 60%% il_stride 61spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 62il_stride = spec.il_stride; 63assert(il_stride == 1); 64 65%% xl_stride 66spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 67xl_stride = spec.xl_stride; 68assert(xl_stride == 5); 69 70%% xl_stride 71spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 72trace_bsize = spec.trace_bsize; 73assert(trace_bsize == 50*4); 74 75%% xline 76spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 77assert(length(spec.crossline_indexes)==5) 78for xl = spec.crossline_indexes' 79 assert(xl >= 20 && xl <= 24); 80end 81 82%% iline 83spec = SegySpec(filename, TraceField.Inline3D, TraceField.Crossline3D, t0); 84assert(length(spec.inline_indexes)==5) 85 86for il = spec.inline_indexes' 87 assert(il >= 1 && il <= 5); 88end 89