Пример #1
0
        private string FindSubChainPart(string line)
        {
            List <string> subGroupNames = CarbonSubChain.GetAllNames();
            string        subGroupName  = UtilStrings.FindPattern(line, subGroupNames, UtilStrings.SearchDirection.Backward);

            return(subGroupName);
        }
Пример #2
0
 private void GetDoubleAndTripleBondLocations(string line, out List <int> doubleBondLocations, out List <int> tripleBondLocations)
 {
     if ((line.EndsWith("yne")) && (line.Contains("en-")))
     {
         doubleBondLocations = UtilStrings.FindSecondLastNumberGroup(line);
         tripleBondLocations = UtilStrings.FindLastNumberGroup(line);
     }
     else if (line.EndsWith("ene"))
     {
         doubleBondLocations = UtilStrings.FindLastNumberGroup(line);
         tripleBondLocations = new List <int>();
     }
     else if (line.EndsWith("yne"))
     {
         doubleBondLocations = new List <int>();
         tripleBondLocations = UtilStrings.FindLastNumberGroup(line);
     }
     else
     {
         doubleBondLocations = new List <int>();
         tripleBondLocations = new List <int>();
     }
     doubleBondLocations = doubleBondLocations.ConvertAll(l => l - 1);
     tripleBondLocations = tripleBondLocations.ConvertAll(l => l - 1);
 }
Пример #3
0
        public void RemoveAllLettersTest()
        {
            string line      = "2-methyl-3,5,7-nonatriyne";
            string noLetters = UtilStrings.RemoveAllLetters(line);

            Assert.AreEqual("2--3,5,7-", noLetters);
        }
Пример #4
0
        private string FindMainChainPart(string inline)
        {
            List <string> lines = inline.Split("-".ToCharArray()).ToList();

            foreach (string line in lines)
            {
                if (UtilStrings.ContainsNumber(line))
                {
                    continue;
                }
                else if (line.EndsWith(Constants.SubChainEnd, StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }
                else
                {
                    if (line.Contains(Constants.EndBracket))
                    {
                        return(UtilStrings.RemoveEverythingBefore(line, Constants.EndBracket));
                    }
                    else
                    {
                        return(UtilStrings.RemoveEverythingBefore(line, Constants.SubChainEnd));
                    }
                }
            }
            return(String.Empty);
        }
    private Transform CreateGroup(AudioClip aClip)
    {
        if (_creator.groupTemplate == null)
        {
            DTGUIHelper.ShowAlert("Your 'Group Template' field is empty, please assign it in debug mode. Drag the 'DynamicSoundGroup' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode.");
            return(null);
        }

        var groupName = UtilStrings.TrimSpace(aClip.name);

        var matchingGroup = _groups.Find(delegate(DynamicSoundGroup obj) {
            return(obj.transform.name == groupName);
        });

        if (matchingGroup != null)
        {
            DTGUIHelper.ShowAlert("You already have a Group named '" + groupName + "'. \n\nPlease rename this Group when finished to be unique.");
        }

        var spawnedGroup = (GameObject)GameObject.Instantiate(_creator.groupTemplate, _creator.transform.position, Quaternion.identity);

        spawnedGroup.name = groupName;

        UndoHelper.CreateObjectForUndo(spawnedGroup, "create Dynamic Group");
        spawnedGroup.transform.parent = _creator.transform;

        CreateVariation(spawnedGroup.transform, aClip);

        return(spawnedGroup.transform);
    }
Пример #6
0
        public void FindAllEndingSubstringsTest()
        {
            string        line       = "methylpentyl";
            List <string> subStrings = UtilStrings.FindAllEndings(line);

            Assert.AreEqual(11, subStrings.Count);
        }
Пример #7
0
        public void SplitOnlyOutsideBracketsTest()
        {
            string        line  = "12-34(56-8-9)3456-4(555-7)";
            List <string> lines = UtilStrings.SplitOnlyOutsideBrackets(line, "-", "#");

            Assert.AreEqual(3, lines.Count, string.Empty);
        }
Пример #8
0
        public IUPACCompound(string iupacName)
        {
            string mainChainDescription = FindMainChainPart(iupacName);

            Enums.ChainTypes chaintype;

            if (mainChainDescription.StartsWith("cyclo"))
            {
                chaintype            = Enums.ChainTypes.Cyclo;
                mainChainDescription = UtilStrings.RemoveAtStart(mainChainDescription, "cyclo");
            }
            else
            {
                chaintype = Enums.ChainTypes.Straight;
            }

            int mainChainLength = CarbonMainChain.FindMainChainLength(mainChainDescription);

            string remaining;

            if (iupacName.Contains(Constants.EndBracket))
            {
                remaining = UtilStrings.RemoveEverythingAfter(iupacName, Constants.EndBracket);
            }
            else
            {
                remaining = UtilStrings.RemoveEverythingAfter(iupacName, Constants.SubChainEnd);
            }

            List <int> doubleBondLocations, tripleBondLocations;

            GetDoubleAndTripleBondLocations(iupacName, out doubleBondLocations, out tripleBondLocations);
            Formula = new Formula(chaintype, 0, mainChainLength, doubleBondLocations, tripleBondLocations, remaining);
        }
        private List <Formula> GetSubFormulas(string line)
        {
            if (String.IsNullOrEmpty(line))
            {
                return(new List <Formula>());
            }
            else
            {
                List <Formula> formulas = new List <Formula>();
                List <string>  lines    = UtilStrings.SplitOnlyOutsideBrackets(line, Constants.GroupSeperator, "#");

                for (int counter = 0; counter < lines.Count; counter++)
                {
                    line = lines[counter];
                    if (line.EndsWith(Constants.SubChainEnd, StringComparison.OrdinalIgnoreCase))
                    {
                        string locationsString = lines[counter - 1];
                        Group  group           = new Group(locationsString, line);
                        formulas.AddRange(group.Formulas);
                    }
                    else if ((line.StartsWith(Constants.StartBracket, StringComparison.OrdinalIgnoreCase)) && (line.EndsWith(Constants.EndBracket, StringComparison.OrdinalIgnoreCase)))
                    {
                        string locationsString = lines[counter - 1];
                        Group  group           = new Group(locationsString, line);
                        formulas.AddRange(group.Formulas);
                    }
                }
                return(formulas);
            }
        }
Пример #10
0
    private bool WriteFile(AudioInfoData audInfo)
    {
        StreamWriter writer = null;

        try {
            var sb = new StringBuilder(string.Empty);

            var safeFilter = audInfo.SearchFilter.Replace("'", "").Replace("\"", "");
            sb.Append(string.Format("<Files searchFilter='{0}' sortColumn='{1}' sortDir='{2}'>", safeFilter, audInfo.SortColumn, audInfo.SortDir));
            foreach (var aud in audInfo.AudioInfor)
            {
                var mono    = aud.HasChanged ? aud.ForceMono : aud.OrigForceMono;
                var loadBG  = aud.HasChanged ? aud.LoadBG : aud.OrigLoadBG;
                var preload = aud.HasChanged ? aud.Preload : aud.OrigPreload;

                var loadType = aud.HasChanged ? aud.LoadType : aud.OrigLoadType;

                var compressionFormat = aud.HasChanged ? aud.CompressionFormat : aud.OrigCompressionFormat;
                var quality           = aud.HasChanged ? aud.Quality : aud.OrigQuality;

                var sampleSetting = aud.HasChanged ? aud.SampleRateSetting : aud.OrigSampleRateSetting;
                var sampleRate    = aud.HasChanged ? aud.SampleRateOverride : aud.OrigSampleRateOverride;

                sb.Append(string.Format("<File path='{0}' name='{1}' forceMono='{2}' loadBG='{3}' preload='{4}' loadType='{5}' compFormat='{6}' quality='{7}' sampleSetting='{8}' sampleRate='{9}' />",
                                        UtilStrings.ReplaceUnsafeChars(aud.FullPath),
                                        UtilStrings.ReplaceUnsafeChars(aud.Name),
                                        mono,
                                        loadBG,
                                        preload,
                                        loadType,
                                        compressionFormat,
                                        quality,
                                        sampleSetting,
                                        sampleRate));
            }
            sb.Append("</Files>");

            writer = new StreamWriter(CacheFilePath);
            writer.WriteLine(sb.ToString());

            _clipList.AudioInfor.RemoveAll(delegate(AudioInformation obj) {
                return(obj.HasChanged);
            });

            _filterClips = null; // re-generate the filtered list.
        }
        catch (Exception ex) {
            Debug.LogError("Error occurred constructing or writing audioImportSettings.xml file: " + ex);
            return(false);
        }
        finally {
            if (writer != null)
            {
                writer.Close();
            }
        }

        return(true);
    }
Пример #11
0
        public void FindSubGroupTest()
        {
            List <string> subGroups = CarbonSubChain.GetAllNames();
            string        line      = "1-methylpentyl";
            string        subgroup  = UtilStrings.FindPattern(line, subGroups, UtilStrings.SearchDirection.Backward);

            StringAssert.AreEqualIgnoringCase("pentyl", subgroup);
        }
Пример #12
0
        public void FindLastNumberGroupTest()
        {
            string     compoundName = "2-methyl-3,5,7-nonatriyne";
            List <int> numbers      = UtilStrings.FindLastNumberGroup(compoundName);

            Assert.AreEqual(3, numbers[0]);
            Assert.AreEqual(5, numbers[1]);
            Assert.AreEqual(7, numbers[2]);
        }
Пример #13
0
        public void RemoveAtEndTest()
        {
            string line = "1-methylpentyl";
            string away = "pentyl";

            string stripped = UtilStrings.RemoveAtEnd(line, away);

            StringAssert.AreEqualIgnoringCase("1-methyl", stripped);
        }
Пример #14
0
        public IUPACCompound(int locationOnParent, string name)
        {
            string     chainDescription = FindSubChainPart(name);
            int        chainLength = CarbonSubChain.FindSubChainLength(chainDescription);
            string     remaining = UtilStrings.RemoveAtEnd(name, chainDescription);
            List <int> doubleBondLocations, tripleBondLocations;

            GetDoubleAndTripleBondLocations(name, out doubleBondLocations, out tripleBondLocations);
            Formula = new Formula(Enums.ChainTypes.Straight, locationOnParent, chainLength, doubleBondLocations, tripleBondLocations, remaining);
        }
Пример #15
0
        public bool IsStringRotation2(string a, string b)
        {
            if (a.Length != b.Length)
            {
                return(false);
            }

            string compositeString = a + a;

            return(UtilStrings.IsSubstring(compositeString, b));
        }
Пример #16
0
        public bool IsStringRotation(string a, string b)
        {
            if (a.Length != b.Length)
            {
                return(false);
            }

            var sortedA = UtilSorting.MergeSort <char>(a.ToList());
            var sortedB = UtilSorting.MergeSort <char>(b.ToList());

            return(UtilStrings.IsSubstring(sortedA.ToString(), sortedB.ToString()));
        }
    private void CreateVariation(Transform aGroup, AudioClip aClip)
    {
        if (_creator.variationTemplate == null)
        {
            DTGUIHelper.ShowAlert("Your 'Variation Template' field is empty, please assign it in debug mode. Drag the 'DynamicGroupVariation' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode.");
            return;
        }

        var resourceFileName = string.Empty;

        if (_creator.bulkVariationMode == MasterAudio.AudioLocation.ResourceFile)
        {
            resourceFileName = DTGUIHelper.GetResourcePath(aClip);
            if (string.IsNullOrEmpty(resourceFileName))
            {
                resourceFileName = aClip.name;
            }
        }

        var clipName = UtilStrings.TrimSpace(aClip.name);

        var myGroup = aGroup.GetComponent <DynamicSoundGroup>();

        var matches = myGroup.groupVariations.FindAll(delegate(DynamicGroupVariation obj) {
            return(obj.name == clipName);
        });

        if (matches.Count > 0)
        {
            DTGUIHelper.ShowAlert("You already have a variation for this Group named '" + clipName + "'. \n\nPlease rename these variations when finished to be unique, or you may not be able to play them by name if you have a need to.");
        }

        var spawnedVar = (GameObject)GameObject.Instantiate(_creator.variationTemplate, _creator.transform.position, Quaternion.identity);

        spawnedVar.name = clipName;

        spawnedVar.transform.parent = aGroup;

        var dynamicVar = spawnedVar.GetComponent <DynamicGroupVariation>();

        if (_creator.bulkVariationMode == MasterAudio.AudioLocation.ResourceFile)
        {
            dynamicVar.audLocation      = MasterAudio.AudioLocation.ResourceFile;
            dynamicVar.resourceFileName = resourceFileName;
        }
        else
        {
            dynamicVar.audio.clip = aClip;
        }
    }
        public static string RemoveMultiplyingAffixName(string line)
        {
            List <string> affixNames = GetAllNames();
            string        affixName  = UtilStrings.FindPattern(line, affixNames, UtilStrings.SearchDirection.Forward);

            if (!String.IsNullOrEmpty(affixName))
            {
                return(UtilStrings.RemoveAtStart(line, affixName));
            }
            else
            {
                return(line);
            }
        }
Пример #19
0
    private bool WriteFile(AudioInfoData audInfo)
    {
        StreamWriter writer = null;

        try {
            var sb = new StringBuilder(string.Empty);

            var safeFilter = audInfo.SearchFilter.Replace("'", "").Replace("\"", "");
            sb.Append(string.Format("<Files searchFilter='{0}' sortColumn='{1}' sortDir='{2}'>", safeFilter, audInfo.SortColumn, audInfo.SortDir));
            foreach (var aud in audInfo.AudioInfor)
            {
                var is3D     = aud.HasChanged ? aud.Is3D : aud.OrigIs3D;
                var bitrate  = aud.HasChanged ? aud.CompressionBitrate : aud.OrigCompressionBitrate;
                var mono     = aud.HasChanged ? aud.ForceMono : aud.OrigForceMono;
                var fmt      = aud.HasChanged ? aud.Format : aud.OrigFormat;
                var loadType = aud.HasChanged ? aud.LoadType : aud.OrigLoadType;

                sb.Append(string.Format("<File path='{0}' name='{1}' is3d='{2}' bitRate='{3}' forceMono='{4}' format='{5}' loadType='{6}' />",
                                        UtilStrings.ReplaceUnsafeChars(aud.FullPath),
                                        UtilStrings.ReplaceUnsafeChars(aud.Name),
                                        is3D,
                                        bitrate,
                                        mono,
                                        fmt,
                                        loadType));
            }
            sb.Append("</Files>");

            writer = new StreamWriter(CacheFilePath);
            writer.WriteLine(sb.ToString());

            _clipList.AudioInfor.RemoveAll(delegate(AudioInformation obj) {
                return(obj.HasChanged);
            });
        }
        catch (Exception ex) {
            Debug.LogError("Error occurred constructing or writing audioImportSettings.xml file: " + ex);
            return(false);
        }
        finally {
            if (writer != null)
            {
                writer.Close();
            }
        }

        return(true);
    }
    private bool WriteFile(AudioInfoData audInfo)
    {
        StreamWriter writer = null;

        try {
            var sb = new StringBuilder(string.Empty);

            var safeFilter = audInfo.searchFilter.Replace("'", "").Replace("\"", "");
            sb.Append(string.Format("<Files searchFilter='{0}' sortColumn='{1}' sortDir='{2}'>", safeFilter, audInfo.sortColumn, audInfo.sortDir));
            for (var i = 0; i < audInfo.audioInfo.Count; i++)
            {
                var aud = audInfo.audioInfo[i];

                var is3d     = aud._hasChanged ? aud._is3d : aud._origIs3d;
                var bitrate  = aud._hasChanged ? aud._compressionBitrate : aud._origCompressionBitrate;
                var mono     = aud._hasChanged ? aud._forceMono : aud._origForceMono;
                var fmt      = aud._hasChanged ? aud._format : aud._origFormat;
                var loadType = aud._hasChanged ? aud._loadType : aud._origLoadType;

                sb.Append(string.Format("<File path='{0}' name='{1}' is3d='{2}' bitRate='{3}' forceMono='{4}' format='{5}' loadType='{6}' />",
                                        UtilStrings.ReplaceUnsafeChars(aud._fullPath),
                                        UtilStrings.ReplaceUnsafeChars(aud._name),
                                        is3d,
                                        bitrate,
                                        mono,
                                        fmt.ToString(),
                                        loadType));
            }
            sb.Append("</Files>");

            writer = new StreamWriter(CACHE_FILE_PATH);
            writer.WriteLine(sb.ToString());

            clipList.audioInfo.RemoveAll(delegate(AudioInfo obj) {
                return(obj._hasChanged == true);
            });
        }
        catch (Exception ex) {
            Debug.LogError("Error occurred constructing or writing audioImportSettings.xml file: " + ex.ToString());
            return(false);
        }
        finally {
            writer.Close();
        }

        return(true);
    }
Пример #21
0
        public void ReplaceBetweenBracketsTest()
        {
            string resultaat = UtilStrings.ReplaceBetweenBrackets("12-34(56-8-9)3456-4(555-7)", "-", "#");

            StringAssert.AreEqualIgnoringCase("12-34(56#8#9)3456-4(555#7)", resultaat);
        }