From a7a960c460d01bd7e68e683be2ede54b6ae4d3a5 Mon Sep 17 00:00:00 2001 From: Kisaragi Hiu Date: Mon, 25 Jul 2022 19:27:11 +0900 Subject: [PATCH] highlight: add tests for ParseRanges --- org/util_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 org/util_test.go diff --git a/org/util_test.go b/org/util_test.go new file mode 100644 index 0000000..3e1ad89 --- /dev/null +++ b/org/util_test.go @@ -0,0 +1,38 @@ +package org + +import ( + "fmt" + "testing" +) + +var parseRangesTests = map[string][][2]int{ + "3-5": {{3, 5}}, + "3 8-10": {{3, 3}, {8, 10}}, + "3 5 6": {{3, 3}, {5, 5}, {6, 6}}, + " 9-10 5-6 3 ": {{9, 10}, {5, 6}, {3, 3}}, +} + +func TestParseRanges(t *testing.T) { + for s, expected := range parseRangesTests { + t.Run(s, func(t *testing.T) { + actual := ParseRanges(s) + // If this fails it looks like: + // util_test.go:: 9-10 5-6 3 : + // --- Actual + // +++ Expected + // @@ -1 +1 @@ + // -[[9 10] [5 9] [3 3]] + // +[[9 10] [5 6] [3 3]] + if len(actual) != len(expected) { + t.Errorf("%v:\n%v", s, diff(fmt.Sprintf("%v", actual), fmt.Sprintf("%v", expected))) + } else { + for i := range actual { + if actual[i] != expected[i] { + t.Errorf("%v:\n%v", s, diff(fmt.Sprintf("%v", actual), fmt.Sprintf("%v", expected))) + } + } + } + }) + } + +}