• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ExSemantic / feel_ex / 007dfe451a374a2d9139afac39a06456f204fe17

15 Jan 2025 11:38PM UTC coverage: 80.84% (-7.4%) from 88.255%
007dfe451a374a2d9139afac39a06456f204fe17

push

github

andimon
feat: update functions

4 of 98 new or added lines in 4 files covered. (4.08%)

1 existing line in 1 file now uncovered.

789 of 976 relevant lines covered (80.84%)

837.42 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

40.0
/lib/feel_ex/function_definitions/function_definitions.ex
1
defmodule FeelEx.FunctionDefinitions do
2
  @moduledoc false
3
  alias FeelEx.FunctionDefinitions.{Numeric, String, Temporal}
4
  alias FeelEx.Value
5

6
  def floor(%Value{value: number, type: :number}) do
7
    Numeric.floor(%Value{value: number, type: :number})
2✔
8
  end
9

10
  def floor(%Value{value: n1, type: :number}, %Value{value: n2, type: :number}) do
NEW
11
    Numeric.floor(%Value{value: n1, type: :number}, %Value{value: n2, type: :number})
×
12
  end
13

14
  def ceiling(%Value{value: number, type: :number}) do
15
    Numeric.ceiling(%Value{value: number, type: :number})
2✔
16
  end
17

18
  def ceiling(%Value{value: n1, type: :number}, %Value{value: n2, type: :number}) do
NEW
19
    Numeric.ceiling(%Value{value: n1, type: :number}, %Value{value: n2, type: :number})
×
20
  end
21

22
  def round_half_up(%Value{value: n1, type: :number}, %Value{value: n2, type: :number}) do
NEW
23
    Numeric.round_half_up(%Value{value: n1, type: :number}, %Value{value: n2, type: :number})
×
24
  end
25

26
  def round_up(%Value{value: n1, type: :number}, %Value{value: n2, type: :number}) do
NEW
27
    Numeric.round_up(%Value{value: n1, type: :number}, %Value{value: n2, type: :number})
×
28
  end
29

30
  def round_down(%Value{value: n1, type: :number}, %Value{value: n2, type: :number}) do
NEW
31
    Numeric.round_down(%Value{value: n1, type: :number}, %Value{value: n2, type: :number})
×
32
  end
33

34
  def decimal(%Value{value: number, type: :number}, %Value{
35
        value: precision,
36
        type: :number
37
      }) do
38
    Numeric.decimal(%Value{value: number, type: :number}, %Value{
×
39
      value: precision,
40
      type: :number
41
    })
42
  end
43

44
  def abs(%Value{value: number, type: :number}) do
45
    Numeric.abs(%Value{value: number, type: :number})
×
46
  end
47

48
  def modulo(%Value{value: divedend, type: :number}, %Value{
49
        value: divisor,
50
        type: :number
51
      }) do
52
    Numeric.modulo(%Value{value: divedend, type: :number}, %Value{
×
53
      value: divisor,
54
      type: :number
55
    })
56
  end
57

58
  def sqrt(%Value{value: number, type: :number}) do
59
    Numeric.sqrt(%Value{value: number, type: :number})
×
60
  end
61

62
  def log(%Value{value: number, type: :number}) do
63
    Numeric.log(%Value{value: number, type: :number})
×
64
  end
65

66
  def exp(%Value{value: number, type: :number}) do
67
    Numeric.exp(%Value{value: number, type: :number})
×
68
  end
69

70
  def odd(%Value{value: number, type: :number}) do
71
    Numeric.odd(%Value{value: number, type: :number})
×
72
  end
73

74
  def even(%Value{value: number, type: :number}) do
75
    Numeric.even(%Value{value: number, type: :number})
12✔
76
  end
77

78
  def string(%Value{} = value) do
79
    String.string(value)
80✔
80
  end
81

82
  def string(list) when is_list(list) do
83
    String.string(list)
2✔
84
  end
85

86
  def substring(%Value{type: :string, value: string}, %Value{type: :number, value: number}) do
87
    String.substring(%Value{type: :string, value: string}, %Value{type: :number, value: number})
×
88
  end
89

90
  def substring(%Value{type: :string, value: string}, %Value{type: :number, value: index}, %Value{
91
        type: :number,
92
        value: length
93
      }) do
94
    String.substring(
×
95
      %Value{type: :string, value: string},
96
      %Value{type: :number, value: index},
97
      %Value{
98
        type: :number,
99
        value: length
100
      }
101
    )
102
  end
103

104
  def length(%Value{type: :string, value: string}) do
105
    String.length(%Value{type: :string, value: string})
×
106
  end
107

108
  def string_transformation(%Value{type: :string, value: string}) do
109
    String.transformation(%Value{type: :string, value: string})
192✔
110
  end
111

112
  def date(%Value{type: :string, value: string}) do
113
    Temporal.date(%Value{type: :string, value: string})
74✔
114
  end
115

116
  def date_and_time(%Value{type: :string, value: string}) do
117
    Temporal.date_and_time(%Value{type: :string, value: string})
104✔
118
  end
119

120
  def time(%Value{type: :string, value: string}) do
121
    Temporal.time(%Value{type: :string, value: string})
78✔
122
  end
123

124
  def duration(%Value{type: :string, value: string}) do
125
    Temporal.duration(%Value{type: :string, value: string})
146✔
126
  end
127
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc