File: MolDrawHighlightTest.cs

package info (click to toggle)
rdkit 202503.1-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 220,160 kB
  • sloc: cpp: 399,240; python: 77,453; ansic: 25,517; java: 8,173; javascript: 4,005; sql: 2,389; yacc: 1,565; lex: 1,263; cs: 1,081; makefile: 580; xml: 229; fortran: 183; sh: 105
file content (70 lines) | stat: -rw-r--r-- 2,669 bytes parent folder | download | duplicates (3)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System.IO;
using GraphMolWrap;
using Xunit;

namespace RdkitTests;

/*
 *  Verifies that code to highlight multiple atoms/bonds is working in C#.
 *  Does not include any assertions
 */
public class MolDrawHighlightTest
{
    [Fact]
    public void TestDrawMolecule()
    {
        var testFile = "testMolHighLight.png";
        if (File.Exists(testFile))
        {
            File.Delete(testFile);
        }
        var mol = RWMol.MolFromSmiles("c1ccc(C)c(C)c1C");
        var drawer = new MolDraw2DCairo(300, 300, -1, -1, true);
        drawer.drawOptions().addAtomIndices = true;
        var red = new DrawColour(1.0, 0.0, 0.0);
        var green = new DrawColour(0.0, 1.0, 0.0);
        var blue = new DrawColour(0.0, 0.0, 1.0);
        var highlightAtoms = new Int_Vect {1, 2};
        var atomMap = new ColourPalette {new (1, red), new (2, green)};
        var highlightBonds = new Int_Vect {3, 4, 5};
        var bondMap = new ColourPalette {new (3, red), new (4, green), new (5, blue)};
        drawer.drawMolecule(mol, highlightAtoms, highlightBonds, atomMap, bondMap);
        drawer.drawMolecule(mol);
        drawer.finishDrawing();
        drawer.writeDrawingText(testFile);
    }
    
    [Fact]
    public void TestDrawMolecules()
    { 
        var testFile = "testMolsHighLight.png";
        if (File.Exists(testFile))
        {
            File.Delete(testFile);
        }
        var mol = RWMol.MolFromSmiles("c1ccc(C)c(C)c1C");
        var mol2 = RWMol.MolFromSmiles("c1ccc(C)c(C)c1");
        var mols = new ROMol_Ptr_Vect { mol, mol2 };
        var drawer = new MolDraw2DCairo(600, 300, 300, 300, true);
        drawer.drawOptions().addAtomIndices = true;
        var red = new DrawColour(1.0, 0.0, 0.0);
        var green = new DrawColour(0.0, 1.0, 0.0);
        var blue = new DrawColour(0.0, 0.0, 1.0);
        var legends = new Str_Vect { "Mol1", "Mol2" };
        var highlightAtoms = new Int_Vect_Vect {new Int_Vect {1, 2}, new Int_Vect {3, 4}};
        var atomMap = new ColourPalette_Vect
        {
            new ColourPalette{ new(1, red), new (2, green) },
            new ColourPalette{ new(2, red), new (3, green) }
        };
        var highlightBonds = new Int_Vect_Vect { new Int_Vect{3, 4, 5}, new Int_Vect {4, 5, 6}};
        var bondMap = new ColourPalette_Vect
        {
            new ColourPalette{ new(3, red), new (4, green), new (5, blue) },
            new ColourPalette{ new(4, red), new (5, green), new (6, blue) }
        };
        drawer.drawMolecules(mols, legends, highlightAtoms, highlightBonds, atomMap, bondMap);
        drawer.finishDrawing();
        drawer.writeDrawingText(testFile);
    }
}