MCPcopy
hub / github.com/google/mangle / TestIntervalContains

Function TestIntervalContains

engine/temporal_test.go:495–550  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

493}
494
495func TestIntervalContains(t *testing.T) {
496 te := &TemporalEvaluator{}
497
498 jan1 := ast.Date(2024, 1, 1)
499 jan15 := ast.Date(2024, 1, 15)
500 jan10 := ast.Date(2024, 1, 10)
501 jan20 := ast.Date(2024, 1, 20)
502 jan31 := ast.Date(2024, 1, 31)
503
504 tests := []struct {
505 name string
506 a ast.Interval // container
507 b ast.Interval // contained
508 want bool
509 }{
510 {
511 name: "exact_match",
512 a: ast.TimeInterval(jan1, jan31),
513 b: ast.TimeInterval(jan1, jan31),
514 want: true,
515 },
516 {
517 name: "a_contains_b",
518 a: ast.TimeInterval(jan1, jan31),
519 b: ast.TimeInterval(jan10, jan20),
520 want: true,
521 },
522 {
523 name: "a_does_not_contain_b_start",
524 a: ast.TimeInterval(jan10, jan31),
525 b: ast.TimeInterval(jan1, jan20),
526 want: false,
527 },
528 {
529 name: "a_does_not_contain_b_end",
530 a: ast.TimeInterval(jan1, jan15),
531 b: ast.TimeInterval(jan10, jan31),
532 want: false,
533 },
534 {
535 name: "eternal_contains_any",
536 a: ast.EternalInterval(),
537 b: ast.TimeInterval(jan1, jan31),
538 want: true,
539 },
540 }
541
542 for _, tt := range tests {
543 t.Run(tt.name, func(t *testing.T) {
544 got := te.intervalContains(tt.a, tt.b)
545 if got != tt.want {
546 t.Errorf("intervalContains(%v, %v) = %v, want %v", tt.a, tt.b, got, tt.want)
547 }
548 })
549 }
550}
551
552// Benchmarks

Callers

nothing calls this directly

Calls 4

intervalContainsMethod · 0.95
DateFunction · 0.92
TimeIntervalFunction · 0.92
EternalIntervalFunction · 0.92

Tested by

no test coverage detected