Skip to content

Commit 4ce8823

Browse files
authored
Merge pull request #1836 from brownplt/fix-1829-1813-1831
Fix #1829 #1813 #1831
2 parents c4281db + 3c03f19 commit 4ce8823

File tree

8 files changed

+547
-260
lines changed

8 files changed

+547
-260
lines changed

src/arr/trove/charts-util.arr

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
provide:
2+
data StackType,
3+
data PointShape,
4+
data TrendlineType,
5+
data AxisType
6+
end
7+
8+
data StackType:
9+
| absolute
10+
| relative
11+
| percent
12+
| grouped
13+
end
14+
15+
16+
17+
fun check-positive-degree(v :: Number) -> Boolean block:
18+
when v < 0:
19+
raise("degree: degree must be non-negative")
20+
end
21+
true
22+
end
23+
24+
data TrendlineType:
25+
| no-trendline
26+
| tl-linear
27+
| tl-exponential
28+
| tl-polynomial(degree :: NumInteger%(check-positive-degree))
29+
end
30+
31+
fun check-positive-sides(v :: Number) -> Boolean block:
32+
when v < 0:
33+
raise("regular-polygon-shape: number of sides must be non-negative")
34+
end
35+
true
36+
end
37+
38+
fun check-valid-dent(v :: Number) -> Boolean block:
39+
when (v < 0) or (v > 1):
40+
raise("regular-polygon-shape: dent must be between 0 and 1")
41+
end
42+
true
43+
end
44+
45+
data PointShape:
46+
| circle-shape
47+
| regular-polygon-shape(sides :: NumInteger%(check-positive-sides), dent :: Number%(check-valid-dent))
48+
end
49+
50+
51+
fun check-non-neg-base(n :: Number) -> Boolean block:
52+
when n <= 0:
53+
raise("Axis scale: exponential and logarithmic scales must have positive base")
54+
end
55+
true
56+
end
57+
58+
59+
fun check-non-neg-power(n :: Number) -> Boolean block:
60+
when n <= 0:
61+
raise("Axis scale: power must be positive")
62+
end
63+
true
64+
end
65+
66+
data AxisType:
67+
| at-linear
68+
| at-power(pow :: Number%(check-non-neg-power))
69+
| at-log(base :: Number%(check-non-neg-base))
70+
| at-symlog(constant :: Number%(check-non-neg-base))
71+
end

0 commit comments

Comments
 (0)