(t *testing.T)
| 535 | } |
| 536 | |
| 537 | func TestGetStripedOffsets(t *testing.T) { |
| 538 | t.Parallel() |
| 539 | testCases := []struct { |
| 540 | seq string |
| 541 | seg string |
| 542 | start int64 |
| 543 | offsets []int64 |
| 544 | lcd int64 |
| 545 | }{ |
| 546 | // full sequences |
| 547 | {seq: "0,0.3,0.5,0.6,0.7,0.8,0.9,1", seg: "0:0.3", start: 0, offsets: []int64{4, 3, 3}, lcd: 10}, |
| 548 | {seq: "0,0.3,0.5,0.6,0.7,0.8,0.9,1", seg: "0.3:0.5", start: 1, offsets: []int64{4, 6}, lcd: 10}, |
| 549 | {seq: "0,0.3,0.5,0.6,0.7,0.8,0.9,1", seg: "0.5:0.6", start: 2, offsets: []int64{10}, lcd: 10}, |
| 550 | {seq: "0,0.3,0.5,0.6,0.7,0.8,0.9,1", seg: "0.6:0.7", start: 3, offsets: []int64{10}, lcd: 10}, |
| 551 | {seq: "0,0.3,0.5,0.6,0.7,0.8,0.9,1", seg: "0.8:0.9", start: 8, offsets: []int64{10}, lcd: 10}, |
| 552 | {seq: "0,0.3,0.5,0.6,0.7,0.8,0.9,1", seg: "0.9:1", start: 9, offsets: []int64{10}, lcd: 10}, |
| 553 | {seq: "0,0.2,0.5,0.6,0.7,0.8,0.9,1", seg: "0.9:1", start: 9, offsets: []int64{10}, lcd: 10}, |
| 554 | {seq: "0,0.2,0.5,0.6,0.7,0.8,0.9,1", seg: "0:0.2", start: 1, offsets: []int64{4, 6}, lcd: 10}, |
| 555 | {seq: "0,0.2,0.5,0.6,0.7,0.8,0.9,1", seg: "0.6:0.7", start: 3, offsets: []int64{10}, lcd: 10}, |
| 556 | // not full sequences |
| 557 | {seq: "0,0.2,0.5", seg: "0:0.2", start: 3, offsets: []int64{6, 4}, lcd: 10}, |
| 558 | {seq: "0,0.2,0.5", seg: "0.2:0.5", start: 1, offsets: []int64{4, 2, 4}, lcd: 10}, |
| 559 | {seq: "0,2/5,4/5", seg: "0:2/5", start: 0, offsets: []int64{3, 2}, lcd: 5}, |
| 560 | {seq: "0,2/5,4/5", seg: "2/5:4/5", start: 1, offsets: []int64{3, 2}, lcd: 5}, |
| 561 | // no sequence |
| 562 | {seg: "0:0.2", start: 1, offsets: []int64{5}, lcd: 5}, |
| 563 | {seg: "0:1/5", start: 1, offsets: []int64{5}, lcd: 5}, |
| 564 | {seg: "0:2/10", start: 1, offsets: []int64{5}, lcd: 5}, |
| 565 | {seg: "0:0.4", start: 1, offsets: []int64{2, 3}, lcd: 5}, |
| 566 | {seg: "0:2/5", start: 1, offsets: []int64{2, 3}, lcd: 5}, |
| 567 | {seg: "2/5:4/5", start: 1, offsets: []int64{3, 2}, lcd: 5}, |
| 568 | {seg: "0:4/10", start: 1, offsets: []int64{2, 3}, lcd: 5}, |
| 569 | {seg: "1/10:5/10", start: 1, offsets: []int64{2, 2, 4, 2}, lcd: 10}, |
| 570 | } |
| 571 | |
| 572 | for _, tc := range testCases { |
| 573 | t.Run(fmt.Sprintf("seq:%s;segment:%s", tc.seq, tc.seg), func(t *testing.T) { |
| 574 | t.Parallel() |
| 575 | ess, err := NewExecutionSegmentSequenceFromString(tc.seq) |
| 576 | require.NoError(t, err) |
| 577 | segment, err := NewExecutionSegmentFromString(tc.seg) |
| 578 | require.NoError(t, err) |
| 579 | et, err := NewExecutionTuple(segment, &ess) |
| 580 | require.NoError(t, err) |
| 581 | |
| 582 | start, offsets, lcd := et.GetStripedOffsets() |
| 583 | |
| 584 | assert.Equal(t, tc.start, start) |
| 585 | assert.Equal(t, tc.offsets, offsets) |
| 586 | assert.Equal(t, tc.lcd, lcd) |
| 587 | |
| 588 | ess2, err := NewExecutionSegmentSequenceFromString(tc.seq) |
| 589 | require.NoError(t, err) |
| 590 | assert.Equal(t, ess.String(), ess2.String()) |
| 591 | }) |
| 592 | } |
| 593 | } |
| 594 |
nothing calls this directly
no test coverage detected
searching dependent graphs…