-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathConariMatchTest.cs
50 lines (41 loc) · 1.77 KB
/
ConariMatchTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using dotnetTest._svc;
using net.r_eg.Conari;
using net.r_eg.Conari.Types;
using Xunit;
using static dotnetTest._svc.TestHelper;
namespace dotnetTest
{
public class ConariMatchTest
{
[Fact]
public void matchTest1()
{
using var c = ConariX.Make(new(Library), out dynamic l);
using var u = new NativeStruct<MatchResult>();
Assert.True(l.match<bool>("system", "syStem", EngineOptions.F_ICASE | EngineOptions.F_MATCH_RESULT, u));
Assert.Equal(n(0), u.Data.start);
Assert.Equal(n(6), u.Data.end);
Assert.False(l.match<bool>("system", "1", EngineOptions.F_NONE, u));
Assert.Equal(MatchResult.npos, u.read().Data.start);
Assert.True(l.matchOfs<bool>("number_str = '+12'", "str", n(5), EngineOptions.F_NONE, u));
Assert.Equal(MatchResult.npos, u.read().Data.start);
Assert.True(l.matchOfs<bool>("number_str = '+12'", "str", n(5), EngineOptions.F_MATCH_RESULT, u));
u.read();
Assert.Equal(n(7), u.Data.start);
Assert.Equal(n(10), u.Data.end);
Assert.False(l.matchOfs<bool>("number_str = '+12'", "str", n(8), EngineOptions.F_NONE, u));
Assert.Equal(MatchResult.npos, u.read().Data.start);
}
[Fact]
public void searchTest1()
{
using var c = ConariX.Make(new(Library), out dynamic l);
Assert.False(l.searchEssC<bool>("system", "syStem", false));
Assert.True(l.searchEssC<bool>("system", "syStem", true));
Assert.True(l.searchEssC<bool>("number = '12'", "'+'", false));
Assert.False(l.searchEssC<bool>("123", "4", true));
Assert.True(l.searchEssC<bool>("123", "2", true));
}
}
}